You will need the following tools to develop ChoRus:
This repository is set up as a Cargo workspace. Currently, there are two crates in the workspace:
chorus_libis a library that contains the core functionality of ChoRus. Users can install this crate as a library and use it in their own projects.chorus_deriveis an internal crate that contains the procedural macros used bychorus_lib. It is a dependency ofchorus_liband not intended to be used directly by users.
The examples directory under chorus_lib contains several examples of how to use ChoRus. To run an example, use the following command:
cargo run --example $(EXAMPLE_NAME)It is recommended to write examples for new features.
Many of the ChoRus files contain unit tests. Some examples also contain integration tests. You can use cargo to run all tests:
cargo testThe documentation also contains tests. Please refer to the documentation section for more information.
ChoRus uses mdBook to generate documentation and all features must be properly documented. Documentation sources are located in the chorus_book directory. You can use the following command to preview the documentation:
mdbook serve chorus_book --openMost of the code snippets in the documentation are tested using mdbook test. You can use the following command at the repository root to run tests in the documentation:
cargo clean
cargo build
mdbook test chorus_book -L ./target/debug/depsCleaning the project ensures that mdbook can find the chorus_lib library. More information can be found on this mdbook issue.