pub enum Profile {
BareMetal,
Embedded,
Durable,
Delta,
}Expand description
Deployment profile — determines which subsystems are activated.
Profiles are ordered by capability: each tier includes everything from the tiers below it.
Variants§
BareMetal
In-memory only, no persistence. Fastest startup.
Embedded
Local WAL persistence (embedded single-node).
Durable
Object-store checkpoints + rkyv snapshots.
Delta
Full distributed: Durable + gRPC + gossip + Raft.
Implementations§
Source§impl Profile
impl Profile
Sourcepub fn from_config(config: &LaminarConfig, has_discovery: bool) -> Self
pub fn from_config(config: &LaminarConfig, has_discovery: bool) -> Self
Auto-detect the appropriate profile from configuration.
Uses orthogonal signals (checkpoint URL scheme, presence of discovery config) rather than requiring an explicit profile choice.
| Signal | Detected Profile |
|---|---|
has_discovery = true | Delta |
object_store_url is s3:///gs:///az:// | Durable |
object_store_url is file:// or storage_dir set | Embedded |
| None of the above | BareMetal |
Sourcepub fn validate_features(self) -> Result<(), ProfileError>
pub fn validate_features(self) -> Result<(), ProfileError>
Validate that the compiled feature flags satisfy this profile’s requirements. Returns an error if a required feature was not compiled in.
§Errors
Returns ProfileError::FeatureNotCompiled if a required Cargo
feature is missing.
Sourcepub fn validate_config(
self,
config: &LaminarConfig,
object_store_url: Option<&str>,
) -> Result<(), ProfileError>
pub fn validate_config( self, config: &LaminarConfig, object_store_url: Option<&str>, ) -> Result<(), ProfileError>
Validate that the given configuration satisfies this profile’s runtime requirements (e.g., a storage directory for Embedded, an object store URL for Durable).
§Errors
Returns ProfileError::RequirementNotMet if a required config
field is missing.
Sourcepub fn apply_defaults(self, config: &mut LaminarConfig)
pub fn apply_defaults(self, config: &mut LaminarConfig)
Apply sensible defaults to a LaminarConfig for this profile.
Does not override fields that the user has already set.
Trait Implementations§
impl Copy for Profile
impl Eq for Profile
impl StructuralPartialEq for Profile
Auto Trait Implementations§
impl Freeze for Profile
impl RefUnwindSafe for Profile
impl Send for Profile
impl Sync for Profile
impl Unpin for Profile
impl UnsafeUnpin for Profile
impl UnwindSafe for Profile
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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>
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>
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>
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
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
out indicating that a T is niched.