#[non_exhaustive]pub struct ViewLeaf {
pub index: Vec<u8>,
pub min: IndexValue,
pub max: IndexValue,
}Expand description
One leaf: a declared index + the shape it contributes.
use kevy_index::{IndexValue, Leaf};
let adults = Leaf::new("age", IndexValue::I64(18), IndexValue::I64(i64::MAX));
assert_eq!(adults.index, b"age");Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.index: Vec<u8>Index name (resolved by the runtime).
use kevy_index::{IndexValue, Leaf};
let leaf = Leaf::new("city", IndexValue::Str(b"a".to_vec()), IndexValue::Str(b"m".to_vec()));
assert_eq!(leaf.index, b"city");min: IndexValueInclusive bounds (EQ = same min/max), already coerced to the index’s type by the runtime at CREATE time.
use kevy_index::{IndexValue, Leaf, Tree};
let leaf = Leaf::new("age", IndexValue::I64(18), IndexValue::I64(65));
assert_eq!(leaf.min, IndexValue::I64(18));
let t = Tree::Leaf(leaf);
assert!(t.contains_values(&|_: &[u8]| Some(IndexValue::I64(18))), "min is inclusive");
assert!(!t.contains_values(&|_: &[u8]| Some(IndexValue::I64(17))));max: IndexValueUpper bound.
use kevy_index::{IndexValue, Leaf, Tree};
let leaf = Leaf::new("age", IndexValue::I64(18), IndexValue::I64(65));
assert_eq!(leaf.max, IndexValue::I64(65));
let t = Tree::Leaf(leaf);
assert!(t.contains_values(&|_: &[u8]| Some(IndexValue::I64(65))), "max is inclusive");
assert!(!t.contains_values(&|_: &[u8]| Some(IndexValue::I64(66))));Implementations§
Source§impl Leaf
impl Leaf
Sourcepub fn new(index: impl Into<Vec<u8>>, min: IndexValue, max: IndexValue) -> Leaf
pub fn new(index: impl Into<Vec<u8>>, min: IndexValue, max: IndexValue) -> Leaf
Rows of index index whose value lies in min..=max (EQ is
min == max), bounds already coerced to the index’s type.
use kevy_index::{IndexValue, Leaf};
let eq = Leaf::new("city", IndexValue::Str(b"kyoto".to_vec()), IndexValue::Str(b"kyoto".to_vec()));
assert_eq!(eq.min, eq.max);Trait Implementations§
impl StructuralPartialEq for Leaf
Auto Trait Implementations§
impl Freeze for Leaf
impl RefUnwindSafe for Leaf
impl Send for Leaf
impl Sync for Leaf
impl Unpin for Leaf
impl UnsafeUnpin for Leaf
impl UnwindSafe for Leaf
Blanket Implementations§
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