pub struct CachekitConfigBuilder { /* private fields */ }Expand description
Fluent builder for CachekitConfig.
Implementations§
Source§impl CachekitConfigBuilder
impl CachekitConfigBuilder
Sourcepub fn api_url(self, url: impl Into<String>) -> Result<Self, CachekitError>
pub fn api_url(self, url: impl Into<String>) -> Result<Self, CachekitError>
Set the API base URL. Must use HTTPS.
Sourcepub fn master_key(self, hex_key: &str) -> Result<Self, CachekitError>
pub fn master_key(self, hex_key: &str) -> Result<Self, CachekitError>
Set the master key from a hex string. Must decode to at least 32 bytes.
Sourcepub fn previous_master_keys(
self,
hex_keys: &[&str],
) -> Result<Self, CachekitError>
pub fn previous_master_keys( self, hex_keys: &[&str], ) -> Result<Self, CachekitError>
Set decrypt-only previous master keys from hex strings, in attempt order. Retained during a key-rotation grace window: reads attempt the current master key first, then each of these sequentially.
Validation is identical to Self::master_key per entry (valid hex,
at least 32 bytes). At most MAX_PREVIOUS_MASTER_KEYS entries —
more is a CachekitError::Config, never truncated. The current
master key must not reappear here (forward-only rotation: a retired
key is never re-promoted).
§Examples
use cachekit::config::CachekitConfigBuilder;
// k2 is current after rotation; k1 stays readable during the grace window.
let k1 = "11".repeat(32);
let k2 = "22".repeat(32);
let config = CachekitConfigBuilder::new()
.master_key(&k2)?
.previous_master_keys(&[k1.as_str()])?
.build();
assert_eq!(config.previous_master_keys.len(), 1);Sourcepub fn default_ttl(self, ttl: Duration) -> Result<Self, CachekitError>
pub fn default_ttl(self, ttl: Duration) -> Result<Self, CachekitError>
Set the default TTL. Must be at least 1 second.
Sourcepub fn l1_capacity(self, capacity: usize) -> Self
pub fn l1_capacity(self, capacity: usize) -> Self
Set the L1 cache capacity (max entries).
Sourcepub fn build(self) -> CachekitConfig
pub fn build(self) -> CachekitConfig
Finalise and return the CachekitConfig.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for CachekitConfigBuilder
impl RefUnwindSafe for CachekitConfigBuilder
impl Send for CachekitConfigBuilder
impl Sync for CachekitConfigBuilder
impl Unpin for CachekitConfigBuilder
impl UnsafeUnpin for CachekitConfigBuilder
impl UnwindSafe for CachekitConfigBuilder
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> 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 more