Skip to main content

SessionLifecycleCapability

Trait SessionLifecycleCapability 

Source
pub trait SessionLifecycleCapability {
    type Error: Into<GuestError>;

    // Required methods
    fn create(
        &self,
        parent: &Session,
        pubkey: [u8; 32],
    ) -> Result<Session, Self::Error>;
    fn add_entitlement(
        &self,
        target: &mut Session,
        entitlement: Capability,
    ) -> Result<(), Self::Error>;
    fn rm_entitlement(
        &self,
        target: &mut Session,
        entitlement: Capability,
    ) -> Result<(), Self::Error>;
    fn add_resource(
        &self,
        target: &mut Session,
        entitlement: Capability,
        resource: ResourceId,
    ) -> Result<bool, Self::Error>;
    fn rm_resource(
        &self,
        target: &mut Session,
        entitlement: Capability,
        resource: ResourceId,
    ) -> Result<bool, Self::Error>;
    fn remove(&self, target: &Session) -> Result<(), Self::Error>;
}
Expand description

Capability responsible for session lifecycles.

Required Associated Types§

Required Methods§

Source

fn create( &self, parent: &Session, pubkey: [u8; 32], ) -> Result<Session, Self::Error>

Create a new session with no entitlements

Source

fn add_entitlement( &self, target: &mut Session, entitlement: Capability, ) -> Result<(), Self::Error>

Add an entitlement to the given session

Source

fn rm_entitlement( &self, target: &mut Session, entitlement: Capability, ) -> Result<(), Self::Error>

Remove an entitlement from the given session

Source

fn add_resource( &self, target: &mut Session, entitlement: Capability, resource: ResourceId, ) -> Result<bool, Self::Error>

Add a resource to an entitlement

Source

fn rm_resource( &self, target: &mut Session, entitlement: Capability, resource: ResourceId, ) -> Result<bool, Self::Error>

Remove a resource from an entitlement

Source

fn remove(&self, target: &Session) -> Result<(), Self::Error>

Delete a session

Implementations on Foreign Types§

Source§

impl<T> SessionLifecycleCapability for Arc<T>

Source§

type Error = <T as SessionLifecycleCapability>::Error

Source§

fn create( &self, parent: &Session, pubkey: [u8; 32], ) -> Result<Session, Self::Error>

Source§

fn add_entitlement( &self, target: &mut Session, entitlement: Capability, ) -> Result<(), Self::Error>

Source§

fn rm_entitlement( &self, target: &mut Session, entitlement: Capability, ) -> Result<(), Self::Error>

Source§

fn add_resource( &self, target: &mut Session, entitlement: Capability, resource: ResourceId, ) -> Result<bool, Self::Error>

Source§

fn rm_resource( &self, target: &mut Session, entitlement: Capability, resource: ResourceId, ) -> Result<bool, Self::Error>

Source§

fn remove(&self, target: &Session) -> Result<(), Self::Error>

Implementors§