#[non_exhaustive]pub struct ScopeRecord {
pub scope_ref: String,
pub scope_epoch: u64,
pub kind: ScopeKind,
pub bind_proof_sha256: Option<String>,
pub replace_only_if_idle: bool,
pub expires_at_ms: Option<u64>,
pub parent: Option<ScopeParent>,
pub child_owners: Vec<Principal>,
pub carriers: Vec<ScopeCarrier>,
pub attributes: ScopeAttributes,
}Expand description
One scope as its owner registers it in scope.sync or scope.apply.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.scope_ref: String§scope_epoch: u64Owner-supplied session number. The owner keeps it with its own record of the session, re-sends the same value for the same session after any restart, and uses a higher one when it reuses the ref for a new session.
kind: ScopeKind§bind_proof_sha256: Option<String>Only the holder of the scope’s bind proof can bind it when this hash is present. Without a hash, admission is unchanged and proofs are ignored.
replace_only_if_idle: boolRefuse an epoch replacement or bind-proof change while routes are bound to the live epoch, including binds admitted but not yet committed, or connected presence holders remain. Send only after capability discovery. This is a request condition, not a stored scope attribute.
expires_at_ms: Option<u64>Absolute Unix wall-clock deadline in milliseconds. It cannot be added, changed or removed within this scope epoch; absent means no deadline. This is not an authority attribute.
parent: Option<ScopeParent>§child_owners: Vec<Principal>Principals, other than the owner, allowed to register child scopes under this one. Listing a principal here grants it nothing else.
carriers: Vec<ScopeCarrier>§attributes: ScopeAttributes