Skip to main content

hakmem/
lib.rs

1#![doc = include_str!("../README.md")]
2#![no_std]
3#![cfg_attr(docsrs, feature(doc_cfg))]
4#![deny(unsafe_code)]
5
6#[cfg(feature = "alloc")]
7extern crate alloc;
8
9pub mod affine;
10pub mod bits;
11pub mod cookbook;
12mod cover;
13#[cfg(all(target_arch = "x86_64", target_feature = "sse2"))]
14mod cpu;
15pub mod curve;
16pub mod dilated;
17pub mod grid;
18pub mod hilbert;
19pub mod hilbert3;
20pub mod isa;
21pub mod lanes;
22pub mod laws;
23pub mod myers;
24pub mod permute;
25pub mod rank9;
26pub mod set;
27pub mod slice;
28pub mod wide;
29pub mod word;
30#[cfg(target_arch = "x86_64")]
31pub mod x86;
32
33/// Everything most code needs, one `use` away.
34///
35/// The traits whose methods you call ([`Word`], [`Bits`], [`Words`] on
36/// slices, [`Lanes`], the curves [`Curve2`] and [`Curve3`]) and the types
37/// you name ([`Wide`], the Morton and Hilbert keys, [`Dilated`]). Iterator
38/// and view types come back from methods and are not here; name them from
39/// their modules.
40pub mod prelude {
41    pub use crate::bits::Bits;
42    pub use crate::curve::{Curve2, Curve3};
43    pub use crate::dilated::{Dilated, Morton2, Morton3};
44    pub use crate::hilbert::Hilbert2;
45    pub use crate::hilbert3::Hilbert3;
46    pub use crate::lanes::Lanes;
47    pub use crate::slice::Words;
48    pub use crate::wide::Wide;
49    pub use crate::word::Word;
50}
51
52pub use prelude::*;