pub struct SchemaFragment { /* private fields */ }
Expand description
Contains all the type information used to construct a Schema
that can be
used to validate a policy.
Implementations§
Source§impl SchemaFragment
impl SchemaFragment
Sourcepub fn namespaces(&self) -> impl Iterator<Item = Option<EntityNamespace>> + '_
pub fn namespaces(&self) -> impl Iterator<Item = Option<EntityNamespace>> + '_
Extract namespaces defined in this SchemaFragment
.
None
indicates the empty namespace.
Sourcepub fn from_json_str(src: &str) -> Result<Self, SchemaError>
pub fn from_json_str(src: &str) -> Result<Self, SchemaError>
Create a SchemaFragment
from a string containing JSON in the
JSON schema format.
Sourcepub fn from_json_value(json: Value) -> Result<Self, SchemaError>
pub fn from_json_value(json: Value) -> Result<Self, SchemaError>
Create a SchemaFragment
from a JSON value (which should be an
object of the shape required for the JSON schema format).
Sourcepub fn from_cedarschema_file(
r: impl Read,
) -> Result<(Self, impl Iterator<Item = SchemaWarning>), CedarSchemaError>
pub fn from_cedarschema_file( r: impl Read, ) -> Result<(Self, impl Iterator<Item = SchemaWarning>), CedarSchemaError>
Parse a SchemaFragment
from a reader containing the Cedar schema syntax
Sourcepub fn from_cedarschema_str(
src: &str,
) -> Result<(Self, impl Iterator<Item = SchemaWarning>), CedarSchemaError>
pub fn from_cedarschema_str( src: &str, ) -> Result<(Self, impl Iterator<Item = SchemaWarning>), CedarSchemaError>
Parse a SchemaFragment
from a string containing the Cedar schema syntax
Sourcepub fn from_json_file(file: impl Read) -> Result<Self, SchemaError>
pub fn from_json_file(file: impl Read) -> Result<Self, SchemaError>
Create a SchemaFragment
directly from a JSON file (which should
contain an object of the shape required for the JSON schema format).
Sourcepub fn to_json_value(self) -> Result<Value, SchemaError>
pub fn to_json_value(self) -> Result<Value, SchemaError>
Serialize this SchemaFragment
as a JSON value
Sourcepub fn to_json_string(&self) -> Result<String, SchemaError>
pub fn to_json_string(&self) -> Result<String, SchemaError>
Serialize this SchemaFragment
as a JSON string
Sourcepub fn to_cedarschema(&self) -> Result<String, ToCedarSchemaError>
pub fn to_cedarschema(&self) -> Result<String, ToCedarSchemaError>
Serialize this SchemaFragment
into a string in the Cedar schema
syntax
Trait Implementations§
Source§impl Debug for SchemaFragment
impl Debug for SchemaFragment
Source§impl FromStr for SchemaFragment
impl FromStr for SchemaFragment
Source§fn from_str(src: &str) -> Result<Self, Self::Err>
fn from_str(src: &str) -> Result<Self, Self::Err>
Construct SchemaFragment
from a string containing a schema formatted
in the Cedar schema format. This can fail if the string is not a valid
schema. This function does not check for consistency in the schema
(e.g., references to undefined entities) because this is not required
until a Schema
is constructed.
Source§type Err = CedarSchemaError
type Err = CedarSchemaError
Source§impl TryInto<Schema> for SchemaFragment
impl TryInto<Schema> for SchemaFragment
Source§fn try_into(self) -> Result<Schema, Self::Error>
fn try_into(self) -> Result<Schema, Self::Error>
Convert SchemaFragment
into a Schema
. To build the Schema
we
need to have all entity types defined, so an error will be returned if
any undeclared entity types are referenced in the schema fragment.
Source§type Error = SchemaError
type Error = SchemaError
Auto Trait Implementations§
impl Freeze for SchemaFragment
impl RefUnwindSafe for SchemaFragment
impl Send for SchemaFragment
impl Sync for SchemaFragment
impl Unpin for SchemaFragment
impl UnwindSafe for SchemaFragment
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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