MCPcopy Create free account
hub / github.com/cosdata/cosdata / create_file

Function create_file

tests/benches/write_benchmark.rs:6–35  ·  view source on GitHub ↗
(path: &str, size: u64)

Source from the content-addressed store, hash-verified

4use std::io::{Seek, SeekFrom, Write};
5
6fn create_file(path: &str, size: u64) -> std::io::Result<File> {
7 let mut file = OpenOptions::new()
8 .read(true)
9 .write(true)
10 .create(true)
11 .truncate(true)
12 .open(path)?;
13
14 let mut rng = rand::thread_rng();
15 const BUFFER_SIZE: usize = 8192; // 8 KB buffer
16 let mut buffer = [0u8; BUFFER_SIZE];
17
18 let full_chunks = size / BUFFER_SIZE as u64;
19 let remainder = (size % BUFFER_SIZE as u64) as usize;
20
21 for _ in 0..full_chunks {
22 // Use `rng.fill` for slices instead of arrays
23 rng.fill(&mut buffer[..]);
24 file.write_all(&buffer)?;
25 }
26
27 if remainder > 0 {
28 // Use `rng.fill` for slices
29 rng.fill(&mut buffer[..remainder]);
30 file.write_all(&buffer[..remainder])?;
31 }
32
33 file.seek(SeekFrom::Start(0))?; // Reset file pointer to the beginning
34 Ok(file)
35}
36
37fn write_random_bytes(
38 file: &mut File,

Callers 1

benchmark_writesFunction · 0.70

Calls 1

readMethod · 0.45

Tested by

no test coverage detected