1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
use crate::types::bv::{BvObject, BvString}; pub trait BytesFilter { fn filter<F>(&self, cb: F) -> Vec<(&BvString, &BvObject)> where F: Fn((&BvString, &BvObject)) -> bool; } pub trait BytesSearch { fn starts_with<S: AsRef<str>>(&self, key_part: S) -> Vec<(&BvString, &BvObject)>; fn ends_with<S: AsRef<str>>(&self, key_part: S) -> Vec<(&BvString, &BvObject)>; fn contains<S: AsRef<str>>(&self, key_part: S) -> Vec<(&BvString, &BvObject)>; } pub trait BvStartsWith<T: ?Sized> { fn starts_with(&self, other: T) -> bool; } pub trait BvEndsWith<T: ?Sized> { fn ends_with(&self, other: T) -> bool; } pub trait BvContains<T: ?Sized> { fn contains(&self, s: T) -> bool; }