pub struct WasmEngine { /* private fields */ }Expand description
A WASM checker plugin loaded via Extism.
The plugin must export a check function that accepts a JSON string
{"text": "...", "language_id": "..."} and returns a JSON array of
diagnostics matching the ExternalDiagnostic schema.
Implementations§
Source§impl WasmEngine
impl WasmEngine
Sourcepub fn new(
name: String,
wasm_path: PathBuf,
extensions: Vec<String>,
languages: Vec<String>,
) -> Result<Self>
pub fn new( name: String, wasm_path: PathBuf, extensions: Vec<String>, languages: Vec<String>, ) -> Result<Self>
Create a new WASM engine from a .wasm file path.
Sourcepub fn handles_extension(&self, extension: Option<&str>) -> bool
pub fn handles_extension(&self, extension: Option<&str>) -> bool
Whether this plugin parses the markup of the document being checked.
Sourcepub fn from_bytes(name: String, wasm_bytes: &[u8]) -> Result<Self>
pub fn from_bytes(name: String, wasm_bytes: &[u8]) -> Result<Self>
Create a new WASM engine from raw bytes (useful for testing).
Trait Implementations§
Source§impl Engine for WasmEngine
impl Engine for WasmEngine
Source§fn supported_languages(&self) -> Vec<String>
fn supported_languages(&self) -> Vec<String>
BCP-47 tags this engine handles. Empty means every language. Read more
fn as_wasm(&self) -> Option<&WasmEngine>
fn name(&self) -> &'static str
fn check<'life0, 'life1, 'life2, 'async_trait>(
&'life0 mut self,
text: &'life1 str,
language_id: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<Diagnostic>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Source§fn as_external(&self) -> Option<&ExternalEngine>
fn as_external(&self) -> Option<&ExternalEngine>
Downcast hooks for the two engines whose markup support is configured. Read more
Source§fn check_many<'life0, 'life1, 'life2, 'async_trait>(
&'life0 mut self,
texts: &'life1 [String],
language_id: &'life2 str,
) -> Pin<Box<dyn Future<Output = Vec<Result<Vec<Diagnostic>>>> + Send + 'async_trait>>where
Self: Send + 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn check_many<'life0, 'life1, 'life2, 'async_trait>(
&'life0 mut self,
texts: &'life1 [String],
language_id: &'life2 str,
) -> Pin<Box<dyn Future<Output = Vec<Result<Vec<Diagnostic>>>> + Send + 'async_trait>>where
Self: Send + 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Check a batch of independent texts, returning one result per input in
order. Read more
impl Send for WasmEngine
Auto Trait Implementations§
impl !RefUnwindSafe for WasmEngine
impl !UnwindSafe for WasmEngine
impl Freeze for WasmEngine
impl Sync for WasmEngine
impl Unpin for WasmEngine
impl UnsafeUnpin for WasmEngine
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> GetSetFdFlags for T
impl<T> GetSetFdFlags for T
Source§fn get_fd_flags(&self) -> Result<FdFlags, Error>where
T: AsFilelike,
fn get_fd_flags(&self) -> Result<FdFlags, Error>where
T: AsFilelike,
Query the “status” flags for the
self file descriptor.Source§fn new_set_fd_flags(&self, fd_flags: FdFlags) -> Result<SetFdFlags<T>, Error>where
T: AsFilelike,
fn new_set_fd_flags(&self, fd_flags: FdFlags) -> Result<SetFdFlags<T>, Error>where
T: AsFilelike,
Source§fn set_fd_flags(&mut self, set_fd_flags: SetFdFlags<T>) -> Result<(), Error>where
T: Sized + AsFilelike,
fn set_fd_flags(&mut self, set_fd_flags: SetFdFlags<T>) -> Result<(), Error>where
T: Sized + AsFilelike,
Set the “status” flags for the
self file descriptor. Read moreSource§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