type_level_logic/
lib.rs

1//! # `type-level-logic`: Primitives for type-level logic in Rust
2//!
3//! This crate contains some useful primitive types and traits for writing type-level logic in
4//! Rust. This includes signed and unsigned numbers implemented as balanced and unbalanced ternary
5//! representations, as well as basic boolean logic. Planned features include SFINAE-style removal
6//! of trait bounds using specialization.
7//!
8//! The `type-level-logic` crate forms the base for several other crates, all offering various
9//! sorts of static verification. For example, the `tll-iterator` crate offers statically sized
10//! iterators, which can be used to construct and convert between statically sized data structures
11//! like those offered by the `tll-array` crate.
12//!
13//! SFINAE-like functionality will eventually be offered under the `weak` module, hence the
14//! existence of the `strong` module.
15//!
16//! `type-level-logic` depends heavily on the [`type-operators`](https://crates.io/type-operators)
17//! crate for defining type-level functionality. If you are interested in contributing, modifying,
18//! or just plain curious, you should look at the `type-operators` crate to get a good idea of
19//! what's going on.
20//!
21//! If questions are had, I may be found either at my email (which is listed on GitHub) or on the `#rust` IRC, where I go by
22//! the nick `sleffy`.
23
24#![cfg_attr(feature = "specialization", feature(specialization))]
25
26#[macro_use]
27extern crate type_operators;
28
29pub mod types;
30pub mod strong;
31
32pub use strong::*;