cedar_policy_core::ast

Struct Request

Source
pub struct Request { /* private fields */ }
Expand description

Represents the request tuple <P, A, R, C> (see the Cedar design doc).

Implementations§

Source§

impl Request

Source

pub fn new<S: RequestSchema>( principal: (EntityUID, Option<Loc>), action: (EntityUID, Option<Loc>), resource: (EntityUID, Option<Loc>), context: Context, schema: Option<&S>, extensions: &Extensions<'_>, ) -> Result<Self, S::Error>

Default constructor.

If schema is provided, this constructor validates that this Request complies with the given schema.

Source

pub fn new_with_unknowns<S: RequestSchema>( principal: EntityUIDEntry, action: EntityUIDEntry, resource: EntityUIDEntry, context: Option<Context>, schema: Option<&S>, extensions: &Extensions<'_>, ) -> Result<Self, S::Error>

Create a new Request with potentially unknown (for partial eval) variables.

If schema is provided, this constructor validates that this Request complies with the given schema (at least to the extent that we can validate with the given information)

Source

pub fn new_unchecked( principal: EntityUIDEntry, action: EntityUIDEntry, resource: EntityUIDEntry, context: Option<Context>, ) -> Self

Create a new Request with potentially unknown (for partial eval) variables/context and without schema validation.

Source

pub fn principal(&self) -> &EntityUIDEntry

Get the principal associated with the request

Source

pub fn action(&self) -> &EntityUIDEntry

Get the action associated with the request

Source

pub fn resource(&self) -> &EntityUIDEntry

Get the resource associated with the request

Source

pub fn context(&self) -> Option<&Context>

Get the context associated with the request Returning None means the variable is unknown, and will result in a residual expression

Source

pub fn to_request_type(&self) -> Option<RequestType>

Get the request types that correspond to this request. This includes the types of the principal, action, and resource. RequestType is used by the entity manifest. The context type is implied by the action’s type. Returns None if the request is not fully concrete.

Trait Implementations§

Source§

impl Clone for Request

Source§

fn clone(&self) -> Request

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 Debug for Request

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Display for Request

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Serialize for Request

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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
Source§

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

Source§

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<T> ToSmolStr for T
where T: Display + ?Sized,

Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

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

Source§

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>,

Source§

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.