Skip to main content

Boolean

Struct Boolean 

Source
pub struct Boolean;
Expand description

Inline schema that stores boolean flags as either all-zero or all-one bit patterns.

Storing false as 0x00 and true as 0xFF in every byte makes it trivial to distinguish the two cases while leaving room for future SIMD optimisations when scanning large collections of flags.

Trait Implementations§

Source§

impl Encodes<&bool> for Boolean

Source§

type Output = Inline<Boolean>

The concrete form this source produces when encoded for this schema. Inline<Self> for inline encodings, Blob<Self> for blob encodings, or Inline<Handle<Self>> for the precomputed-handle case where Self: BlobEncoding.
Source§

fn encode(source: &bool) -> Inline<Boolean>

Run the encoding.
Source§

impl Encodes<bool> for Boolean

Source§

type Output = Inline<Boolean>

The concrete form this source produces when encoded for this schema. Inline<Self> for inline encodings, Blob<Self> for blob encodings, or Inline<Handle<Self>> for the precomputed-handle case where Self: BlobEncoding.
Source§

fn encode(source: bool) -> Inline<Boolean>

Run the encoding.
Source§

impl InlineEncoding for Boolean

Source§

type ValidationError = InvalidBoolean

The error type returned by validate. Use () or Infallible when every bit pattern is valid.
Source§

type Encoding = Boolean

The trait parameter to dispatch via for entity!{} field conversion. For inline schemas (32-byte data lives in the trible), set Encoding = Self — sources convert via IntoEncoded<Self> { Output = Inline<Self> }. For Handle<T>, set Encoding = T — sources convert via IntoEncoded<T> { Output = Blob<T> }. The BlobEncoding T sitting directly at trait position 0 is what lets downstream impl IntoEncoded<MyBlob> for MyType without bumping into the orphan rule.
Source§

fn validate(value: Inline<Self>) -> Result<Inline<Self>, Self::ValidationError>

Check if the given value conforms to this schema.
Source§

fn inline_from<T: IntoInline<Self>>(t: T) -> Inline<Self>

Create a new value from a concrete Rust type via IntoInline. Panics if the underlying conversion panics.
Source§

fn inline_try_from<T: TryToInline<Self>>( t: T, ) -> Result<Inline<Self>, <T as TryToInline<Self>>::Error>

Create a new value from a concrete Rust type via TryToInline. Returns an error if the conversion fails.
Source§

fn to_encoded(form: Inline<Self>) -> Encoded<Self>

Lift an already-encoded Inline<Self> into the Encoded sum entity!{} consumes — yields Encoded::Inline(form), no side-blob. Read more
Source§

impl MetaDescribe for Boolean

Source§

fn describe() -> Fragment

Produces a Fragment describing this schema type.
Source§

fn id() -> Id

Returns the id of this type. Default: derive from Self::describe().root(). Impls choose whether the id is explicit (an entity!{ &id_hex @ … } form inside describe) or derived (no @, intrinsic id from the facts) — either way the default reads the root the fragment carries. Read more
Source§

impl<'a> TryFromInline<'a, Boolean> for bool

Source§

type Error = InvalidBoolean

The error type returned when the conversion fails.
Source§

fn try_from_inline(v: &'a Inline<Boolean>) -> Result<Self, Self::Error>

Convert the Inline with a specific schema type to the Rust type.
Source§

impl TryToInline<Boolean> for &bool

Source§

type Error = Infallible

The error type returned when the conversion fails.
Source§

fn try_to_inline(self) -> Result<Inline<Boolean>, Self::Error>

Convert the Rust type to a Inline with a specific schema type.
Source§

impl TryToInline<Boolean> for bool

Source§

type Error = Infallible

The error type returned when the conversion fails.
Source§

fn try_to_inline(self) -> Result<Inline<Boolean>, Self::Error>

Convert the Rust type to a Inline with a specific schema type.

Auto Trait Implementations§

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<S> Encodes<&Inline<S>> for S
where S: InlineEncoding,

Source§

type Output = Inline<S>

The concrete form this source produces when encoded for this schema. Inline<Self> for inline encodings, Blob<Self> for blob encodings, or Inline<Handle<Self>> for the precomputed-handle case where Self: BlobEncoding.
Source§

fn encode(source: &Inline<S>) -> Inline<S>

Run the encoding.
Source§

impl<S> Encodes<Inline<S>> for S
where S: InlineEncoding,

Source§

type Output = Inline<S>

The concrete form this source produces when encoded for this schema. Inline<Self> for inline encodings, Blob<Self> for blob encodings, or Inline<Handle<Self>> for the precomputed-handle case where Self: BlobEncoding.
Source§

fn encode(source: Inline<S>) -> Inline<S>

Run the encoding.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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<S, T> IntoBlob<S> for T
where S: BlobEncoding, T: IntoEncoded<S, Output = Blob<S>>,

Source§

fn to_blob(self) -> Blob<S>
where Self: Sized,

Convert directly to Blob<S>.
Source§

impl<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
Source§

impl<S, T> IntoEncoded<S> for T
where S: Encodes<T>,

Source§

type Output = <S as Encodes<T>>::Output

The concrete form this source produces.
Source§

fn into_encoded(self) -> <T as IntoEncoded<S>>::Output

Run the conversion.
Source§

impl<S, T> IntoInline<S> for T
where S: InlineEncoding, T: IntoEncoded<S, Output = Inline<S>>,

Source§

fn to_inline(self) -> Inline<S>
where Self: Sized,

Convert directly to Inline<S>.
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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, 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