remove some explicit Arc<dyn File> references

This commit is contained in:
pedrocarlo
2025-10-03 15:31:17 -03:00
parent e93add6c80
commit f3dc0bef5d
3 changed files with 13 additions and 13 deletions

View File

@@ -1929,9 +1929,9 @@ impl StreamingWalReader {
}
}
pub fn begin_read_wal_frame_raw(
pub fn begin_read_wal_frame_raw<F: File + ?Sized>(
buffer_pool: &Arc<BufferPool>,
io: &Arc<dyn File>,
io: &F,
offset: u64,
complete: Box<ReadComplete>,
) -> Result<Completion> {
@@ -1942,8 +1942,8 @@ pub fn begin_read_wal_frame_raw(
Ok(c)
}
pub fn begin_read_wal_frame(
io: &Arc<dyn File>,
pub fn begin_read_wal_frame<F: File + ?Sized>(
io: &F,
offset: u64,
buffer_pool: Arc<BufferPool>,
complete: Box<ReadComplete>,
@@ -2083,7 +2083,7 @@ pub fn prepare_wal_frame(
(final_checksum, Arc::new(buffer))
}
pub fn begin_write_wal_header(io: &Arc<dyn File>, header: &WalHeader) -> Result<Completion> {
pub fn begin_write_wal_header<F: File + ?Sized>(io: &F, header: &WalHeader) -> Result<Completion> {
tracing::trace!("begin_write_wal_header");
let buffer = {
let buffer = Buffer::new_temporary(WAL_HEADER_SIZE);

View File

@@ -1126,7 +1126,7 @@ impl Wal for WalFile {
shared.file.as_ref().unwrap().clone()
};
begin_read_wal_frame(
&file,
file.as_ref(),
offset + WAL_FRAME_HEADER_SIZE as u64,
buffer_pool,
complete,
@@ -1186,7 +1186,7 @@ impl Wal for WalFile {
let shared = self.get_shared();
assert!(shared.enabled.load(Ordering::SeqCst), "WAL must be enabled");
let file = shared.file.as_ref().unwrap();
let c = begin_read_wal_frame_raw(&self.buffer_pool, file, offset, complete)?;
let c = begin_read_wal_frame_raw(&self.buffer_pool, file.as_ref(), offset, complete)?;
Ok(c)
}
@@ -1246,7 +1246,7 @@ impl Wal for WalFile {
assert!(shared.enabled.load(Ordering::SeqCst), "WAL must be enabled");
let file = shared.file.as_ref().unwrap();
let c = begin_read_wal_frame(
file,
file.as_ref(),
offset + WAL_FRAME_HEADER_SIZE as u64,
buffer_pool,
complete,
@@ -1448,7 +1448,7 @@ impl Wal for WalFile {
let shared = self.get_shared();
assert!(shared.enabled.load(Ordering::SeqCst), "WAL must be enabled");
let file = shared.file.as_ref().unwrap();
let c = sqlite3_ondisk::begin_write_wal_header(file, &shared.wal_header.lock())?;
let c = sqlite3_ondisk::begin_write_wal_header(file.as_ref(), &shared.wal_header.lock())?;
Ok(Some(c))
}
@@ -2245,7 +2245,7 @@ impl WalFile {
assert!(shared.enabled.load(Ordering::SeqCst), "WAL must be enabled");
let file = shared.file.as_ref().unwrap();
let c = begin_read_wal_frame(
file,
file.as_ref(),
offset + WAL_FRAME_HEADER_SIZE as u64,
self.buffer_pool.clone(),
complete,

View File

@@ -418,15 +418,15 @@ impl BTreeGenerator<'_> {
assert_eq!(file.size().unwrap(), 4096 * 2);
for (i, page) in pages.iter().enumerate() {
let page = self.create_page(page, &page_numbers);
write_at(&io, file.clone(), 4096 * (i + 1), &page);
write_at(&io, file.as_ref(), 4096 * (i + 1), &page);
}
let size = 1 + pages.len();
let size_bytes = U32::new(size as u32).to_bytes();
write_at(&io, file, 28, &size_bytes);
write_at(&io, file.as_ref(), 28, &size_bytes);
}
}
fn write_at(io: &impl IO, file: Arc<dyn File>, offset: usize, data: &[u8]) {
fn write_at<F: File + ?Sized>(io: &impl IO, file: &F, offset: usize, data: &[u8]) {
#[allow(clippy::arc_with_non_send_sync)]
let buffer = Arc::new(Buffer::new(data.to_vec()));
let _buf = buffer.clone();