spirv_reflect/types/
traits.rs

1use crate::types::image::ReflectImageFormat;
2use crate::types::ReflectDimension;
3
4#[derive(Debug, Default, Clone, Serialize, PartialEq)]
5pub struct ReflectBindingArrayTraits {
6    pub dims: Vec<u32>,
7}
8
9#[derive(Default, Debug, Copy, Clone, Serialize, PartialEq)]
10pub struct ReflectNumericTraitsScalar {
11    pub width: u32,
12    pub signedness: u32,
13}
14
15#[derive(Default, Debug, Copy, Clone, Serialize, PartialEq)]
16pub struct ReflectNumericTraitsVector {
17    pub component_count: u32,
18}
19
20#[derive(Default, Debug, Copy, Clone, Serialize, PartialEq)]
21pub struct ReflectNumericTraitsMatrix {
22    pub column_count: u32,
23    pub row_count: u32,
24    pub stride: u32,
25}
26
27#[derive(Default, Debug, Copy, Clone, Serialize, PartialEq)]
28pub struct ReflectNumericTraits {
29    pub scalar: ReflectNumericTraitsScalar,
30    pub vector: ReflectNumericTraitsVector,
31    pub matrix: ReflectNumericTraitsMatrix,
32}
33
34#[derive(Default, Debug, Clone, Serialize, PartialEq)]
35pub struct ReflectArrayTraits {
36    pub dims: Vec<u32>,
37    pub stride: u32,
38}
39
40#[derive(Default, Debug, Clone, Serialize, PartialEq)]
41pub struct ReflectTypeDescriptionTraits {
42    pub numeric: ReflectNumericTraits,
43    pub image: ReflectImageTraits,
44    pub array: ReflectArrayTraits,
45}
46
47#[derive(Default, Debug, Copy, Clone, Serialize, PartialEq)]
48pub struct ReflectImageTraits {
49    pub dim: ReflectDimension,
50    pub depth: u32,
51    pub arrayed: u32,
52    pub ms: u32,
53    pub sampled: u32,
54    pub image_format: ReflectImageFormat,
55}