Skip to main content

Extension

Trait Extension 

Source
pub trait Extension: Send + Sync {
    // Required methods
    fn namespace(&self) -> &str;
    fn handle_request<'a>(
        &'a self,
        ctx: ExtensionContext<'a>,
        payload: Vec<u8>,
    ) -> ExtensionFuture<'a, ExtensionResponse>;

    // Provided methods
    fn on_vm_created<'a>(
        &'a self,
        _ctx: ExtensionSnapshot,
    ) -> ExtensionFuture<'a, ()> { ... }
    fn is_blocking_request(&self, _payload: &[u8]) -> bool { ... }
    fn interrupt_blocking_request(
        &self,
        _blocking_payload: &[u8],
        _interrupt: ExtensionInterruptRequest<'_>,
    ) -> Option<ExtensionInterruptResponse> { ... }
    fn on_dispose<'a>(&'a self) -> ExtensionFuture<'a, ()> { ... }
}

Required Methods§

Source

fn namespace(&self) -> &str

Source

fn handle_request<'a>( &'a self, ctx: ExtensionContext<'a>, payload: Vec<u8>, ) -> ExtensionFuture<'a, ExtensionResponse>

Provided Methods§

Source

fn on_vm_created<'a>( &'a self, _ctx: ExtensionSnapshot, ) -> ExtensionFuture<'a, ()>

Source

fn is_blocking_request(&self, _payload: &[u8]) -> bool

Source

fn interrupt_blocking_request( &self, _blocking_payload: &[u8], _interrupt: ExtensionInterruptRequest<'_>, ) -> Option<ExtensionInterruptResponse>

Source

fn on_dispose<'a>(&'a self) -> ExtensionFuture<'a, ()>

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§