new_direct -> unsafe new_unchecked
This commit is contained in:
parent
2248d8fdd1
commit
ab76563b83
3 changed files with 18 additions and 11 deletions
|
|
@ -32,7 +32,8 @@ impl AsRef<[u8]> for Checked {
|
|||
}
|
||||
|
||||
impl Checked {
|
||||
pub(super) fn new_direct(path: PathBuf, size: u64, hash: Option<String>) -> Self {
|
||||
/// create this directly, without any checks
|
||||
pub(super) unsafe fn new_unchecked(path: PathBuf, size: u64, hash: Option<String>) -> Self {
|
||||
Self { path, size, hash }
|
||||
}
|
||||
|
||||
|
|
@ -93,9 +94,7 @@ impl Checked {
|
|||
) -> crate::Result<Uploading> {
|
||||
let file_id = client.file_create(uri, alias_id, share_id, &self)?;
|
||||
|
||||
Ok(Uploading::new_direct(
|
||||
self.path, self.size, self.hash, file_id,
|
||||
))
|
||||
Ok(unsafe { Uploading::new_unchecked(self.path, self.size, self.hash, file_id) })
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -160,8 +159,8 @@ mod tests {
|
|||
"Checked",
|
||||
);
|
||||
|
||||
// new_direct
|
||||
let chk = Checked::new_direct(chk.path, chk.size, chk.hash);
|
||||
// new unchecked
|
||||
let chk = unsafe { Checked::new_unchecked(chk.path, chk.size, chk.hash) };
|
||||
assert_eq!(chk.path, path);
|
||||
assert_eq!(chk.size, size);
|
||||
assert!(chk.hash.is_none());
|
||||
|
|
|
|||
|
|
@ -40,7 +40,12 @@ where
|
|||
}
|
||||
|
||||
impl<'t> Chunk<'t> {
|
||||
pub(super) fn new_direct(file_id: sharry::FileID, offset: u64, data: &'t [u8]) -> Self {
|
||||
/// create this directly, without any checks
|
||||
pub(super) unsafe fn new_unchecked(
|
||||
file_id: sharry::FileID,
|
||||
offset: u64,
|
||||
data: &'t [u8],
|
||||
) -> Self {
|
||||
Self {
|
||||
file_id,
|
||||
offset,
|
||||
|
|
@ -83,9 +88,10 @@ mod tests {
|
|||
|
||||
#[test]
|
||||
fn basic_tests() {
|
||||
// items from `DATA_LENGTHS_BAD` used as mock offsets
|
||||
for (data, len, mock_offset) in cases_with(DATA_LENGTHS_BAD) {
|
||||
let fid = sharry::FileID::default();
|
||||
let chunk = Chunk::new_direct(fid, mock_offset, data);
|
||||
let chunk = unsafe { Chunk::new_unchecked(fid, mock_offset, data) };
|
||||
|
||||
let repr_expect = format!(
|
||||
"Chunk {{ file_id: {:?}, offset: {:?}, data.len(): {:?}, .. }}",
|
||||
|
|
|
|||
|
|
@ -33,7 +33,8 @@ pub struct Uploading {
|
|||
}
|
||||
|
||||
impl Uploading {
|
||||
pub(super) fn new_direct(
|
||||
/// create this directly, without any checks
|
||||
pub(super) unsafe fn new_unchecked(
|
||||
path: PathBuf,
|
||||
size: u64,
|
||||
hash: Option<String>,
|
||||
|
|
@ -93,7 +94,8 @@ impl Uploading {
|
|||
));
|
||||
}
|
||||
|
||||
let chunk = Chunk::new_direct(self.file_id.clone(), self.offset, &buf[..read_len]);
|
||||
let chunk =
|
||||
unsafe { Chunk::new_unchecked(self.file_id.clone(), self.offset, &buf[..read_len]) };
|
||||
self.previous_offset = Some(self.offset);
|
||||
self.offset += chunk.get_length();
|
||||
|
||||
|
|
@ -117,7 +119,7 @@ impl Uploading {
|
|||
///
|
||||
/// - consume self, returning as a `file::Checked`
|
||||
pub fn stop(self) -> Checked {
|
||||
Checked::new_direct(self.path, self.size, self.hash)
|
||||
unsafe { Checked::new_unchecked(self.path, self.size, self.hash) }
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue