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> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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 moreSource§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Returns the layout of the type.
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Returns whether the given value has been niched. Read more
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
Writes data to
out indicating that a T is niched.