Struct swipl::functor::LazyFunctor

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

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

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

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

Implementations§

source§

impl LazyFunctor

source

pub const fn new(name: &'static str, arity: u16) -> Self

Create a new LazyFunctor.

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_functor(&self) -> Functor

Create a functor, or return an earlier created functor.

On first call, this will call swipl to create a functor. Subsequent calls will reuse the functor that was retrieved before.

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.