Skip to main content

call_ink_function_value

Function call_ink_function_value 

Source
pub fn call_ink_function_value<M: Send + Sync + 'static>(
    world: &mut World,
    entity: Entity,
    callee: &Value,
    args: &[Value],
) -> Result<Value, BrinkCallError>
Expand description

Synchronously invoke an ink function value (#fn(…) — a FnRef or Closure) on a flow entity from an exclusive (&mut World) context, returning its value — the host callback-invocation surface (T1c-3, docs/t1c-spec.md §6).

This is the call_ink_function sibling for the case where the host holds an opaque function-value token (obtained from a global, a returned value, or a bind_brink_query result) rather than a static function name. The host never dereferences the token’s env — invocation re-enters the VM (FlowInstance::begin_function_value_eval), running any world-access query bindings the callback triggers, and is journaled exactly like a by-name call. args supply the remaining (val-only) params after the value’s bound prefix.

The dispatch faults of docs/t1c-spec.md §3/§6 (non-function value, wrong arity, rehydration mismatch, cross-flow ref-#@local) surface as BrinkCallError::Runtime.

M is the story marker (use () for the default).

§Errors

See BrinkCallError.