pub struct BpsConfig {
pub block_size: u16,
pub num_blocks: u16,
pub num_projections: u16,
}Expand description
BPS (Block Projection Sketch) configuration
Fields§
§block_size: u16Dimensions per block
num_blocks: u16Number of blocks (computed from dim)
num_projections: u16Number of projections per block (1 or 2)
Implementations§
Source§impl BpsConfig
impl BpsConfig
Sourcepub const MAX_SAFE_SLOTS: u32 = 257
pub const MAX_SAFE_SLOTS: u32 = 257
Maximum safe value for num_blocks × num_projections to prevent u16 overflow. With max L1 diff of 255 per slot: 65535 / 255 = 257
Sourcepub fn validate(&self) -> Result<(), String>
pub fn validate(&self) -> Result<(), String>
Validate configuration to ensure BPS distance won’t overflow u16. Returns error if num_blocks × num_projections × 255 > u16::MAX.
Sourcepub fn max_distance(&self) -> u32
pub fn max_distance(&self) -> u32
Theoretical maximum L1 distance for this configuration
Trait Implementations§
Source§impl<'de> Deserialize<'de> for BpsConfig
impl<'de> Deserialize<'de> for BpsConfig
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for BpsConfig
impl RefUnwindSafe for BpsConfig
impl Send for BpsConfig
impl Sync for BpsConfig
impl Unpin for BpsConfig
impl UnsafeUnpin for BpsConfig
impl UnwindSafe for BpsConfig
Blanket Implementations§
impl<T> Allocation for T
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more