From f5b424b96cee32b80cbee43020628d5feb2e57df Mon Sep 17 00:00:00 2001 From: Christian Schwarz Date: Wed, 7 Dec 2022 12:52:25 -0500 Subject: [PATCH] no-op: type aliases for Layer::iter and Layer::key_iter return types Not needed by anything right now, but the next commit adds a `Result<>` around iter() and key_iter()'s return types, and that makes clippy complain. --- pageserver/src/tenant/delta_layer.rs | 6 +++--- pageserver/src/tenant/image_layer.rs | 6 +++--- pageserver/src/tenant/storage_layer.rs | 10 ++++++++-- 3 files changed, 14 insertions(+), 8 deletions(-) diff --git a/pageserver/src/tenant/delta_layer.rs b/pageserver/src/tenant/delta_layer.rs index d8aaa3e8b9..cff819d878 100644 --- a/pageserver/src/tenant/delta_layer.rs +++ b/pageserver/src/tenant/delta_layer.rs @@ -55,7 +55,7 @@ use utils::{ }; use super::filename::LayerFileName; -use super::storage_layer::Layer; +use super::storage_layer::{Layer, LayerIter, LayerKeyIter}; /// /// Header stored in the beginning of the file @@ -391,7 +391,7 @@ impl PersistentLayer for DeltaLayer { self.path() } - fn iter<'a>(&'a self) -> Box> + 'a> { + fn iter(&self) -> LayerIter<'_> { let inner = match self.load() { Ok(inner) => inner, Err(e) => panic!("Failed to load a delta layer: {e:?}"), @@ -403,7 +403,7 @@ impl PersistentLayer for DeltaLayer { } } - fn key_iter<'a>(&'a self) -> Box + 'a> { + fn key_iter(&self) -> LayerKeyIter<'_> { let inner = match self.load() { Ok(inner) => inner, Err(e) => panic!("Failed to load a delta layer: {e:?}"), diff --git a/pageserver/src/tenant/image_layer.rs b/pageserver/src/tenant/image_layer.rs index e08e938a4f..fe9de855e7 100644 --- a/pageserver/src/tenant/image_layer.rs +++ b/pageserver/src/tenant/image_layer.rs @@ -21,7 +21,7 @@ //! actual page images are stored in the "values" part. use crate::config::PageServerConf; use crate::page_cache::PAGE_SZ; -use crate::repository::{Key, Value, KEY_SIZE}; +use crate::repository::{Key, KEY_SIZE}; use crate::tenant::blob_io::{BlobCursor, BlobWriter, WriteBlobWriter}; use crate::tenant::block_io::{BlockBuf, BlockReader, FileBlockReader}; use crate::tenant::disk_btree::{DiskBtreeBuilder, DiskBtreeReader, VisitDirection}; @@ -51,7 +51,7 @@ use utils::{ }; use super::filename::LayerFileName; -use super::storage_layer::Layer; +use super::storage_layer::{Layer, LayerIter}; /// /// Header stored in the beginning of the file @@ -219,7 +219,7 @@ impl PersistentLayer for ImageLayer { fn get_timeline_id(&self) -> TimelineId { self.timeline_id } - fn iter(&self) -> Box>> { + fn iter(&self) -> LayerIter<'_> { unimplemented!(); } diff --git a/pageserver/src/tenant/storage_layer.rs b/pageserver/src/tenant/storage_layer.rs index 3ad62587d3..82c25c063b 100644 --- a/pageserver/src/tenant/storage_layer.rs +++ b/pageserver/src/tenant/storage_layer.rs @@ -116,6 +116,12 @@ pub trait Layer: Send + Sync { fn dump(&self, verbose: bool) -> Result<()>; } +/// Returned by [`Layer::iter`] +pub type LayerIter<'i> = Box> + 'i>; + +/// Returned by [`Layer::key_iter`] +pub type LayerKeyIter<'i> = Box + 'i>; + /// A Layer contains all data in a "rectangle" consisting of a range of keys and /// range of LSNs. /// @@ -144,11 +150,11 @@ pub trait PersistentLayer: Layer { fn local_path(&self) -> PathBuf; /// Iterate through all keys and values stored in the layer - fn iter(&self) -> Box> + '_>; + fn iter(&self) -> LayerIter<'_>; /// Iterate through all keys stored in the layer. Returns key, lsn and value size /// It is used only for compaction and so is currently implemented only for DeltaLayer - fn key_iter(&self) -> Box + '_> { + fn key_iter(&self) -> LayerKeyIter<'_> { panic!("Not implemented") }