• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // automatically generated by the FlatBuffers compiler, do not modify
2 // @generated
3 extern crate alloc;
4 extern crate flatbuffers;
5 use alloc::boxed::Box;
6 use alloc::string::{String, ToString};
7 use alloc::vec::Vec;
8 use core::mem;
9 use core::cmp::Ordering;
10 use self::flatbuffers::{EndianScalar, Follow};
11 use super::*;
12 // struct Vec3, aligned to 4
13 #[repr(transparent)]
14 #[derive(Clone, Copy, PartialEq)]
15 pub struct Vec3(pub [u8; 12]);
16 impl Default for Vec3 {
default() -> Self17   fn default() -> Self {
18     Self([0; 12])
19   }
20 }
21 impl core::fmt::Debug for Vec3 {
fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result22   fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
23     f.debug_struct("Vec3")
24       .field("x", &self.x())
25       .field("y", &self.y())
26       .field("z", &self.z())
27       .finish()
28   }
29 }
30 
31 impl flatbuffers::SimpleToVerifyInSlice for Vec3 {}
32 impl<'a> flatbuffers::Follow<'a> for Vec3 {
33   type Inner = &'a Vec3;
34   #[inline]
follow(buf: &'a [u8], loc: usize) -> Self::Inner35   unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
36     <&'a Vec3>::follow(buf, loc)
37   }
38 }
39 impl<'a> flatbuffers::Follow<'a> for &'a Vec3 {
40   type Inner = &'a Vec3;
41   #[inline]
follow(buf: &'a [u8], loc: usize) -> Self::Inner42   unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
43     flatbuffers::follow_cast_ref::<Vec3>(buf, loc)
44   }
45 }
46 impl<'b> flatbuffers::Push for Vec3 {
47     type Output = Vec3;
48     #[inline]
push(&self, dst: &mut [u8], _written_len: usize)49     unsafe fn push(&self, dst: &mut [u8], _written_len: usize) {
50         let src = ::core::slice::from_raw_parts(self as *const Vec3 as *const u8, <Self as flatbuffers::Push>::size());
51         dst.copy_from_slice(src);
52     }
53     #[inline]
alignment() -> flatbuffers::PushAlignment54     fn alignment() -> flatbuffers::PushAlignment {
55         flatbuffers::PushAlignment::new(4)
56     }
57 }
58 
59 impl<'a> flatbuffers::Verifiable for Vec3 {
60   #[inline]
run_verifier( v: &mut flatbuffers::Verifier, pos: usize ) -> Result<(), flatbuffers::InvalidFlatbuffer>61   fn run_verifier(
62     v: &mut flatbuffers::Verifier, pos: usize
63   ) -> Result<(), flatbuffers::InvalidFlatbuffer> {
64     use self::flatbuffers::Verifiable;
65     v.in_buffer::<Self>(pos)
66   }
67 }
68 
69 impl<'a> Vec3 {
70   #[allow(clippy::too_many_arguments)]
new( x: f32, y: f32, z: f32, ) -> Self71   pub fn new(
72     x: f32,
73     y: f32,
74     z: f32,
75   ) -> Self {
76     let mut s = Self([0; 12]);
77     s.set_x(x);
78     s.set_y(y);
79     s.set_z(z);
80     s
81   }
82 
get_fully_qualified_name() -> &'static str83   pub const fn get_fully_qualified_name() -> &'static str {
84     "MyGame.Sample.Vec3"
85   }
86 
x(&self) -> f3287   pub fn x(&self) -> f32 {
88     let mut mem = core::mem::MaybeUninit::<<f32 as EndianScalar>::Scalar>::uninit();
89     // Safety:
90     // Created from a valid Table for this object
91     // Which contains a valid value in this slot
92     EndianScalar::from_little_endian(unsafe {
93       core::ptr::copy_nonoverlapping(
94         self.0[0..].as_ptr(),
95         mem.as_mut_ptr() as *mut u8,
96         core::mem::size_of::<<f32 as EndianScalar>::Scalar>(),
97       );
98       mem.assume_init()
99     })
100   }
101 
set_x(&mut self, x: f32)102   pub fn set_x(&mut self, x: f32) {
103     let x_le = x.to_little_endian();
104     // Safety:
105     // Created from a valid Table for this object
106     // Which contains a valid value in this slot
107     unsafe {
108       core::ptr::copy_nonoverlapping(
109         &x_le as *const _ as *const u8,
110         self.0[0..].as_mut_ptr(),
111         core::mem::size_of::<<f32 as EndianScalar>::Scalar>(),
112       );
113     }
114   }
115 
y(&self) -> f32116   pub fn y(&self) -> f32 {
117     let mut mem = core::mem::MaybeUninit::<<f32 as EndianScalar>::Scalar>::uninit();
118     // Safety:
119     // Created from a valid Table for this object
120     // Which contains a valid value in this slot
121     EndianScalar::from_little_endian(unsafe {
122       core::ptr::copy_nonoverlapping(
123         self.0[4..].as_ptr(),
124         mem.as_mut_ptr() as *mut u8,
125         core::mem::size_of::<<f32 as EndianScalar>::Scalar>(),
126       );
127       mem.assume_init()
128     })
129   }
130 
set_y(&mut self, x: f32)131   pub fn set_y(&mut self, x: f32) {
132     let x_le = x.to_little_endian();
133     // Safety:
134     // Created from a valid Table for this object
135     // Which contains a valid value in this slot
136     unsafe {
137       core::ptr::copy_nonoverlapping(
138         &x_le as *const _ as *const u8,
139         self.0[4..].as_mut_ptr(),
140         core::mem::size_of::<<f32 as EndianScalar>::Scalar>(),
141       );
142     }
143   }
144 
z(&self) -> f32145   pub fn z(&self) -> f32 {
146     let mut mem = core::mem::MaybeUninit::<<f32 as EndianScalar>::Scalar>::uninit();
147     // Safety:
148     // Created from a valid Table for this object
149     // Which contains a valid value in this slot
150     EndianScalar::from_little_endian(unsafe {
151       core::ptr::copy_nonoverlapping(
152         self.0[8..].as_ptr(),
153         mem.as_mut_ptr() as *mut u8,
154         core::mem::size_of::<<f32 as EndianScalar>::Scalar>(),
155       );
156       mem.assume_init()
157     })
158   }
159 
set_z(&mut self, x: f32)160   pub fn set_z(&mut self, x: f32) {
161     let x_le = x.to_little_endian();
162     // Safety:
163     // Created from a valid Table for this object
164     // Which contains a valid value in this slot
165     unsafe {
166       core::ptr::copy_nonoverlapping(
167         &x_le as *const _ as *const u8,
168         self.0[8..].as_mut_ptr(),
169         core::mem::size_of::<<f32 as EndianScalar>::Scalar>(),
170       );
171     }
172   }
173 
unpack(&self) -> Vec3T174   pub fn unpack(&self) -> Vec3T {
175     Vec3T {
176       x: self.x(),
177       y: self.y(),
178       z: self.z(),
179     }
180   }
181 }
182 
183 #[derive(Debug, Clone, PartialEq, Default)]
184 pub struct Vec3T {
185   pub x: f32,
186   pub y: f32,
187   pub z: f32,
188 }
189 impl Vec3T {
pack(&self) -> Vec3190   pub fn pack(&self) -> Vec3 {
191     Vec3::new(
192       self.x,
193       self.y,
194       self.z,
195     )
196   }
197 }
198 
199