paradis_core/
lib.rs

1//! Core primitives for `paradis`.
2//!
3//! `paradis-core` contains the core abstractions used by `paradis`. `paradis-core` is expected
4//! to need breaking changes very rarely. Hopefully once the APIs are stabilized
5//! no further breaking changes are necessary. Therefore, library authors who only want to
6//! expose their data structures to `paradis` algorithms should depend on this crate
7//! instead `paradis`.
8//!
9//! Please see documentation for `paradis` for more information about the library.
10
11#![warn(missing_docs)]
12#![deny(unsafe_op_in_unsafe_fn)]
13
14mod par_access;
15mod record_index;
16
17pub use par_access::{BoundedParAccess, IntoParAccess, LinearParAccess, ParAccess};
18pub use record_index::{Bounds, RecordIndex};
19
20pub mod slice;
21
22mod internal {
23    pub trait Sealed {}
24
25    impl Sealed for u8 {}
26    impl Sealed for u16 {}
27    impl Sealed for u32 {}
28    impl Sealed for u64 {}
29    impl Sealed for usize {}
30
31    impl<I0> Sealed for (I0,) {}
32    impl<I0, I1> Sealed for (I0, I1) {}
33    impl<I0, I1, I2> Sealed for (I0, I1, I2) {}
34    impl<I0, I1, I2, I3> Sealed for (I0, I1, I2, I3) {}
35    impl<I0, I1, I2, I3, I4> Sealed for (I0, I1, I2, I3, I4) {}
36    impl<I0, I1, I2, I3, I4, I5> Sealed for (I0, I1, I2, I3, I4, I5) {}
37    impl<I0, I1, I2, I3, I4, I5, I6> Sealed for (I0, I1, I2, I3, I4, I5, I6) {}
38}