Struct specs::DispatcherBuilder [] [src]

pub struct DispatcherBuilder<'a, 'b> { /* fields omitted */ }

Builder for the Dispatcher.

Barriers

Barriers are a way of sequentializing parts of the system execution. See add_barrier()/with_barrier().

Examples

This is how you create a dispatcher with a shared thread pool:

let dispatcher: Dispatcher = DispatcherBuilder::new()
    .with(system_a, "a", &[])
    .with(system_b, "b", &["a"]) // b depends on a
    .with(system_c, "c", &["a"]) // c also depends on a
    .with(system_d, "d", &[])
    .with(system_e, "e", &["c", "d"]) // e executes after c and d are finished
    .build();

Systems can be conditionally added by using the add_ functions:

let mut builder = DispatcherBuilder::new()
    .with(system_a, "a", &[]);

if b_enabled {
   builder.add(system_b, "b", &[]);
}

let dispatcher = builder.build();

Methods

impl<'a, 'b> DispatcherBuilder<'a, 'b>
[src]

[src]

Creates a new DispatcherBuilder by using the Default implementation.

The default behaviour is to create a thread pool on finish. If you already have a rayon ThreadPool, it's highly recommended to configure this builder to use it with with_pool instead.

[src]

Adds a new system with a given name and a list of dependencies. Please note that the dependency should be added before you add the depending system.

If you want to register systems which can not be specified as dependencies, you can use "" as their name, which will not panic (using another name twice will).

Same as add(), but returns self to enable method chaining.

Panics

  • if the specified dependency does not exist
  • if a system with the same name was already registered.

[src]

Adds a new system with a given name and a list of dependencies. Please note that the dependency should be added before you add the depending system.

If you want to register systems which can not be specified as dependencies, you can use "" as their name, which will not panic (using another name twice will).

Panics

  • if the specified dependency does not exist
  • if a system with the same name was already registered.

[src]

Adds a new thread local system.

Please only use this if your struct is not Send and Sync.

Thread-local systems are dispatched in-order.

Same as add_thread_local(), but returns self to enable method chaining.

[src]

Adds a new thread local system.

Please only use this if your struct is not Send and Sync.

Thread-local systems are dispatched in-order.

[src]

Inserts a barrier which assures that all systems added before the barrier are executed before the ones after this barrier.

Does nothing if there were no systems added since the last call to add_barrier()/with_barrier().

Thread-local systems are not affected by barriers; they're always executed at the end.

Same as add_barrier(), but returns self to enable method chaining.

[src]

Inserts a barrier which assures that all systems added before the barrier are executed before the ones after this barrier.

Does nothing if there were no systems added since the last call to add_barrier()/with_barrier().

Thread-local systems are not affected by barriers; they're always executed at the end.

[src]

Attach a rayon thread pool to the builder and use that instead of creating one.

Same as add_pool(), but returns self to enable method chaining.

[src]

Attach a rayon thread pool to the builder and use that instead of creating one.

[src]

Prints the equivalent system graph that can be easily used to get the graph using the seq! and par! macros. This is only recommended for advanced users.

[src]

Builds the Dispatcher.

In the future, this method will precompute useful information in order to speed up dispatching.

impl<'b> DispatcherBuilder<'static, 'b>
[src]

[src]

Builds an async dispatcher.

It does not allow non-static types and accepts a Resources struct or a value that can be borrowed as Resources.

Trait Implementations

impl<'a, 'b> Default for DispatcherBuilder<'a, 'b>
[src]

[src]

Returns the "default value" for a type. Read more

impl<'a, 'b> Debug for DispatcherBuilder<'a, 'b>
[src]

[src]

Formats the value using the given formatter. Read more

Auto Trait Implementations

impl<'a, 'b> !Send for DispatcherBuilder<'a, 'b>

impl<'a, 'b> !Sync for DispatcherBuilder<'a, 'b>