pub enum Procedure {
Rql {
id: ProcedureId,
namespace: NamespaceId,
name: String,
params: Vec<ProcedureParam>,
return_type: Option<TypeConstraint>,
body: String,
trigger: RqlTrigger,
},
Test {
id: ProcedureId,
namespace: NamespaceId,
name: String,
params: Vec<ProcedureParam>,
return_type: Option<TypeConstraint>,
body: String,
},
Native {
id: ProcedureId,
namespace: NamespaceId,
name: String,
params: Vec<ProcedureParam>,
return_type: Option<TypeConstraint>,
native_name: String,
},
Ffi {
id: ProcedureId,
namespace: NamespaceId,
name: String,
params: Vec<ProcedureParam>,
return_type: Option<TypeConstraint>,
native_name: String,
library_path: PathBuf,
entry_symbol: String,
},
Wasm {
id: ProcedureId,
namespace: NamespaceId,
name: String,
params: Vec<ProcedureParam>,
return_type: Option<TypeConstraint>,
native_name: String,
module_id: WasmModuleId,
},
}Variants§
Rql
User-defined RQL procedure. Persisted; transactional; addable/droppable via DDL.
Fields
§
id: ProcedureId§
namespace: NamespaceId§
params: Vec<ProcedureParam>§
return_type: Option<TypeConstraint>§
trigger: RqlTriggerTest
User-defined RQL test procedure. Persisted; only callable from test context.
Fields
§
id: ProcedureId§
namespace: NamespaceId§
params: Vec<ProcedureParam>§
return_type: Option<TypeConstraint>Native
Built-in Rust procedure registered into the runtime registry. Ephemeral.
Fields
§
id: ProcedureId§
namespace: NamespaceId§
params: Vec<ProcedureParam>§
return_type: Option<TypeConstraint>Ffi
Procedure loaded from an FFI shared library at boot. Ephemeral.
Fields
§
id: ProcedureId§
namespace: NamespaceId§
params: Vec<ProcedureParam>§
return_type: Option<TypeConstraint>Wasm
Procedure loaded from a WASM module at boot. Ephemeral.
Fields
§
id: ProcedureId§
namespace: NamespaceId§
params: Vec<ProcedureParam>§
return_type: Option<TypeConstraint>§
module_id: WasmModuleIdImplementations§
Source§impl Procedure
impl Procedure
pub fn id(&self) -> ProcedureId
pub fn namespace(&self) -> NamespaceId
pub fn name(&self) -> &str
pub fn params(&self) -> &[ProcedureParam]
pub fn return_type(&self) -> Option<&TypeConstraint>
pub fn kind(&self) -> ProcedureKind
Sourcepub fn is_persistent(&self) -> bool
pub fn is_persistent(&self) -> bool
True for variants that live in MVCC storage (Rql, Test). False for Native/Ffi/Wasm which are repopulated from the runtime registry on every boot.
Sourcepub fn event_variant(&self) -> Option<VariantRef>
pub fn event_variant(&self) -> Option<VariantRef>
Event variant this procedure is bound to, if any. Only Rql procedures with RqlTrigger::Event return Some.
Sourcepub fn native_name(&self) -> Option<&str>
pub fn native_name(&self) -> Option<&str>
Native registry lookup name for Native/Ffi/Wasm variants. None for Rql/Test.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Procedure
impl<'de> Deserialize<'de> for Procedure
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl StructuralPartialEq for Procedure
Auto Trait Implementations§
impl Freeze for Procedure
impl RefUnwindSafe for Procedure
impl Send for Procedure
impl Sync for Procedure
impl Unpin for Procedure
impl UnsafeUnpin for Procedure
impl UnwindSafe for Procedure
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more