pub struct Key<T> { /* private fields */ }
Expand description
A type that is suitable for keys in the database.
Internally it uses an Ulid
.
It is randomly generated and contains 80 bits of entropy.
The first 48 bits encode a timestamp such that the keys are ordered by time of insertion
Chance of collision is negligible - 4e-7
if a billion keys are generated in the same millisecond.
Implementations§
Source§impl<T: Table> Key<T>
impl<T: Table> Key<T>
pub fn from_untyped(key: Key) -> Self
pub fn new() -> Self
pub async fn fetch<C: GenericClient + Sync>( self, client: &C, ) -> Result<Option<T>, Error>
pub async fn delete<C: GenericClient + Sync>( self, client: &C, ) -> Result<u64, Error>
pub fn inner(&self) -> Ulid
pub fn timestamp(&self) -> NaiveDateTime
pub fn untyped(&self) -> Key
Trait Implementations§
Source§impl<T: Table> FromSql<'_> for Key<T>
impl<T: Table> FromSql<'_> for Key<T>
Source§fn from_sql(ty: &Type, raw: &[u8]) -> Result<Self, Box<dyn Error + Sync + Send>>
fn from_sql(ty: &Type, raw: &[u8]) -> Result<Self, Box<dyn Error + Sync + Send>>
Creates a new value of this type from a buffer of data of the specified
Postgres
Type
in its binary format. Read moreSource§fn accepts(ty: &Type) -> bool
fn accepts(ty: &Type) -> bool
Determines if a value of this type can be created from the specified
Postgres
Type
.Source§impl<T: Ord> Ord for Key<T>
impl<T: Ord> Ord for Key<T>
Source§impl<T: PartialOrd> PartialOrd for Key<T>
impl<T: PartialOrd> PartialOrd for Key<T>
Source§impl<T: Debug + Table> ToSql for Key<T>
impl<T: Debug + Table> ToSql for Key<T>
Source§fn to_sql(
&self,
ty: &Type,
out: &mut BytesMut,
) -> Result<IsNull, Box<dyn Error + Sync + Send>>where
Self: Sized,
fn to_sql(
&self,
ty: &Type,
out: &mut BytesMut,
) -> Result<IsNull, Box<dyn Error + Sync + Send>>where
Self: Sized,
Converts the value of
self
into the binary format of the specified
Postgres Type
, appending it to out
. Read moreSource§fn accepts(ty: &Type) -> boolwhere
Self: Sized,
fn accepts(ty: &Type) -> boolwhere
Self: Sized,
Determines if a value of this type can be converted to the specified
Postgres
Type
.Source§fn to_sql_checked(
&self,
ty: &Type,
out: &mut BytesMut,
) -> Result<IsNull, Box<dyn Error + Sync + Send>>
fn to_sql_checked( &self, ty: &Type, out: &mut BytesMut, ) -> Result<IsNull, Box<dyn Error + Sync + Send>>
An adaptor method used internally by Rust-Postgres. Read more
Source§fn encode_format(&self, _ty: &Type) -> Format
fn encode_format(&self, _ty: &Type) -> Format
Specify the encode format
impl<T: Table> Copy for Key<T>
impl<T: Eq> Eq for Key<T>
impl<T> StructuralPartialEq for Key<T>
Auto Trait Implementations§
impl<T> Freeze for Key<T>
impl<T> RefUnwindSafe for Key<T>where
T: RefUnwindSafe,
impl<T> Send for Key<T>where
T: Send,
impl<T> Sync for Key<T>where
T: Sync,
impl<T> Unpin for Key<T>where
T: Unpin,
impl<T> UnwindSafe for Key<T>where
T: UnwindSafe,
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> BorrowToSql for Twhere
T: ToSql,
impl<T> BorrowToSql for Twhere
T: ToSql,
Source§fn borrow_to_sql(&self) -> &dyn ToSql
fn borrow_to_sql(&self) -> &dyn ToSql
Returns a reference to
self
as a ToSql
trait object.