pub enum Privilege {
Known {
kind: PrivilegeKind,
columns: ThinVec<Ident>,
meta: Meta,
},
Other {
name: Ident,
columns: ThinVec<Ident>,
meta: Meta,
},
}Expand description
One privilege in a GRANT/REVOKE list, optionally column-scoped.
A built-in privilege word carries a structured PrivilegeKind; any other
identifier rides Other. PostgreSQL accepts an arbitrary
identifier in privilege position and only rejects an unknown name at execution,
so the Other escape keeps parse-time acceptance aligned and
captures dialect/extension privileges the built-in set does not name.
Variants§
Known
A built-in privilege keyword, e.g. SELECT or UPDATE (a, b).
Fields
§
kind: PrivilegeKindWhich built-in privilege; see PrivilegeKind.
Other
A privilege named by an arbitrary identifier (a dialect/extension privilege).
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Privilege
impl<'de> Deserialize<'de> for Privilege
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 Eq for Privilege
Source§impl Render for Privilege
impl Render for Privilege
Source§fn render(&self, ctx: &RenderCtx<'_>, f: &mut Formatter<'_>) -> Result
fn render(&self, ctx: &RenderCtx<'_>, f: &mut Formatter<'_>) -> Result
Return the render for this value.
Source§fn operand_binding_power(&self) -> Option<BindingPower>
fn operand_binding_power(&self) -> Option<BindingPower>
The binding power this node contributes when it appears as an operand, or
None (the default) for a self-delimiting node — an atom, call, or
constructor — that never needs parentheses. Read moreimpl StructuralPartialEq for Privilege
Auto Trait Implementations§
impl Freeze for Privilege
impl RefUnwindSafe for Privilege
impl Send for Privilege
impl Sync for Privilege
impl Unpin for Privilege
impl UnsafeUnpin for Privilege
impl UnwindSafe for Privilege
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
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> DynAstExt for T
impl<T> DynAstExt for T
Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Erase to
&dyn Any for downcasting a node back to its concrete type.Source§fn dyn_clone(&self) -> Box<dyn DynAstExt>
fn dyn_clone(&self) -> Box<dyn DynAstExt>
Clone into a fresh box — the object-safe stand-in for
Clone (whose
Self-returning signature cannot go through a vtable).Source§fn dyn_eq(&self, other: &dyn DynAstExt) -> bool
fn dyn_eq(&self, other: &dyn DynAstExt) -> bool
Structural equality against another erased node — the object-safe stand-in
for
PartialEq (whose &Self argument cannot go through a vtable). Equal
iff other holds the same concrete type and that type deems the values
equal; differently-typed nodes are never equal.