WorkerTree

Struct WorkerTree 

Source
pub struct WorkerTree { /* private fields */ }
Expand description

A structure that manages the processing of Lua/Luau files and their dependencies.

Under the hood, the WorkerTree maintains a directed graph of work items, where each node represents a file to be processed and edges represent dependencies between files. It handles the collection and processing of work items, manages file dependencies, and tracks the status of each work item.

Implementations§

Source§

impl WorkerTree

Source

pub fn collect_work( &mut self, resources: &Resources, options: &Options, ) -> Result<(), DarkluaError>

Collects work items based on the provided resources and options.

This method traverses the input directory or file specified in the options and creates work items for each Lua/Luau file that needs to be processed. It also sets up the output paths based on the provided options.

Source

pub fn process( &mut self, resources: &Resources, options: Options, ) -> Result<(), DarkluaError>

Processes all collected work items according to the provided options.

This method performs the actual processing of work items in topological order, respecting dependencies between files.

Source

pub fn result(self) -> Result<(), Vec<DarkluaError>>

Returns the final result of processing all work items.

This method consumes the WorkerTree and returns either Ok(()) if all work items were processed successfully, or a vector of errors if any work items failed.

Source

pub fn collect_errors(&self) -> Vec<&DarkluaError>

Collects all errors that occurred during processing.

Source

pub fn success_count(&self) -> usize

Returns the number of successfully processed work items.

Source

pub fn iter_external_dependencies(&self) -> impl Iterator<Item = &Path>

Returns an iterator over all external dependencies.

Source

pub fn reset(&mut self)

Resets the worker tree to its initial state.

Source

pub fn source_changed(&mut self, path: impl AsRef<Path>)

Notifies the worker tree that a source file has changed.

Source

pub fn remove_source(&mut self, path: impl AsRef<Path>)

Removes a source file from the worker tree.

Source

pub fn contains(&mut self, path: impl AsRef<Path>) -> bool

Checks if a source file is present in the worker tree.

Source

pub fn add_source(&mut self, path: impl AsRef<Path>, output: Option<PathBuf>)

Adds a source file to the worker tree.

Trait Implementations§

Source§

impl Debug for WorkerTree

Source§

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

Formats the value using the given formatter. Read more
Source§

impl Default for WorkerTree

Source§

fn default() -> WorkerTree

Returns the “default value” for a type. 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<I, T> ExtractContext<I, ()> for T

Source§

fn extract_context(self, _original_input: I)

Given the context attached to a nom error, and given the original input to the nom parser, extract more the useful context information. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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<I> RecreateContext<I> for I

Source§

fn recreate_context(_original_input: I, tail: I) -> I

Given the original input, as well as the context reported by nom, recreate a context in the original string where the error occurred. Read more
Source§

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

Source§

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>,

Source§

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.