rstsr_common/layout/
mod.rs

1pub mod broadcast;
2pub mod dim;
3pub mod indexer;
4pub mod iterator;
5pub mod layoutbase;
6pub mod matmul;
7pub mod rearrangement;
8pub mod reshape;
9pub mod shape;
10pub mod slice;
11pub mod stride;
12
13pub mod exports {
14    use super::*;
15    pub use broadcast::*;
16    pub use dim::*;
17    pub use indexer::*;
18    pub use iterator::*;
19    pub use layoutbase::*;
20    pub use matmul::*;
21    pub use rearrangement::*;
22    pub use reshape::*;
23    pub use shape::*;
24    pub use slice::*;
25    pub use stride::*;
26
27    pub trait DimDevAPI: DimBaseAPI + DimShapeAPI + DimStrideAPI + DimLayoutContigAPI {}
28
29    impl<const N: usize> DimDevAPI for Ix<N> {}
30    impl DimDevAPI for IxD {}
31
32    pub trait DimAPI:
33        DimDevAPI
34        + DimIntoAPI<IxD>
35        + DimIntoAPI<Ix0>
36        + DimIntoAPI<Ix1>
37        + DimIntoAPI<Ix2>
38        + DimIntoAPI<Ix3>
39        + DimIntoAPI<Ix4>
40        + DimIntoAPI<Ix5>
41        + DimIntoAPI<Ix6>
42        + DimIntoAPI<Ix7>
43        + DimIntoAPI<Ix8>
44        + DimIntoAPI<Ix9>
45        + DimIntoAPI<Self>
46    {
47    }
48
49    impl<const N: usize> DimAPI for Ix<N> {}
50    impl DimAPI for IxD {}
51}