Skip to content

Commit fe0bd15

Browse files
committed
semver bump due to public type removal
Signed-off-by: Tom Fay <[email protected]>
1 parent 96ecbea commit fe0bd15

File tree

2 files changed

+10
-13
lines changed

2 files changed

+10
-13
lines changed

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[package]
22
name = "ocidir"
33
description = "A Rust library for reading and writing OCI (opencontainers) layout directories"
4-
version = "0.4.0"
4+
version = "0.5.0"
55
edition = "2021"
66
license = "MIT OR Apache-2.0"
77
repository = "https://github.com/containers/ocidir-rs"

src/lib.rs

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ use serde::{Deserialize, Serialize};
1515
use std::collections::{HashMap, HashSet};
1616
use std::fmt::Debug;
1717
use std::fs::File;
18-
use std::io::{prelude::*, BufReader};
18+
use std::io::{prelude::*, BufReader, BufWriter};
1919
use std::marker::PhantomData;
2020
use std::path::{Path, PathBuf};
2121
use std::str::FromStr;
@@ -142,7 +142,7 @@ pub struct BlobWriter<'a> {
142142
/// Compute checksum
143143
hash: Hasher,
144144
/// Target file
145-
target: Option<cap_tempfile::TempFile<'a>>,
145+
target: Option<BufWriter<cap_tempfile::TempFile<'a>>>,
146146
size: u64,
147147
}
148148

@@ -673,7 +673,7 @@ impl<'a> BlobWriter<'a> {
673673
Ok(Self {
674674
hash: Hasher::new(MessageDigest::sha256())?,
675675
// FIXME add ability to choose filename after completion
676-
target: Some(cap_tempfile::TempFile::new(ocidir)?),
676+
target: Some(BufWriter::new(cap_tempfile::TempFile::new(ocidir)?)),
677677
size: 0,
678678
})
679679
}
@@ -702,7 +702,7 @@ impl<'a> BlobWriter<'a> {
702702
fn complete_as(mut self, sha256_digest: &str) -> Result<Blob> {
703703
let destname = &format!("{}/{}", BLOBDIR, sha256_digest);
704704
let target = self.target.take().unwrap();
705-
target.replace(destname)?;
705+
target.into_inner().unwrap().replace(destname)?;
706706
Ok(Blob {
707707
sha256: Sha256Digest::from_str(sha256_digest).unwrap(),
708708
size: self.size,
@@ -718,14 +718,10 @@ impl<'a> BlobWriter<'a> {
718718

719719
impl std::io::Write for BlobWriter<'_> {
720720
fn write(&mut self, srcbuf: &[u8]) -> std::io::Result<usize> {
721-
self.hash.update(srcbuf)?;
722-
self.target
723-
.as_mut()
724-
.unwrap()
725-
.as_file_mut()
726-
.write_all(srcbuf)?;
727-
self.size += srcbuf.len() as u64;
728-
Ok(srcbuf.len())
721+
let written = self.target.as_mut().unwrap().write(srcbuf)?;
722+
self.hash.update(&srcbuf[..written])?;
723+
self.size += written as u64;
724+
Ok(written)
729725
}
730726

731727
fn flush(&mut self) -> std::io::Result<()> {
@@ -757,6 +753,7 @@ where
757753
}
758754
}
759755

756+
/// A writer for a layer.
760757
pub struct LayerWriter<'a, W>
761758
where
762759
W: WriteComplete<BlobWriter<'a>>,

0 commit comments

Comments
 (0)