MCPcopy Index your code
hub / github.com/Firstyear/opensuse-proxy-cache / crc32c_len

Function crc32c_len

arc-disk-cache/src/lib.rs:185–216  ·  view source on GitHub ↗
(file: &mut File)

Source from the content-addressed store, hash-verified

183
184#[instrument(level = "trace")]
185fn crc32c_len(file: &mut File) -> io::Result<u32> {
186 file.seek(std::io::SeekFrom::Start(0)).inspect_err(|err| {
187 error!(?err, "Unable to seek tempfile");
188 })?;
189
190 /*
191 let amt = file.metadata().map(|m| m.len() as usize).map_err(|e| {
192 error!("Unable to access metadata -> {:?}", e);
193 })?;
194 */
195
196 let mut buf_file = BufReader::with_capacity(8192, file);
197 let mut crc = 0;
198 loop {
199 let buffer = buf_file
200 .fill_buf()
201 .inspect_err(|err| error!(?err, "crc32c_len error"))?;
202
203 let length = buffer.len();
204 if length == 0 {
205 // We are done!
206 break;
207 } else {
208 // we have content, proceed.
209 crc = crc32c::crc32c_append(crc, buffer);
210 buf_file.consume(length);
211 }
212 }
213 debug!("crc32c is: {:x}", crc);
214
215 Ok(crc)
216}
217
218#[derive(Clone)]
219pub struct ArcDiskCache<K, D>

Callers 3

newMethod · 0.85
getMethod · 0.85
insertMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected