Qtid

Struct Qtid 

Source
pub struct Qtid(/* private fields */);
Expand description

Quadruple length Triplet ID.

§Examples

// Generate random value.
let random = Qtid::random();

assert_ne!(random, Qtid::NIL);

// Parse from string.
let from_str: Qtid = "kmn-pqr-stv-wxy".parse()?;

// Parse from integer.
let from_int: Qtid = 707829019477668798.try_into()?;

assert_eq!(from_str, from_int);

Implementations§

Source§

impl Qtid

Source

pub fn random() -> Self

Available on crate feature rand only.

Generate a new random Qtid.

This method generate a cryptgraphicaly random ID. The generated ID is guaranteed to not be the NIL value.

§Examples
let id = Qtid::random();
assert_ne!(id, Qtid::NIL);
Source§

impl Qtid

Source

pub const BITS: u32 = 60u32

The size of the integer type in bits. This is not equal actually stored size.

Source

pub const CAPACITY: u64 = 1_152_921_504_606_846_976u64

The capacity value of this triplet id type

#Examples

assert_eq!(Qtid::MAX, Qtid::CAPACITY -1);
Source

pub const NIL: Self

The smallest value that can be represented by this triplet id type.

§Examples
assert_eq!(Qtid::NIL, "000-000-000-000".parse::<Qtid>()?);
assert_eq!(Qtid::NIL, Qtid::try_from(0)?);
Source

pub const MAX: Self

The largest value that can be represent by this triplet id type.

§Examples
assert_eq!(Qtid::MAX, "zzz-zzz-zzz-zzz".parse::<Qtid>()?);
assert_eq!(Qtid::MAX, Qtid::try_from(1152921504606846975)?);
Source

pub fn is_nil(self) -> bool

Test if the triplet id is nil.

§Examples
assert!("000-000-000-000".parse::<Qtid>()?.is_nil());
Source

pub fn is_max(self) -> bool

Test if the triplet id is max.

§Examples
assert!("zzz-zzz-zzz-zzz".parse::<Qtid>()?.is_max());
Source

pub fn from_int_lossy(int: u64) -> Self

Convert from uint. If the value is equal Self::Capacity or more, the higher bits will be lost.

§Examples
assert!(Qtid::from_int_lossy(Qtid::CAPACITY - 1).is_max());
assert!(Qtid::from_int_lossy(Qtid::CAPACITY).is_nil());

Trait Implementations§

Source§

impl<'a> Arbitrary<'a> for Qtid

Available on crate feature arbitrary only.
Source§

fn arbitrary(u: &mut Unstructured<'a>) -> Result<Self>

Generate an arbitrary value of Self from the given unstructured data. Read more
Source§

fn arbitrary_take_rest(u: Unstructured<'a>) -> Result<Self, Error>

Generate an arbitrary value of Self from the entirety of the given unstructured data. Read more
Source§

fn size_hint(depth: usize) -> (usize, Option<usize>)

Get a size hint for how many bytes out of an Unstructured this type needs to construct itself. Read more
Source§

fn try_size_hint( depth: usize, ) -> Result<(usize, Option<usize>), MaxRecursionReached>

Get a size hint for how many bytes out of an Unstructured this type needs to construct itself. Read more
Source§

impl Clone for Qtid

Source§

fn clone(&self) -> Qtid

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Qtid

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for Qtid

Available on crate feature serde only.
Source§

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 Display for Qtid

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Distribution<Qtid> for StandardUniform

Available on crate feature rand only.
Source§

fn sample<R: Rng + ?Sized>(&self, rng: &mut R) -> Qtid

Generate a random value of T, using rng as the source of randomness.
Source§

fn sample_iter<R>(self, rng: R) -> Iter<Self, R, T>
where R: Rng, Self: Sized,

Create an iterator that generates random values of T, using rng as the source of randomness. Read more
Source§

fn map<F, S>(self, func: F) -> Map<Self, F, T, S>
where F: Fn(T) -> S, Self: Sized,

Map sampled values to type S Read more
Source§

impl From<(Triplet, Triplet, Triplet, Triplet)> for Qtid

Source§

fn from(value: (Triplet, Triplet, Triplet, Triplet)) -> Self

Converts to this type from the input type.
Source§

impl From<Qtid> for (Stid, Stid, Stid, Stid)

Source§

fn from(value: Qtid) -> Self

Converts to this type from the input type.
Source§

impl From<Qtid> for Qtid

Available on crate feature prost only.
Source§

fn from(value: Qtid) -> Self

Converts to this type from the input type.
Source§

impl From<Qtid> for Value

Available on crate feature sea-orm only.
Source§

fn from(value: Qtid) -> Self

Converts to this type from the input type.
Source§

impl From<Qtid> for u64

Source§

fn from(value: Qtid) -> Self

Converts to this type from the input type.
Source§

impl FromSql for Qtid

Available on crate feature rusqlite only.
Source§

fn column_result(value: ValueRef<'_>) -> FromSqlResult<Self>

Converts SQLite value into Rust value.
Source§

impl FromStr for Qtid

Source§

type Err = Error

The associated error which can be returned from parsing.
Source§

fn from_str(s: &str) -> Result<Self, Self::Err>

Parses a string s to return a value of this type. Read more
Source§

impl Hash for Qtid

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl Nullable for Qtid

Available on crate feature sea-orm only.
Source§

impl Ord for Qtid

Source§

fn cmp(&self, other: &Qtid) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · Source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · Source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · Source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized,

Restrict a value to a certain interval. Read more
Source§

impl PartialEq<String> for Qtid

Available on crate feature std only.
Source§

fn eq(&self, other: &String) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl PartialEq<u64> for Qtid

Source§

fn eq(&self, other: &u64) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl PartialEq for Qtid

Source§

fn eq(&self, other: &Qtid) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl PartialOrd for Qtid

Source§

fn partial_cmp(&self, other: &Qtid) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · Source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · Source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · Source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · Source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl Serialize for Qtid

Available on crate feature serde only.
Source§

fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl ToSql for Qtid

Available on crate feature rusqlite only.
Source§

fn to_sql(&self) -> Result<ToSqlOutput<'_>>

Converts Rust value to SQLite value
Source§

impl TryFrom<Qtid> for Qtid

Available on crate feature prost only.
Source§

type Error = Error

The type returned in the event of a conversion error.
Source§

fn try_from(value: Qtid) -> Result<Self, Self::Error>

Performs the conversion.
Source§

impl TryFrom<u64> for Qtid

Source§

type Error = Error

The type returned in the event of a conversion error.
Source§

fn try_from(value: u64) -> Result<Self, Self::Error>

Performs the conversion.
Source§

impl TryGetable for Qtid

Available on crate feature sea-orm only.
Source§

fn try_get_by<I: ColIdx>( res: &QueryResult, index: I, ) -> Result<Self, TryGetError>

Get a value from the query result with an ColIdx
Source§

fn try_get(res: &QueryResult, pre: &str, col: &str) -> Result<Self, TryGetError>

Get a value from the query result with prefixed column name
Source§

fn try_get_by_index( res: &QueryResult, index: usize, ) -> Result<Self, TryGetError>

Get a value from the query result based on the order in the select expressions
Source§

impl ValueType for Qtid

Available on crate feature sea-orm only.
Source§

impl Copy for Qtid

Source§

impl Eq for Qtid

Source§

impl StructuralPartialEq for Qtid

Auto Trait Implementations§

§

impl Freeze for Qtid

§

impl RefUnwindSafe for Qtid

§

impl Send for Qtid

§

impl Sync for Qtid

§

impl Unpin for Qtid

§

impl UnwindSafe for Qtid

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<T> ExprTrait for T
where T: Into<SimpleExpr>,

Source§

fn as_enum<N>(self, type_name: N) -> SimpleExpr
where N: IntoIden,

Express a AS enum expression. Read more
Source§

fn binary<O, R>(self, op: O, right: R) -> SimpleExpr
where O: Into<BinOper>, R: Into<SimpleExpr>,

Create any binary operation Read more
Source§

fn cast_as<N>(self, type_name: N) -> SimpleExpr
where N: IntoIden,

Express a CAST AS expression. Read more
Source§

fn unary(self, op: UnOper) -> SimpleExpr

Apply any unary operator to the expression. Read more
Source§

fn add<R>(self, right: R) -> SimpleExpr
where R: Into<SimpleExpr>,

Express an arithmetic addition operation. Read more
Source§

fn and<R>(self, right: R) -> SimpleExpr
where R: Into<SimpleExpr>,

Source§

fn between<A, B>(self, a: A, b: B) -> SimpleExpr
where A: Into<SimpleExpr>, B: Into<SimpleExpr>,

Express a BETWEEN expression. Read more
Source§

fn div<R>(self, right: R) -> SimpleExpr
where R: Into<SimpleExpr>,

Express an arithmetic division operation. Read more
Source§

fn eq<R>(self, right: R) -> SimpleExpr
where R: Into<SimpleExpr>,

Express an equal (=) expression. Read more
Source§

fn equals<C>(self, col: C) -> SimpleExpr
where C: IntoColumnRef,

Express a equal expression between two table columns, you will mainly use this to relate identical value between two table columns. Read more
Source§

fn gt<R>(self, right: R) -> SimpleExpr
where R: Into<SimpleExpr>,

Express a greater than (>) expression. Read more
Source§

fn gte<R>(self, right: R) -> SimpleExpr
where R: Into<SimpleExpr>,

Express a greater than or equal (>=) expression. Read more
Source§

fn in_subquery(self, sel: SelectStatement) -> SimpleExpr

Express a IN sub-query expression. Read more
Source§

fn in_tuples<V, I>(self, v: I) -> SimpleExpr
where V: IntoValueTuple, I: IntoIterator<Item = V>,

Express a IN sub expression. Read more
Source§

fn is<R>(self, right: R) -> SimpleExpr
where R: Into<SimpleExpr>,

Express a IS expression. Read more
Source§

fn is_in<V, I>(self, v: I) -> SimpleExpr
where V: Into<SimpleExpr>, I: IntoIterator<Item = V>,

Express a IN expression. Read more
Source§

fn is_not<R>(self, right: R) -> SimpleExpr
where R: Into<SimpleExpr>,

Express a IS NOT expression. Read more
Source§

fn is_not_in<V, I>(self, v: I) -> SimpleExpr
where V: Into<SimpleExpr>, I: IntoIterator<Item = V>,

Express a NOT IN expression. Read more
Source§

fn is_not_null(self) -> SimpleExpr

Express a IS NOT NULL expression. Read more
Source§

fn is_null(self) -> SimpleExpr

Express a IS NULL expression. Read more
Source§

fn left_shift<R>(self, right: R) -> SimpleExpr
where R: Into<SimpleExpr>,

Express a bitwise left shift. Read more
Source§

fn like<L>(self, like: L) -> SimpleExpr
where L: IntoLikeExpr,

Express a LIKE expression. Read more
Source§

fn lt<R>(self, right: R) -> SimpleExpr
where R: Into<SimpleExpr>,

Express a less than (<) expression. Read more
Source§

fn lte<R>(self, right: R) -> SimpleExpr
where R: Into<SimpleExpr>,

Express a less than or equal (<=) expression. Read more
Source§

fn modulo<R>(self, right: R) -> SimpleExpr
where R: Into<SimpleExpr>,

Express an arithmetic modulo operation. Read more
Source§

fn mul<R>(self, right: R) -> SimpleExpr
where R: Into<SimpleExpr>,

Express an arithmetic multiplication operation. Read more
Source§

fn ne<R>(self, right: R) -> SimpleExpr
where R: Into<SimpleExpr>,

Express a not equal (<>) expression. Read more
Source§

fn not(self) -> SimpleExpr

Negates an expression with NOT. Read more
Source§

fn not_between<A, B>(self, a: A, b: B) -> SimpleExpr
where A: Into<SimpleExpr>, B: Into<SimpleExpr>,

Express a NOT BETWEEN expression. Read more
Source§

fn not_equals<C>(self, col: C) -> SimpleExpr
where C: IntoColumnRef,

Express a not equal expression between two table columns, you will mainly use this to relate identical value between two table columns. Read more
Source§

fn not_in_subquery(self, sel: SelectStatement) -> SimpleExpr

Express a NOT IN sub-query expression. Read more
Source§

fn not_like<L>(self, like: L) -> SimpleExpr
where L: IntoLikeExpr,

Express a NOT LIKE expression. Read more
Source§

fn or<R>(self, right: R) -> SimpleExpr
where R: Into<SimpleExpr>,

Express a logical OR operation. Read more
Source§

fn right_shift<R>(self, right: R) -> SimpleExpr
where R: Into<SimpleExpr>,

Express a bitwise right shift. Read more
Source§

fn sub<R>(self, right: R) -> SimpleExpr
where R: Into<SimpleExpr>,

Express an arithmetic subtraction operation. Read more
Source§

fn bit_and<R>(self, right: R) -> SimpleExpr
where R: Into<SimpleExpr>,

Express a bitwise AND operation. Read more
Source§

fn bit_or<R>(self, right: R) -> SimpleExpr
where R: Into<SimpleExpr>,

Express a bitwise OR operation. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<V> FromValueTuple for V
where V: Into<Value> + ValueType,

Source§

fn from_value_tuple<I>(i: I) -> V
where I: IntoValueTuple,

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<V> IntoValueTuple for V
where V: Into<Value>,

Source§

impl<V> PrimaryKeyArity for V
where V: TryGetable,

Source§

const ARITY: usize = 1usize

Arity of the Primary Key
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T> TryGetableMany for T
where T: TryGetable,

Source§

fn try_get_many( res: &QueryResult, pre: &str, cols: &[String], ) -> Result<T, TryGetError>

Get a tuple value from the query result with prefixed column name
Source§

fn try_get_many_by_index(res: &QueryResult) -> Result<T, TryGetError>

Get a tuple value from the query result based on the order in the select expressions
Source§

fn find_by_statement<C>( stmt: Statement, ) -> SelectorRaw<SelectGetableValue<Self, C>>

Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> ErasedDestructor for T
where T: 'static,