Struct swipl::atom::LazyAtom

source ·
pub struct LazyAtom { /* private fields */ }
Expand description

A struct which provides a way to delay and cache atom creation.

This struct wraps a static string and uses it to construct a swipl atom on the first invocation of as_atom. Subsequent invocations will reuse the earlier constructed atom.

The purpose of this struct is to back the implementation of the atom! macro, but it’s also usable on its own.

Implementations§

source§

impl LazyAtom

source

pub const fn new(s: &'static str) -> Self

Create a new LazyAtom.

This constructor is const, as all it does is set up the struct. No actual calls into SWI-Prolog happen at this stage.

source

pub fn as_atom_t(&self) -> atom_t

Trait Implementations§

source§

impl AsAtom for LazyAtom

source§

fn as_atom(&self) -> Atom

Turn the borrowed object into an Atom. Read more
source§

fn as_atom_ptr(&self) -> (atom_t, Option<Atom>)

Turn the borrowed object into an atom_t, and returns an allocation which will keep this atom_t valid as long as it is not dropped. Read more

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<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, U> TryFrom<U> for T
where U: Into<T>,

§

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

§

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.