Specialized collections, macros, and monads for your special situations.
Items with unresolved soundness concerns are marked unsafe.
That is to say: some sound items may be marked unsafe, and all unsound items are marked unsafe.
Exact crate goals are tentative
Any enabled itym_* feature also enables the features of their dependencies,
unless doing so increases burden on:
- The build system.
- in the form of increased compile times
- The developer.
- In the form of overlapping identifiers causing erroneous auto-imports
Exceptions are in place for crates which are nominally undesired.
Incomplete and tentative list.
- Developers using
#![deny(unsafe_code)]gain soundness guarantees #![no_std]in the form ofstdandallocfeatures where possible- Maximum
constcoverage, without forsaking runtime performance- Even if runtime-optimized and
constvariants are
- Even if runtime-optimized and
- Error as early as possible, roughly:
- Refuse construction in which error is possible
- By
implpredicates and trait bounds
- By
- Assert using errors caught by
cargo check- Such as
const _: () = panic!();
- Such as
- Assert using errors caught by
cargo build- Such as
const { panic!(); }
- Such as
- Assert at runtime
- Refuse construction in which error is possible
Bumping MSRV is not considered a semver-breaking change.
This project is licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or https://opensource.org/licenses/MIT)
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in itym by you, as defined in the Apache-2.0 license, shall be
dual licensed as above, without any additional terms or conditions.