Struct oso::Class

source ·
pub struct Class {
    pub name: String,
    pub type_id: TypeId,
    pub register_hooks: Vec<RegisterHook>,
    /* private fields */
}
Expand description

Class that can be registered with Oso.

A class represents an entity, such as an actor or a resource. It is typically backed by a Rust struct and can carry some internal state, as well as have methods that can be made accessible from within the policy file.

While the instance of the class itself is stored as a PolarValue::Instance, the Class struct contains metadata, such as the constructor, attributes, instance methods, comparison functions as well as the name.

Fields§

§name: String

The class name. Defaults to std::any::type_name.

§type_id: TypeId

Type ID of the class.

§register_hooks: Vec<RegisterHook>

Hooks to be called on the class once it’s been registered with host.

Implementations§

source§

impl Class

source

pub fn builder<T: 'static>() -> ClassBuilder<T>

Builder instance to build class.

Use this when you want to hook your own class into Oso. See ClassBuilder for usage examples.

source

pub fn init(&self, fields: Vec<PolarValue>) -> Result<Instance>

Initialize new class instance.

source

pub fn call(&self, attr: &str, args: Vec<PolarValue>) -> Result<PolarValue>

Call class method attr on self with arguments from args.

Returns the result as a PolarValue.

Trait Implementations§

source§

impl Clone for Class

source§

fn clone(&self) -> Class

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl PolarClass for Class

source§

fn get_polar_class() -> Class

Returns the Class ready for registration
source§

fn get_polar_class_builder() -> ClassBuilder<Self>

Returns the partially defined Class for this type. Read more

Auto Trait Implementations§

§

impl !RefUnwindSafe for Class

§

impl Send for Class

§

impl Sync for Class

§

impl Unpin for Class

§

impl !UnwindSafe for Class

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> FromPolar for T
where T: 'static + Clone + PolarClass,

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<C> ToPolar for C
where C: PolarClass + Send + Sync,

source§

fn to_polar(self) -> PolarValue

Convert this value into a Polar value.
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more