Skip to main content

NativeFn

Struct NativeFn 

Source
pub struct NativeFn {
    pub name: Arc<str>,
    pub diagnostic_id: NativeDiagnosticId,
    pub arity: Arity,
    pub func: NativeFnFunc,
    pub captures: Arc<[Value]>,
    pub blocking_func: Option<NativeFnFunc>,
}

Fields§

§name: Arc<str>§diagnostic_id: NativeDiagnosticId

Lazily assigned watchdog name id (Default::default() when building).

§arity: Arity§func: NativeFnFunc§captures: Arc<[Value]>

Managed values retained by the opaque callable closure.

§blocking_func: Option<NativeFnFunc>

Optional adapter that marshals owned inputs and offloads native work.

Implementations§

Source§

impl NativeFn

Source

pub fn new(name: impl Into<Arc<str>>, arity: Arity, func: NativeFnPtr) -> Self

Create from a bare function pointer (backwards-compatible).

Source

pub fn with_closure( name: impl Into<Arc<str>>, arity: Arity, func: impl Fn(&[Value]) -> ValueResult<Value> + 'static, ) -> Self

Create a Rust callable with no managed captures. For closures that retain Values, use with_captures so the collector can visit them.

Source

pub fn with_captures( name: impl Into<Arc<str>>, arity: Arity, captures: Vec<Value>, func: impl Fn(&[Value], &[Value]) -> ValueResult<Value> + 'static, ) -> Self

Create a callable with explicit managed captures for precise tracing. The callback and tracer share one immutable capture slice. Callers must not replace the public captures handle after construction.

Source

pub fn with_blocking( name: impl Into<Arc<str>>, arity: Arity, func: impl Fn(&[Value]) -> ValueResult<Value> + 'static, blocking_func: impl Fn(&[Value]) -> ValueResult<Value> + 'static, ) -> Self

Create a native function with a separate owned-work blocking adapter. The adapter must keep managed conversions on the caller’s isolate.

Source

pub fn call_blocking(&self, args: &[Value]) -> ValueResult<Value>

Call the blocking adapter. Reject unsupported functions before execution.

Trait Implementations§

Source§

impl Debug for NativeFn

Source§

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

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

impl Trace for NativeFn

Source§

fn trace(&self, visitor: &mut MarkVisitor)

Source§

fn gc_size_extra(&self) -> usize

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

Source§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

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