pub struct Builder { /* private fields */ }Expand description
Builder for constructing PGM indices with custom parameters.
§Example
use pgm_extra::index::Builder;
let data: Vec<u64> = (0..10000).collect();
let index = Builder::new()
.epsilon(128)
.epsilon_recursive(8)
.build(&data)
.unwrap();
assert_eq!(index.epsilon(), 128);Implementations§
Source§impl Builder
impl Builder
pub fn new() -> Self
Sourcepub fn epsilon(self, epsilon: usize) -> Self
pub fn epsilon(self, epsilon: usize) -> Self
Set the epsilon (error bound) for the bottom level.
Sourcepub fn epsilon_recursive(self, epsilon_recursive: usize) -> Self
pub fn epsilon_recursive(self, epsilon_recursive: usize) -> Self
Set the epsilon (error bound) for the upper levels.
pub fn parallel(self, parallel: bool) -> Self
pub fn build<T: Indexable>(&self, data: &[T]) -> Result<Static<T>, Error>
pub fn build_one_level<T: Indexable>( &self, data: &[T], ) -> Result<OneLevel<T>, Error>
pub fn build_dynamic<T: Indexable + Ord + Copy>( &self, data: Vec<T>, ) -> Result<Dynamic<T>, Error>
pub fn build_dynamic_empty<T: Indexable + Ord + Copy>(&self) -> Dynamic<T>
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Builder
impl RefUnwindSafe for Builder
impl Send for Builder
impl Sync for Builder
impl Unpin for Builder
impl UnwindSafe for Builder
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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