rstsr_core/layout/
mod.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
pub mod broadcast;
pub mod dim;
pub mod indexer;
pub mod iterator;
pub mod layoutbase;
pub mod matmul;
pub mod rearrangement;
pub mod reshape;
pub mod shape;
pub mod slice;
pub mod stride;

pub use broadcast::*;
pub use dim::*;
pub use indexer::*;
pub use iterator::*;
pub use layoutbase::*;
pub use matmul::*;
pub use rearrangement::*;
pub use reshape::*;
pub use shape::*;
pub use slice::*;
pub use stride::*;

pub trait DimDevAPI: DimBaseAPI + DimShapeAPI + DimStrideAPI + DimLayoutContigAPI {}

impl<const N: usize> DimDevAPI for Ix<N> {}
impl DimDevAPI for IxD {}

pub trait DimAPI:
    DimDevAPI
    + DimIntoAPI<IxD>
    + DimIntoAPI<Ix0>
    + DimIntoAPI<Ix1>
    + DimIntoAPI<Ix2>
    + DimIntoAPI<Ix3>
    + DimIntoAPI<Ix4>
    + DimIntoAPI<Ix5>
    + DimIntoAPI<Ix6>
    + DimIntoAPI<Ix7>
    + DimIntoAPI<Ix8>
    + DimIntoAPI<Ix9>
    + DimIntoAPI<Self>
{
}

impl<const N: usize> DimAPI for Ix<N> {}
impl DimAPI for IxD {}