Struct mz_repr::adt::mz_acl_item::AclItem
source · pub struct AclItem {
pub grantee: Oid,
pub grantor: Oid,
pub acl_mode: AclMode,
}
Expand description
A list of privileges granted to a role.
This is primarily used for compatibility in PostgreSQL.
Fields§
§grantee: Oid
Role that this item grants privileges to.
grantor: Oid
Grantor of privileges.
acl_mode: AclMode
Privileges bit flag.
Implementations§
Trait Implementations§
source§impl Arbitrary for AclItem
impl Arbitrary for AclItem
§type Parameters = (<Oid as Arbitrary>::Parameters, <Oid as Arbitrary>::Parameters, <AclMode as Arbitrary>::Parameters)
type Parameters = (<Oid as Arbitrary>::Parameters, <Oid as Arbitrary>::Parameters, <AclMode as Arbitrary>::Parameters)
The type of parameters that
arbitrary_with
accepts for configuration
of the generated Strategy
. Parameters must implement Default
.§type Strategy = Map<(<Oid as Arbitrary>::Strategy, <Oid as Arbitrary>::Strategy, <AclMode as Arbitrary>::Strategy), fn(_: (Oid, Oid, AclMode)) -> AclItem>
type Strategy = Map<(<Oid as Arbitrary>::Strategy, <Oid as Arbitrary>::Strategy, <AclMode as Arbitrary>::Strategy), fn(_: (Oid, Oid, AclMode)) -> AclItem>
The type of
Strategy
used to generate values of type Self
.source§fn arbitrary_with(_top: Self::Parameters) -> Self::Strategy
fn arbitrary_with(_top: Self::Parameters) -> Self::Strategy
source§impl AsColumnType for AclItem
impl AsColumnType for AclItem
source§fn as_column_type() -> ColumnType
fn as_column_type() -> ColumnType
The SQL column type of this Rust type
source§impl Columnation for AclItem
impl Columnation for AclItem
§type InnerRegion = CopyRegion<AclItem>
type InnerRegion = CopyRegion<AclItem>
The type of region capable of absorbing allocations owned by
the
Self
type. Note: not allocations of Self
, but of the
things that it owns.source§impl<'a, E> DatumType<'a, E> for AclItem
impl<'a, E> DatumType<'a, E> for AclItem
source§impl<'de> Deserialize<'de> for AclItem
impl<'de> Deserialize<'de> for AclItem
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
source§impl FixedSizeCodec<AclItem> for PackedAclItem
impl FixedSizeCodec<AclItem> for PackedAclItem
source§fn from_bytes(slice: &[u8]) -> Result<Self, String>
fn from_bytes(slice: &[u8]) -> Result<Self, String>
Create an instance of
self
from a slice. Read moresource§fn from_value(value: AclItem) -> Self
fn from_value(value: AclItem) -> Self
Encode a type of
T
into this format.source§fn into_value(self) -> AclItem
fn into_value(self) -> AclItem
Decode an instance of
T
from this format.source§impl FromStr for AclItem
impl FromStr for AclItem
source§fn from_str(s: &str) -> Result<Self, Self::Err>
fn from_str(s: &str) -> Result<Self, Self::Err>
For the PostgreSQL implementation see:
- https://github.com/postgres/postgres/blob/9089287aa037fdecb5a52cec1926e5ae9569e9f9/src/backend/utils/adt/acl.c#L580-L609
- https://github.com/postgres/postgres/blob/9089287aa037fdecb5a52cec1926e5ae9569e9f9/src/backend/utils/adt/acl.c#L223-L390
- https://github.com/postgres/postgres/blob/9089287aa037fdecb5a52cec1926e5ae9569e9f9/src/backend/utils/adt/acl.c#L127-L187
PostgreSQL is able to look up OIDs in the catalog while parsing, so it accepts aclitems that contain role OIDs or role names. We have no way to access the catalog here, so we can only accept oids. Therefore our implementation is much simpler than PostgreSQL’s.
source§impl Ord for AclItem
impl Ord for AclItem
source§impl PartialOrd for AclItem
impl PartialOrd for AclItem
source§impl RustType<ProtoAclItem> for AclItem
impl RustType<ProtoAclItem> for AclItem
source§fn into_proto(&self) -> ProtoAclItem
fn into_proto(&self) -> ProtoAclItem
Convert a
Self
into a Proto
value.source§fn from_proto(proto: ProtoAclItem) -> Result<Self, TryFromProtoError>
fn from_proto(proto: ProtoAclItem) -> Result<Self, TryFromProtoError>
source§fn into_proto_owned(self) -> Proto
fn into_proto_owned(self) -> Proto
A zero clone version of
Self::into_proto
that types can
optionally implement, otherwise, the default implementation
delegates to Self::into_proto
.impl Copy for AclItem
impl Eq for AclItem
impl StructuralPartialEq for AclItem
Auto Trait Implementations§
impl Freeze for AclItem
impl RefUnwindSafe for AclItem
impl Send for AclItem
impl Sync for AclItem
impl Unpin for AclItem
impl UnwindSafe for AclItem
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,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)source§impl<T> CloneToUninit for Twhere
T: Copy,
impl<T> CloneToUninit for Twhere
T: Copy,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)source§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.source§impl<T> FutureExt for T
impl<T> FutureExt for T
source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T
in a tonic::Request
source§impl<T, U> OverrideFrom<Option<&T>> for Uwhere
U: OverrideFrom<T>,
impl<T, U> OverrideFrom<Option<&T>> for Uwhere
U: OverrideFrom<T>,
source§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<T> PreferredContainer for T
impl<T> PreferredContainer for T
source§impl<T> ProgressEventTimestamp for T
impl<T> ProgressEventTimestamp for T
source§impl<P, R> ProtoType<R> for Pwhere
R: RustType<P>,
impl<P, R> ProtoType<R> for Pwhere
R: RustType<P>,
source§fn into_rust(self) -> Result<R, TryFromProtoError>
fn into_rust(self) -> Result<R, TryFromProtoError>
See
RustType::from_proto
.source§fn from_rust(rust: &R) -> P
fn from_rust(rust: &R) -> P
See
RustType::into_proto
.source§impl<'a, S, T> Semigroup<&'a S> for Twhere
T: Semigroup<S>,
impl<'a, S, T> Semigroup<&'a S> for Twhere
T: Semigroup<S>,
source§fn plus_equals(&mut self, rhs: &&'a S)
fn plus_equals(&mut self, rhs: &&'a S)
The method of
std::ops::AddAssign
, for types that do not implement AddAssign
.