pub struct ExternalBuiltin {
pub seq_name: String,
pub symbol: String,
pub effect: Option<Effect>,
}Expand description
Definition of an external builtin function
External builtins are functions provided by a runtime extension (like an actor system) that should be callable from Seq code.
§Type Safety (v2.0)
All external builtins must specify their stack effect for type checking. The compiler will error if an external builtin is registered without an effect.
Use ExternalBuiltin::with_effect to create builtins with explicit effects.
Fields§
§seq_name: StringThe name used in Seq code (e.g., “journal-append”)
symbol: StringThe symbol name for linking (e.g., “seq_actors_journal_append”)
Must contain only alphanumeric characters, underscores, and periods. This is validated at construction time to prevent LLVM IR injection.
effect: Option<Effect>Stack effect for type checking (required as of v2.0).
The type checker enforces this signature at all call sites.
The compiler will error if this is None.
Implementations§
Source§impl ExternalBuiltin
impl ExternalBuiltin
Sourcepub fn new(seq_name: impl Into<String>, symbol: impl Into<String>) -> Self
👎Deprecated since 2.0.0: Use with_effect instead - effects are now required
pub fn new(seq_name: impl Into<String>, symbol: impl Into<String>) -> Self
Create a new external builtin with just name and symbol (deprecated)
§Deprecated
As of v2.0, all external builtins must have explicit stack effects.
Use ExternalBuiltin::with_effect instead. Builtins created with
this method will cause a compiler error.
§Panics
Panics if the symbol contains invalid characters for LLVM IR. Valid symbols contain only alphanumeric characters, underscores, and periods.
Trait Implementations§
Source§impl Clone for ExternalBuiltin
impl Clone for ExternalBuiltin
Source§fn clone(&self) -> ExternalBuiltin
fn clone(&self) -> ExternalBuiltin
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more