Struct wdl_analysis::AnalysisEngine

source ·
pub struct AnalysisEngine { /* private fields */ }
Expand description

Represents a Workflow Description Language (WDL) analysis engine.

By default, analysis parses documents, performs validation checks, resolves imports, and performs type checking.

Each analysis operation is processed in order of request; however, the individual parsing, resolution, and analysis of documents is performed across a thread pool.

Implementations§

source§

impl AnalysisEngine

source

pub fn new() -> Result<Self>

Creates a new analysis engine using a default validator.

The engine must be constructed from the context of a Tokio runtime.

source

pub fn new_with_validator<V>(validator: V) -> Result<Self>
where V: Fn() -> Validator + Send + Sync + 'static,

Creates a new analysis engine with the given function that produces a validator to use.

The provided function will be called once per worker thread to initialize a thread-local validator.

The engine must be constructed from the context of a Tokio runtime.

source

pub async fn analyze(&self, path: &Path) -> Vec<AnalysisResult>

Analyzes the given file system path.

If the path is a directory, the directory will be recursively searched for files with a .wdl extension to analyze.

Otherwise, a single file is analyzed.

source

pub async fn analyze_with_progress<F>( &self, path: &Path, progress: F, ) -> Vec<AnalysisResult>
where F: Fn(ProgressKind, usize, usize) + Send + Sync + 'static,

Analyzes the given file system path and reports progress to the given callback.

If the path is a directory, the directory will be recursively searched for files with a .wdl extension to analyze.

Otherwise, a single file is analyzed.

Progress is reported to the provided callback function with a minimum 50ms interval.

source

pub fn result(&self, path: &Path) -> Option<AnalysisResult>

Gets a previous analysis result for a file.

Returns None if the file has not been analyzed yet.

source

pub async fn shutdown(self)

Shuts down the engine and waits for outstanding requests to complete.

Trait Implementations§

source§

impl Debug for AnalysisEngine

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> Instrument for T

source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> IntoEither for T

source§

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 more
source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
source§

impl<T> Pointable for T

source§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<T> WithSubscriber for T

source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more