pub struct RoleDef {
pub name: String,
pub keys: Vec<String>,
pub labels: Vec<String>,
pub write: Option<WriteScope>,
}Expand description
A named RBAC role: resolves to a node-visibility mask at query time.
keys and labels both default to empty when absent from JSON, so a
schema snippet that names only labels is valid.
The resolved mask is the union of:
- all nodes whose key appears in
keys(unknown keys silently ignored), and - all nodes carrying any label in
labels(resolved live against the current graph — new nodes of an allowed label are immediately visible without re-applying the schema).
An empty union (no keys, no matching label nodes) = empty mask = sees nothing.
write: None (or absent from JSON) = read-only role, v1 behavior, backward
compatible with any client that does not know about write scopes.
Fields§
§name: String§keys: Vec<String>Explicit node keys always visible to the role.
labels: Vec<String>All nodes carrying any of these labels are visible (resolved live).
write: Option<WriteScope>Absent or null = read-only role (v1 behavior, backward compatible).
Trait Implementations§
Source§impl<'de> Deserialize<'de> for RoleDef
impl<'de> Deserialize<'de> for RoleDef
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl StructuralPartialEq for RoleDef
Auto Trait Implementations§
impl Freeze for RoleDef
impl RefUnwindSafe for RoleDef
impl Send for RoleDef
impl Sync for RoleDef
impl Unpin for RoleDef
impl UnsafeUnpin for RoleDef
impl UnwindSafe for RoleDef
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Returns the layout of the type.
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Returns whether the given value has been niched. Read more
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
Writes data to
out indicating that a T is niched.