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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
use crate::{common::*, kind::Extension};
pub trait FrameKind {}
pub trait NonAnyFrameKind
where
Self: FrameKind,
{
const EXTENSION: Extension;
}
#[derive(Debug)]
pub struct Composite;
impl FrameKind for Composite {}
impl NonAnyFrameKind for Composite {
const EXTENSION: Extension = Extension::CompositeFrame;
}
#[derive(Debug)]
pub struct Any;
impl FrameKind for Any {}
#[derive(Debug)]
pub struct Video;
impl FrameKind for Video {}
impl NonAnyFrameKind for Video {
const EXTENSION: Extension = Extension::VideoFrame;
}
#[derive(Debug)]
pub struct Motion;
impl FrameKind for Motion {}
impl NonAnyFrameKind for Motion {
const EXTENSION: Extension = Extension::MotionFrame;
}
#[derive(Debug)]
pub struct Depth;
impl FrameKind for Depth {}
impl NonAnyFrameKind for Depth {
const EXTENSION: Extension = Extension::DepthFrame;
}
#[derive(Debug)]
pub struct Disparity;
impl FrameKind for Disparity {}
impl NonAnyFrameKind for Disparity {
const EXTENSION: Extension = Extension::DisparityFrame;
}
#[derive(Debug)]
pub struct Pose;
impl FrameKind for Pose {}
impl NonAnyFrameKind for Pose {
const EXTENSION: Extension = Extension::PoseFrame;
}
#[derive(Debug)]
pub struct Points;
impl FrameKind for Points {}
impl NonAnyFrameKind for Points {
const EXTENSION: Extension = Extension::Points;
}