# Pipeline for Rust
[](https://crates.io/crates/fluent_pipeline)
[](https://crates.io/crates/fluent_pipeline)
[](https://docs.rs/fluent_pipeline)
A convenient way to "pipe" a given input through a series of invokable classes, closures, or callables, giving each class the opportunity to inspect or modify the input and invoke the next callable in the pipeline.
## Usage
To get started, create a new pipeline with the `send` method, passing the input you want to pipe through the pipeline. Then, use the `through` method to add a series of pipes (either classes implenting the `Pipe` trait, or closures) to the pipeline. Finally, call the `then` method to transform and get the final output.
You can also append `Pipe`s to an existing pipeline using the `pipe` method, or use `thenReturn` to get the final output without transforming it.
```rust
use fluent_pipeline::Pipeline;
Pipeline::send(project).through(&[
PipeType::Pipe(BuildProject()),
PipeType::Pipe(UploadProject()),
PipeType::Pipe(DeployProject()),
PipeType::Fn(|project| {
// ...
return project
})
]).run()
```
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.