Skip to main content

TypedTerm

Enum TypedTerm 

Source
pub enum TypedTerm<'id> {
    Atom(Atom),
    Bitstring(Bitstring<'id>),
    Float(Float<'id>),
    Fun(Fun<'id>),
    Integer(Integer<'id>),
    List(List<'id>),
    Map(Map<'id>),
    Pid(Pid<'id>),
    Port(Port<'id>),
    Reference(Reference<'id>),
    Tuple(Tuple<'id>),
}
Expand description

Typed enum produced by AnyTerm::resolve. One enif_term_type call has been made; the data is still on the BEAM heap.

Mirrors BEAM’s ErlNifTermType: byte-aligned binaries and sub-byte bitstrings share the Bitstring variant (BEAM treats every binary as a bitstring). Refine with Bitstring::to_binary.

Variants§

§

Atom(Atom)

An atom.

§

Bitstring(Bitstring<'id>)

A binary or sub-byte bitstring (enif_term_type reports both as Bitstring). Refine to a byte-aligned Binary with Bitstring::to_binary.

§

Float(Float<'id>)

A float.

§

Fun(Fun<'id>)

A fun (closure or &module:function/arity).

§

Integer(Integer<'id>)

An integer (fixnum or bignum).

§

List(List<'id>)

A list (proper or improper; the empty list [] is also a list).

§

Map(Map<'id>)

A map.

§

Pid(Pid<'id>)

A pid (local or external).

§

Port(Port<'id>)

A port (local or external).

§

Reference(Reference<'id>)

A reference.

§

Tuple(Tuple<'id>)

A tuple.

Trait Implementations§

Source§

impl<'id> Clone for TypedTerm<'id>

Source§

fn clone(&self) -> TypedTerm<'id>

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl<'id> Copy for TypedTerm<'id>

Source§

impl<'id> Decoder<'id> for TypedTerm<'id>

Resolves the term to its TypedTerm variant (one enif_term_type call). A type code this otter build does not recognize — a term type from a newer OTP — is UnknownTermType.

Source§

fn decode(term: AnyTerm<'id>, env: impl Env<'id>) -> Result<Self, CodecError>

Source§

impl<'id> Encoder<'id> for TypedTerm<'id>

Encodes the already-resolved term by rewrapping its word. Never fails.

Source§

fn encode(&self, env: impl Env<'id>) -> Result<AnyTerm<'id>, CodecError>

Source§

impl Eq for TypedTerm<'_>

Source§

impl<'id> From<Atom> for TypedTerm<'id>

Source§

fn from(v: Atom) -> Self

Converts to this type from the input type.
Source§

impl<'id> From<Binary<'id>> for TypedTerm<'id>

Source§

fn from(v: Binary<'id>) -> Self

A binary is a byte-aligned bitstring, so it lands in the Bitstring variant.

Source§

impl<'id> From<Bitstring<'id>> for TypedTerm<'id>

Source§

fn from(v: Bitstring<'id>) -> Self

Converts to this type from the input type.
Source§

impl<'id> From<Float<'id>> for TypedTerm<'id>

Source§

fn from(v: Float<'id>) -> Self

Converts to this type from the input type.
Source§

impl<'id> From<Fun<'id>> for TypedTerm<'id>

Source§

fn from(v: Fun<'id>) -> Self

Converts to this type from the input type.
Source§

impl<'id> From<Integer<'id>> for TypedTerm<'id>

Source§

fn from(v: Integer<'id>) -> Self

Converts to this type from the input type.
Source§

impl<'id> From<List<'id>> for TypedTerm<'id>

Source§

fn from(v: List<'id>) -> Self

Converts to this type from the input type.
Source§

impl<'id> From<Map<'id>> for TypedTerm<'id>

Source§

fn from(v: Map<'id>) -> Self

Converts to this type from the input type.
Source§

impl<'id> From<Pid<'id>> for TypedTerm<'id>

Source§

fn from(v: Pid<'id>) -> Self

Converts to this type from the input type.
Source§

impl<'id> From<Port<'id>> for TypedTerm<'id>

Source§

fn from(v: Port<'id>) -> Self

Converts to this type from the input type.
Source§

impl<'id> From<Reference<'id>> for TypedTerm<'id>

Source§

fn from(v: Reference<'id>) -> Self

Converts to this type from the input type.
Source§

impl<'id> From<Tuple<'id>> for TypedTerm<'id>

Source§

fn from(v: Tuple<'id>) -> Self

Converts to this type from the input type.
Source§

impl Ord for TypedTerm<'_>

Erlang term order (enif_compare) — the standard cross-type ordering number < atom < reference < fun < port < pid < tuple < map < nil < list < bitstring, not a Rust-derived ordering.

Source§

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

This method returns an Ordering between self and other. Read more
1.21.0 (const: unstable) · Source§

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

Compares and returns the maximum of two values. Read more
1.21.0 (const: unstable) · Source§

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

Compares and returns the minimum of two values. Read more
1.50.0 (const: unstable) · Source§

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

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

impl PartialEq for TypedTerm<'_>

Term identity (enif_is_identical) — the BEAM’s =:=, not Rust structural equality. Ignores the variant tag and compares the underlying terms.

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · 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 TypedTerm<'_>

Source§

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

This method returns an ordering between self and other values if one exists. Read more
1.0.0 (const: unstable) · 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 (const: unstable) · 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 (const: unstable) · 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 (const: unstable) · 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<'id> Term<'id> for TypedTerm<'id>

Source§

fn raw_term(self) -> Term

Extract the underlying machine word, discarding the variant tag.

Source§

fn copy_to<'dst>(self, env: impl Env<'dst>) -> AnyTerm<'dst>
where Self: Sized,

Copy this term into another environment (enif_make_copy), producing a term branded to the destination. The general cross-env copy — distinct from same-brand Encoder (which wraps for free) and from OwnedEnvArena copy_out (the arena exit).

Auto Trait Implementations§

§

impl<'id> !Send for TypedTerm<'id>

§

impl<'id> !Sync for TypedTerm<'id>

§

impl<'id> Freeze for TypedTerm<'id>

§

impl<'id> RefUnwindSafe for TypedTerm<'id>

§

impl<'id> Unpin for TypedTerm<'id>

§

impl<'id> UnsafeUnpin for TypedTerm<'id>

§

impl<'id> UnwindSafe for TypedTerm<'id>

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<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<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, 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.