pub trait PipelineBuilder: Sized {
// Required methods
fn add_system_on_layer<AT>(
&mut self,
name: &str,
system: fn(_: &mut Universe),
dependencies: &[&str],
layer: PipelineLayer,
lock_on_single_thread: bool
) -> Result<(), PipelineBuilderError>
where AT: AccessType;
fn graph(self) -> PipelineGraph;
// Provided methods
fn add_system<AT>(
&mut self,
name: &str,
system: fn(_: &mut Universe),
dependencies: &[&str]
) -> Result<(), PipelineBuilderError>
where AT: AccessType { ... }
fn add_system_on_single_thread<AT>(
&mut self,
name: &str,
system: fn(_: &mut Universe),
dependencies: &[&str]
) -> Result<(), PipelineBuilderError>
where AT: AccessType { ... }
fn with_system_on_layer<AT>(
self,
name: &str,
system: fn(_: &mut Universe),
dependencies: &[&str],
layer: PipelineLayer,
lock_on_single_thread: bool
) -> Result<Self, PipelineBuilderError>
where AT: AccessType { ... }
fn with_system<AT>(
self,
name: &str,
system: fn(_: &mut Universe),
dependencies: &[&str]
) -> Result<Self, PipelineBuilderError>
where AT: AccessType { ... }
fn with_system_on_single_thread<AT>(
self,
name: &str,
system: fn(_: &mut Universe),
dependencies: &[&str]
) -> Result<Self, PipelineBuilderError>
where AT: AccessType { ... }
fn build<T>(self) -> T
where T: PipelineEngine + Default { ... }
fn build_with_engine<T>(self, engine: T) -> T
where T: PipelineEngine { ... }
}