pub struct TSIDDatabaseID<Resource: TSIDResource> { /* private fields */ }Expand description
Represents a prefixed, type-safe, resource-specific ID in your database.
The resource is defined by Resource: when deserializing, that resource must be matched when
reading the prefix. When serializing, that resource will be used to create the prefix.
Internally, this stores a TSID, which is actually a u64. In your database, you should
probably store this u64 instead of the base32-encoded prefixed string. The numbers are
time-ordered so you can sort your database with great performance.
Implementations§
Source§impl<Resource: TSIDResource> TSIDDatabaseID<Resource>
impl<Resource: TSIDResource> TSIDDatabaseID<Resource>
Sourcepub fn from_raw_number(number: u64) -> Self
pub fn from_raw_number(number: u64) -> Self
Parse a number (e.g. from your database) into a TSID. As long as it fits into a u64, it
will be a valid ID, so this can’t error.
pub fn from_integer(number: i64) -> Self
Sourcepub fn to_raw_number(&self) -> u64
pub fn to_raw_number(&self) -> u64
Returns the u64 value of the TSID stored internally. Use this to get a value you can
store in your database.
pub fn into_unknown(&self) -> TSIDDatabaseID<IDUnknown>
Trait Implementations§
Source§impl<Resource: Clone + TSIDResource> Clone for TSIDDatabaseID<Resource>
impl<Resource: Clone + TSIDResource> Clone for TSIDDatabaseID<Resource>
Source§fn clone(&self) -> TSIDDatabaseID<Resource>
fn clone(&self) -> TSIDDatabaseID<Resource>
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl<Resource: Debug + TSIDResource> Debug for TSIDDatabaseID<Resource>
impl<Resource: Debug + TSIDResource> Debug for TSIDDatabaseID<Resource>
Source§impl<Resource: TSIDResource> Deref for TSIDDatabaseID<Resource>
impl<Resource: TSIDResource> Deref for TSIDDatabaseID<Resource>
Source§impl<'de, Resource: TSIDResource> Deserialize<'de> for TSIDDatabaseID<Resource>
impl<'de, Resource: TSIDResource> Deserialize<'de> for TSIDDatabaseID<Resource>
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>,
Source§impl<Resource: TSIDResource> Display for TSIDDatabaseID<Resource>
impl<Resource: TSIDResource> Display for TSIDDatabaseID<Resource>
Source§impl<Resource: TSIDResource> From<TSID> for TSIDDatabaseID<Resource>
impl<Resource: TSIDResource> From<TSID> for TSIDDatabaseID<Resource>
Source§impl<Resource: TSIDResource> FromStr for TSIDDatabaseID<Resource>
impl<Resource: TSIDResource> FromStr for TSIDDatabaseID<Resource>
Source§fn from_str(v: &str) -> Result<TSIDDatabaseID<Resource>, Error>
fn from_str(v: &str) -> Result<TSIDDatabaseID<Resource>, Error>
Attempts to parse a string into a TSIDDatabaseID matching the prefix of the specified
resource. If the string does not contain a prefix, or it contains the wrong one, an error
will be returned instead.
If the resource does not require a prefix, any string is accepted, as long as it is a valid base32-encoded TSID.