pub struct StoredConsentRecord {
pub entity_type: ConsentType,
pub state: ConsentState,
pub entity: String,
pub consented_at_ns: i64,
}Expand description
StoredConsentRecord holds a serialized ConsentRecord
Fields§
§entity_type: ConsentTypeEnum, ConsentType representing the type of consent (conversation_id inbox_id, etc..)
state: ConsentStateEnum, ConsentState representing the state of consent (allowed, denied, etc..)
entity: StringThe entity of what was consented (0x00 etc..)
consented_at_ns: i64Implementations§
Source§impl StoredConsentRecord
impl StoredConsentRecord
pub fn new( entity_type: ConsentType, state: ConsentState, entity: String, ) -> Self
Sourcepub fn stitch_dm_consent(
conn: &impl DbQuery,
group: &StoredGroup,
) -> Result<(), StorageError>
pub fn stitch_dm_consent( conn: &impl DbQuery, group: &StoredGroup, ) -> Result<(), StorageError>
This function will perform some logic to see if a new group should be auto-consented or auto-denied based on past consent.
Trait Implementations§
Source§impl Clone for StoredConsentRecord
impl Clone for StoredConsentRecord
Source§fn clone(&self) -> StoredConsentRecord
fn clone(&self) -> StoredConsentRecord
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for StoredConsentRecord
impl Debug for StoredConsentRecord
Source§impl<'de> Deserialize<'de> for StoredConsentRecord
impl<'de> Deserialize<'de> for StoredConsentRecord
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 From<StoredConsentRecord> for ConsentSave
impl From<StoredConsentRecord> for ConsentSave
Source§fn from(value: StoredConsentRecord) -> Self
fn from(value: StoredConsentRecord) -> Self
Converts to this type from the input type.
Source§impl<'insert> Insertable<table> for &'insert StoredConsentRecordwhere
&'insert ConsentType: AsExpression<<entity_type as Expression>::SqlType>,
&'insert ConsentState: AsExpression<<state as Expression>::SqlType>,
&'insert String: AsExpression<<entity as Expression>::SqlType>,
&'insert i64: AsExpression<<consented_at_ns as Expression>::SqlType>,
impl<'insert> Insertable<table> for &'insert StoredConsentRecordwhere
&'insert ConsentType: AsExpression<<entity_type as Expression>::SqlType>,
&'insert ConsentState: AsExpression<<state as Expression>::SqlType>,
&'insert String: AsExpression<<entity as Expression>::SqlType>,
&'insert i64: AsExpression<<consented_at_ns as Expression>::SqlType>,
Source§type Values = <(Option<Grouped<Eq<entity_type, <&'insert ConsentType as AsExpression<<entity_type as Expression>::SqlType>>::Expression>>>, Option<Grouped<Eq<state, <&'insert ConsentState as AsExpression<<state as Expression>::SqlType>>::Expression>>>, Option<Grouped<Eq<entity, <&'insert String as AsExpression<<entity as Expression>::SqlType>>::Expression>>>, Option<Grouped<Eq<consented_at_ns, <&'insert i64 as AsExpression<<consented_at_ns as Expression>::SqlType>>::Expression>>>) as Insertable<table>>::Values
type Values = <(Option<Grouped<Eq<entity_type, <&'insert ConsentType as AsExpression<<entity_type as Expression>::SqlType>>::Expression>>>, Option<Grouped<Eq<state, <&'insert ConsentState as AsExpression<<state as Expression>::SqlType>>::Expression>>>, Option<Grouped<Eq<entity, <&'insert String as AsExpression<<entity as Expression>::SqlType>>::Expression>>>, Option<Grouped<Eq<consented_at_ns, <&'insert i64 as AsExpression<<consented_at_ns as Expression>::SqlType>>::Expression>>>) as Insertable<table>>::Values
The
VALUES clause to insert these records Read moreSource§fn values(
self,
) -> <(Option<Eq<entity_type, &'insert ConsentType>>, Option<Eq<state, &'insert ConsentState>>, Option<Eq<entity, &'insert String>>, Option<Eq<consented_at_ns, &'insert i64>>) as Insertable<table>>::Values
fn values( self, ) -> <(Option<Eq<entity_type, &'insert ConsentType>>, Option<Eq<state, &'insert ConsentState>>, Option<Eq<entity, &'insert String>>, Option<Eq<consented_at_ns, &'insert i64>>) as Insertable<table>>::Values
Construct
Self::Values Read more§fn insert_into(self, table: T) -> InsertStatement<T, Self::Values>where
T: Table,
Self: Sized,
fn insert_into(self, table: T) -> InsertStatement<T, Self::Values>where
T: Table,
Self: Sized,
Insert
self into a given table. Read moreSource§impl Insertable<table> for StoredConsentRecordwhere
ConsentType: AsExpression<<entity_type as Expression>::SqlType>,
ConsentState: AsExpression<<state as Expression>::SqlType>,
String: AsExpression<<entity as Expression>::SqlType>,
i64: AsExpression<<consented_at_ns as Expression>::SqlType>,
impl Insertable<table> for StoredConsentRecordwhere
ConsentType: AsExpression<<entity_type as Expression>::SqlType>,
ConsentState: AsExpression<<state as Expression>::SqlType>,
String: AsExpression<<entity as Expression>::SqlType>,
i64: AsExpression<<consented_at_ns as Expression>::SqlType>,
Source§type Values = <(Option<Grouped<Eq<entity_type, <ConsentType as AsExpression<<entity_type as Expression>::SqlType>>::Expression>>>, Option<Grouped<Eq<state, <ConsentState as AsExpression<<state as Expression>::SqlType>>::Expression>>>, Option<Grouped<Eq<entity, <String as AsExpression<<entity as Expression>::SqlType>>::Expression>>>, Option<Grouped<Eq<consented_at_ns, <i64 as AsExpression<<consented_at_ns as Expression>::SqlType>>::Expression>>>) as Insertable<table>>::Values
type Values = <(Option<Grouped<Eq<entity_type, <ConsentType as AsExpression<<entity_type as Expression>::SqlType>>::Expression>>>, Option<Grouped<Eq<state, <ConsentState as AsExpression<<state as Expression>::SqlType>>::Expression>>>, Option<Grouped<Eq<entity, <String as AsExpression<<entity as Expression>::SqlType>>::Expression>>>, Option<Grouped<Eq<consented_at_ns, <i64 as AsExpression<<consented_at_ns as Expression>::SqlType>>::Expression>>>) as Insertable<table>>::Values
The
VALUES clause to insert these records Read moreSource§fn values(
self,
) -> <(Option<Eq<entity_type, ConsentType>>, Option<Eq<state, ConsentState>>, Option<Eq<entity, String>>, Option<Eq<consented_at_ns, i64>>) as Insertable<table>>::Values
fn values( self, ) -> <(Option<Eq<entity_type, ConsentType>>, Option<Eq<state, ConsentState>>, Option<Eq<entity, String>>, Option<Eq<consented_at_ns, i64>>) as Insertable<table>>::Values
Construct
Self::Values Read more§fn insert_into(self, table: T) -> InsertStatement<T, Self::Values>where
T: Table,
Self: Sized,
fn insert_into(self, table: T) -> InsertStatement<T, Self::Values>where
T: Table,
Self: Sized,
Insert
self into a given table. Read moreSource§impl PartialEq for StoredConsentRecord
impl PartialEq for StoredConsentRecord
Source§impl<__DB: Backend, __ST0, __ST1, __ST2, __ST3> Queryable<(__ST0, __ST1, __ST2, __ST3), __DB> for StoredConsentRecordwhere
(ConsentType, ConsentState, String, i64): FromStaticSqlRow<(__ST0, __ST1, __ST2, __ST3), __DB>,
impl<__DB: Backend, __ST0, __ST1, __ST2, __ST3> Queryable<(__ST0, __ST1, __ST2, __ST3), __DB> for StoredConsentRecordwhere
(ConsentType, ConsentState, String, i64): FromStaticSqlRow<(__ST0, __ST1, __ST2, __ST3), __DB>,
Source§type Row = (ConsentType, ConsentState, String, i64)
type Row = (ConsentType, ConsentState, String, i64)
The Rust type you’d like to map from. Read more
Source§fn build(row: (ConsentType, ConsentState, String, i64)) -> Result<Self>
fn build(row: (ConsentType, ConsentState, String, i64)) -> Result<Self>
Construct an instance of this type
Source§impl Serialize for StoredConsentRecord
impl Serialize for StoredConsentRecord
Source§impl<C> Store<C> for StoredConsentRecordwhere
C: ConnectionExt,
impl<C> Store<C> for StoredConsentRecordwhere
C: ConnectionExt,
Source§impl TryFrom<ConsentSave> for StoredConsentRecord
impl TryFrom<ConsentSave> for StoredConsentRecord
Source§type Error = ConversionError
type Error = ConversionError
The type returned in the event of a conversion error.
impl Eq for StoredConsentRecord
impl UndecoratedInsertRecord<table> for StoredConsentRecord
Auto Trait Implementations§
impl Freeze for StoredConsentRecord
impl RefUnwindSafe for StoredConsentRecord
impl Send for StoredConsentRecord
impl Sync for StoredConsentRecord
impl Unpin for StoredConsentRecord
impl UnsafeUnpin for StoredConsentRecord
impl UnwindSafe for StoredConsentRecord
Blanket Implementations§
§impl<T> AggregateExpressionMethods for T
impl<T> AggregateExpressionMethods for T
§fn aggregate_distinct(self) -> Self::Outputwhere
Self: DistinctDsl,
fn aggregate_distinct(self) -> Self::Outputwhere
Self: DistinctDsl,
DISTINCT modifier for aggregate functions Read more§fn aggregate_all(self) -> Self::Outputwhere
Self: AllDsl,
fn aggregate_all(self) -> Self::Outputwhere
Self: AllDsl,
ALL modifier for aggregate functions Read more§fn aggregate_filter<P>(self, f: P) -> Self::Outputwhere
P: AsExpression<Bool>,
Self: FilterDsl<<P as AsExpression<Bool>>::Expression>,
fn aggregate_filter<P>(self, f: P) -> Self::Outputwhere
P: AsExpression<Bool>,
Self: FilterDsl<<P as AsExpression<Bool>>::Expression>,
Add an aggregate function filter Read more
§fn aggregate_order<O>(self, o: O) -> Self::Outputwhere
Self: OrderAggregateDsl<O>,
fn aggregate_order<O>(self, o: O) -> Self::Outputwhere
Self: OrderAggregateDsl<O>,
Add an aggregate function order Read more
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> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Converts
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Converts
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Converts
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Converts
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> DowncastSend for T
impl<T> DowncastSend for T
§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<T> Identity for Twhere
T: ?Sized,
impl<T> Identity for Twhere
T: ?Sized,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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>
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 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>
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§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request§impl<T> IntoSql for T
impl<T> IntoSql for T
§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Applies the layer to a service and wraps it in [
Layered].§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§impl<T, ST, DB> StaticallySizedRow<ST, DB> for Twhere
ST: SqlTypeOrSelectable + TupleSize,
T: Queryable<ST, DB>,
DB: Backend,
impl<T, ST, DB> StaticallySizedRow<ST, DB> for Twhere
ST: SqlTypeOrSelectable + TupleSize,
T: Queryable<ST, DB>,
DB: Backend,
§const FIELD_COUNT: usize = <ST as crate::util::TupleSize>::SIZE
const FIELD_COUNT: usize = <ST as crate::util::TupleSize>::SIZE
The number of fields that this type will consume.
Source§impl<S, T> Upcast<T> for S
impl<S, T> Upcast<T> for S
§impl<T> WindowExpressionMethods for T
impl<T> WindowExpressionMethods for T
§fn over(self) -> Self::Outputwhere
Self: OverDsl,
fn over(self) -> Self::Outputwhere
Self: OverDsl,
Turn a function call into a window function call Read more
§fn window_filter<P>(self, f: P) -> Self::Outputwhere
P: AsExpression<Bool>,
Self: FilterDsl<<P as AsExpression<Bool>>::Expression>,
fn window_filter<P>(self, f: P) -> Self::Outputwhere
P: AsExpression<Bool>,
Self: FilterDsl<<P as AsExpression<Bool>>::Expression>,
Add a filter to the current window function Read more
§fn partition_by<E>(self, expr: E) -> Self::Outputwhere
Self: PartitionByDsl<E>,
fn partition_by<E>(self, expr: E) -> Self::Outputwhere
Self: PartitionByDsl<E>,
Add a partition clause to the current window function Read more
§fn window_order<E>(self, expr: E) -> Self::Outputwhere
Self: OrderWindowDsl<E>,
fn window_order<E>(self, expr: E) -> Self::Outputwhere
Self: OrderWindowDsl<E>,
Add a order clause to the current window function Read more