1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
//! This crate exists solely to hold a centralized list of features 
//! used across all Theseus crates for conditional compilation and configuration.
//!  
//! It has no code, logic, or data.
//! 
//! ## How to specify optional crates/features in Theseus
//! 
//! To make a crate (or folder of crates) optional, do the following:
//! 1. Add it to the set of `exclude`s in the top-level Theseus `Cargo.toml` file.
//! 2. Add it as an optional dependency in this crate's `Cargo.toml` file, ensuring `optional = true`.
//! 3. (Optional) Add it as a feature below, in order to give it a specific name.
//!    * Technically this isn't required, but it can offer a clearer/different name.
//!    * You can optionally add it to the `default` set of features,
//!      or create a new group of features that includes it, 
//!      or even add it to an existing set of features.
//!    * If you do so, add that new feature or feature group to the `everything` feature.
//!
//! 
//! ## How to customize what is included in a Theseus build
//! 
//! When building Theseus using `make`, you can choose which of the features 
//! specified in this crate's `Cargo.toml` file are enabled.
//! Simply set the `FEATURES` environment variable, which has the default value of `--workspace`.
//! 
//! The `FEATURES` variable is passed directly into `cargo build`, meaning that is must
//! follow the formatting expected by `cargo build.
//! > Run `cargo build --help` to see more details about what arguments cargo expects.
//! 
//! ```sh
//! # Build the bare minimum `default-members` of the Theseus workspace, 
//! # excluding those specified by the `default` feature in this crate's `Cargo.toml`.
//! make FEATURES=--no-default-features
//! 
//! # Build the bare minimum `default-members` of the Theseus workspace, plus all optional crates.
//! make FEATURES="--features everything"
//! 
//! # Build the standard Theseus workspace plus all optional crates. 
//! # This is what `make full` or `make all` does.
//! make FEATURES="--workspace --features theseus_features/everything"
//! 
//! # Build the bare minimum `default-members` of the Theseus workspace, plus the `ps` crate.
//! make FEATURES="--features ps"
//! 
//! # Build the standard Theseus workspace plus the crates needed for the below `wasmtime` feature
//! # and the `test_panic` crate.
//! make FEATURES="--workspace --features wasmtime --features test_panic" 
//! ```


#![no_std]

// Intentionally left blank.