pub enum Plan {
Free,
Supporter,
Pro,
Team,
Business,
Enterprise,
}Expand description
A commercial-plane plan. The local engine is fully usable with no plan
(equivalent to Plan::Free); plans only add coordination/scale/governance.
Variants§
Free
The default: full local Context OS, no account required. No commercial entitlements, no metered ceilings on local use.
Supporter
Individual Supporter: a voluntary recurring subscription that funds
development. Grants only account-level recognition (a supporter badge) and
convenience — never a local capability, and none of the Team/Cloud
coordination entitlements. (The sponsor alias names its top tier.)
Pro
Individual Pro (“Personal Cloud”): a paid, account-bound subscription
that adds the cloud_sync entitlement (hosted cross-device sync + backup of
the user’s own context) on top of supporter recognition. Still never a
local capability and none of the Team/Cloud coordination entitlements; it
sits additively between Supporter and Team (supporter ⊂ pro ⊂ team).
Team
Shared team/org coordination: seats, shared knowledge, hosted retrieval.
Business
Self-serve governance (GL #460/#533): everything in Team plus OIDC SSO
(sso_oidc), a 1-year audit window and higher flat quotas — at a flat
price, no sales motion. SAML/SCIM stay Enterprise.
Enterprise
Governance at scale: SSO/SCIM, audit retention, private registries.
Implementations§
Source§impl Plan
impl Plan
Sourcepub fn rank(self) -> usize
pub fn rank(self) -> usize
Ordinal rank in the ascending Plan::all order (Free = 0 …
Enterprise = 5). Lets callers pick the higher of two plans — e.g. the
effective-plan resolver elevating to an offline license’s grant.
Sourcepub fn parse(s: &str) -> Plan
pub fn parse(s: &str) -> Plan
Parse a plan id (case-insensitive). Unknown ids map to Plan::Free —
the safe default that never gates anything. pro is its own Plan::Pro;
supporter/sponsor are the voluntary Plan::Supporter tier.
Sourcepub fn entitlements(self) -> Entitlements
pub fn entitlements(self) -> Entitlements
The commercial entitlements this plan grants.
Trait Implementations§
impl Copy for Plan
Source§impl<'de> Deserialize<'de> for Plan
impl<'de> Deserialize<'de> for Plan
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for Plan
impl StructuralPartialEq for Plan
Auto Trait Implementations§
impl Freeze for Plan
impl RefUnwindSafe for Plan
impl Send for Plan
impl Sync for Plan
impl Unpin for Plan
impl UnsafeUnpin for Plan
impl UnwindSafe for Plan
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
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 more