pub struct EncryptedIndex { /* private fields */ }Expand description
Inverted index mapping ciphertext hash → Vec<record_id>.
Thread-safe via DashMap.
Implementations§
Source§impl EncryptedIndex
impl EncryptedIndex
Sourcepub fn new(
name: impl Into<String>,
collection: impl Into<String>,
field: impl Into<String>,
) -> Self
pub fn new( name: impl Into<String>, collection: impl Into<String>, field: impl Into<String>, ) -> Self
Create a new empty index.
§Example
use amaters_core::storage::EncryptedIndex;
let index = EncryptedIndex::new("age_index", "users", "age");
// Insert a record: ciphertext bytes representing an encrypted age value
let ciphertext_bytes = b"fake_ciphertext_for_value_30";
index.insert(ciphertext_bytes, 42); // record_id = 42
// Look up candidates by the same ciphertext bytes
let candidates = index.lookup_candidates(ciphertext_bytes);
assert_eq!(candidates, vec![42]);Sourcepub fn collection(&self) -> &str
pub fn collection(&self) -> &str
Collection this index belongs to.
Sourcepub fn remove(&self, ciphertext_bytes: &[u8], record_id: u64)
pub fn remove(&self, ciphertext_bytes: &[u8], record_id: u64)
Remove a specific record from the index.
Sourcepub fn lookup_candidates(&self, ciphertext_bytes: &[u8]) -> Vec<u64>
pub fn lookup_candidates(&self, ciphertext_bytes: &[u8]) -> Vec<u64>
Look up candidate record IDs by ciphertext hash.
Sourcepub fn total_records(&self) -> usize
pub fn total_records(&self) -> usize
Total number of record IDs stored across all buckets.
Sourcepub fn deserialize(data: &[u8]) -> Result<Self>
pub fn deserialize(data: &[u8]) -> Result<Self>
Deserialize an index from bytes produced by serialize.
Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for EncryptedIndex
impl Freeze for EncryptedIndex
impl Send for EncryptedIndex
impl Sync for EncryptedIndex
impl Unpin for EncryptedIndex
impl UnsafeUnpin for EncryptedIndex
impl UnwindSafe for EncryptedIndex
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> 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 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.