Skip to main content

pd_cipher::lookup::storage_provider

Storage provider trait system for flexible backend implementations. Storage provider trait system for lookup tables.

This module defines traits that abstract LUT storage backends, supporting everything from simple in-memory HashMaps to distributed SSE databases.

Traits

LutBuilder

Trait for building lookup tables during encryption.

This trait prioritizes batch operations for efficiency. Single operations are provided as conveniences that delegate to batch methods.

pub trait LutBuilder

KeyManager

Trait for key management operations.

pub trait KeyManager

StorageProvider

Main trait for storage providers.

This trait acts as a factory for creating builders (during encryption) and readers (during decryption) for lookup tables.

pub trait StorageProvider

LutReader

Trait for reading from lookup tables during decryption.

This trait prioritizes batch operations for efficiency. Single operations are provided as conveniences that delegate to batch methods.

pub trait LutReader

LendingReader

Optional trait for zero-copy reads using generic associated types (GATs).

This trait enables backends to return borrowed data (e.g., from memory maps or lock guards) without allocation. Use this trait via static dispatch for performance-critical paths. It is not object-safe due to GATs.

pub trait LendingReader

SecureLutReader

Trait for readers that support integrity verification.

pub trait SecureLutReader

PrefixSearchable

Optional trait for readers that support prefix searches.

pub trait PrefixSearchable

SseSearchable

Optional trait for readers that support searchable symmetric encryption.

pub trait SseSearchable

Type Aliases

ResultStream

Stream type for returning results from prefix searches.

pub type ResultStream<...> = ...