Skip to main content

permission

Attribute Macro permission 

Source
#[permission]
Expand description

Defines a user-defined permission type for capability-based security.

Generates the Permission trait impl (with seal token), Has<P> impls for Cap<P> and SendCap<P>, and optionally Subsumes impls for permission hierarchies.

§Usage

#[capsec::permission]
pub struct DbRead;

#[capsec::permission]
pub struct DbWrite;

#[capsec::permission(subsumes = [DbRead, DbWrite])]
pub struct DbAll;

§What it generates

For #[capsec::permission] pub struct DbRead;:

  • impl Permission for DbRead with the seal token
  • impl Has<DbRead> for Cap<DbRead>
  • impl Has<DbRead> for SendCap<DbRead>

For #[capsec::permission(subsumes = [DbRead, DbWrite])] pub struct DbAll;:

  • All of the above, plus:
  • impl Subsumes<DbRead> for DbAll
  • impl Has<DbRead> for Cap<DbAll> and SendCap<DbAll>
  • Same for DbWrite