• 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 8
13 #[repr(transparent)]
14 #[derive(Clone, Copy, PartialEq)]
15 pub struct Vec3(pub [u8; 32]);
16 impl Default for Vec3 {
default() -> Self17   fn default() -> Self {
18     Self([0; 32])
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       .field("test1", &self.test1())
28       .field("test2", &self.test2())
29       .field("test3", &self.test3())
30       .finish()
31   }
32 }
33 
34 impl flatbuffers::SimpleToVerifyInSlice for Vec3 {}
35 impl<'a> flatbuffers::Follow<'a> for Vec3 {
36   type Inner = &'a Vec3;
37   #[inline]
follow(buf: &'a [u8], loc: usize) -> Self::Inner38   unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
39     <&'a Vec3>::follow(buf, loc)
40   }
41 }
42 impl<'a> flatbuffers::Follow<'a> for &'a Vec3 {
43   type Inner = &'a Vec3;
44   #[inline]
follow(buf: &'a [u8], loc: usize) -> Self::Inner45   unsafe fn follow(buf: &'a [u8], loc: usize) -> Self::Inner {
46     flatbuffers::follow_cast_ref::<Vec3>(buf, loc)
47   }
48 }
49 impl<'b> flatbuffers::Push for Vec3 {
50     type Output = Vec3;
51     #[inline]
push(&self, dst: &mut [u8], _written_len: usize)52     unsafe fn push(&self, dst: &mut [u8], _written_len: usize) {
53         let src = ::core::slice::from_raw_parts(self as *const Vec3 as *const u8, <Self as flatbuffers::Push>::size());
54         dst.copy_from_slice(src);
55     }
56     #[inline]
alignment() -> flatbuffers::PushAlignment57     fn alignment() -> flatbuffers::PushAlignment {
58         flatbuffers::PushAlignment::new(8)
59     }
60 }
61 
62 impl<'a> flatbuffers::Verifiable for Vec3 {
63   #[inline]
run_verifier( v: &mut flatbuffers::Verifier, pos: usize ) -> Result<(), flatbuffers::InvalidFlatbuffer>64   fn run_verifier(
65     v: &mut flatbuffers::Verifier, pos: usize
66   ) -> Result<(), flatbuffers::InvalidFlatbuffer> {
67     use self::flatbuffers::Verifiable;
68     v.in_buffer::<Self>(pos)
69   }
70 }
71 
72 impl<'a> Vec3 {
73   #[allow(clippy::too_many_arguments)]
new( x: f32, y: f32, z: f32, test1: f64, test2: Color, test3: &Test, ) -> Self74   pub fn new(
75     x: f32,
76     y: f32,
77     z: f32,
78     test1: f64,
79     test2: Color,
80     test3: &Test,
81   ) -> Self {
82     let mut s = Self([0; 32]);
83     s.set_x(x);
84     s.set_y(y);
85     s.set_z(z);
86     s.set_test1(test1);
87     s.set_test2(test2);
88     s.set_test3(test3);
89     s
90   }
91 
get_fully_qualified_name() -> &'static str92   pub const fn get_fully_qualified_name() -> &'static str {
93     "MyGame.Example.Vec3"
94   }
95 
x(&self) -> f3296   pub fn x(&self) -> f32 {
97     let mut mem = core::mem::MaybeUninit::<<f32 as EndianScalar>::Scalar>::uninit();
98     // Safety:
99     // Created from a valid Table for this object
100     // Which contains a valid value in this slot
101     EndianScalar::from_little_endian(unsafe {
102       core::ptr::copy_nonoverlapping(
103         self.0[0..].as_ptr(),
104         mem.as_mut_ptr() as *mut u8,
105         core::mem::size_of::<<f32 as EndianScalar>::Scalar>(),
106       );
107       mem.assume_init()
108     })
109   }
110 
set_x(&mut self, x: f32)111   pub fn set_x(&mut self, x: f32) {
112     let x_le = x.to_little_endian();
113     // Safety:
114     // Created from a valid Table for this object
115     // Which contains a valid value in this slot
116     unsafe {
117       core::ptr::copy_nonoverlapping(
118         &x_le as *const _ as *const u8,
119         self.0[0..].as_mut_ptr(),
120         core::mem::size_of::<<f32 as EndianScalar>::Scalar>(),
121       );
122     }
123   }
124 
y(&self) -> f32125   pub fn y(&self) -> f32 {
126     let mut mem = core::mem::MaybeUninit::<<f32 as EndianScalar>::Scalar>::uninit();
127     // Safety:
128     // Created from a valid Table for this object
129     // Which contains a valid value in this slot
130     EndianScalar::from_little_endian(unsafe {
131       core::ptr::copy_nonoverlapping(
132         self.0[4..].as_ptr(),
133         mem.as_mut_ptr() as *mut u8,
134         core::mem::size_of::<<f32 as EndianScalar>::Scalar>(),
135       );
136       mem.assume_init()
137     })
138   }
139 
set_y(&mut self, x: f32)140   pub fn set_y(&mut self, x: f32) {
141     let x_le = x.to_little_endian();
142     // Safety:
143     // Created from a valid Table for this object
144     // Which contains a valid value in this slot
145     unsafe {
146       core::ptr::copy_nonoverlapping(
147         &x_le as *const _ as *const u8,
148         self.0[4..].as_mut_ptr(),
149         core::mem::size_of::<<f32 as EndianScalar>::Scalar>(),
150       );
151     }
152   }
153 
z(&self) -> f32154   pub fn z(&self) -> f32 {
155     let mut mem = core::mem::MaybeUninit::<<f32 as EndianScalar>::Scalar>::uninit();
156     // Safety:
157     // Created from a valid Table for this object
158     // Which contains a valid value in this slot
159     EndianScalar::from_little_endian(unsafe {
160       core::ptr::copy_nonoverlapping(
161         self.0[8..].as_ptr(),
162         mem.as_mut_ptr() as *mut u8,
163         core::mem::size_of::<<f32 as EndianScalar>::Scalar>(),
164       );
165       mem.assume_init()
166     })
167   }
168 
set_z(&mut self, x: f32)169   pub fn set_z(&mut self, x: f32) {
170     let x_le = x.to_little_endian();
171     // Safety:
172     // Created from a valid Table for this object
173     // Which contains a valid value in this slot
174     unsafe {
175       core::ptr::copy_nonoverlapping(
176         &x_le as *const _ as *const u8,
177         self.0[8..].as_mut_ptr(),
178         core::mem::size_of::<<f32 as EndianScalar>::Scalar>(),
179       );
180     }
181   }
182 
test1(&self) -> f64183   pub fn test1(&self) -> f64 {
184     let mut mem = core::mem::MaybeUninit::<<f64 as EndianScalar>::Scalar>::uninit();
185     // Safety:
186     // Created from a valid Table for this object
187     // Which contains a valid value in this slot
188     EndianScalar::from_little_endian(unsafe {
189       core::ptr::copy_nonoverlapping(
190         self.0[16..].as_ptr(),
191         mem.as_mut_ptr() as *mut u8,
192         core::mem::size_of::<<f64 as EndianScalar>::Scalar>(),
193       );
194       mem.assume_init()
195     })
196   }
197 
set_test1(&mut self, x: f64)198   pub fn set_test1(&mut self, x: f64) {
199     let x_le = x.to_little_endian();
200     // Safety:
201     // Created from a valid Table for this object
202     // Which contains a valid value in this slot
203     unsafe {
204       core::ptr::copy_nonoverlapping(
205         &x_le as *const _ as *const u8,
206         self.0[16..].as_mut_ptr(),
207         core::mem::size_of::<<f64 as EndianScalar>::Scalar>(),
208       );
209     }
210   }
211 
test2(&self) -> Color212   pub fn test2(&self) -> Color {
213     let mut mem = core::mem::MaybeUninit::<<Color as EndianScalar>::Scalar>::uninit();
214     // Safety:
215     // Created from a valid Table for this object
216     // Which contains a valid value in this slot
217     EndianScalar::from_little_endian(unsafe {
218       core::ptr::copy_nonoverlapping(
219         self.0[24..].as_ptr(),
220         mem.as_mut_ptr() as *mut u8,
221         core::mem::size_of::<<Color as EndianScalar>::Scalar>(),
222       );
223       mem.assume_init()
224     })
225   }
226 
set_test2(&mut self, x: Color)227   pub fn set_test2(&mut self, x: Color) {
228     let x_le = x.to_little_endian();
229     // Safety:
230     // Created from a valid Table for this object
231     // Which contains a valid value in this slot
232     unsafe {
233       core::ptr::copy_nonoverlapping(
234         &x_le as *const _ as *const u8,
235         self.0[24..].as_mut_ptr(),
236         core::mem::size_of::<<Color as EndianScalar>::Scalar>(),
237       );
238     }
239   }
240 
test3(&self) -> &Test241   pub fn test3(&self) -> &Test {
242     // Safety:
243     // Created from a valid Table for this object
244     // Which contains a valid struct in this slot
245     unsafe { &*(self.0[26..].as_ptr() as *const Test) }
246   }
247 
248   #[allow(clippy::identity_op)]
set_test3(&mut self, x: &Test)249   pub fn set_test3(&mut self, x: &Test) {
250     self.0[26..26 + 4].copy_from_slice(&x.0)
251   }
252 
unpack(&self) -> Vec3T253   pub fn unpack(&self) -> Vec3T {
254     Vec3T {
255       x: self.x(),
256       y: self.y(),
257       z: self.z(),
258       test1: self.test1(),
259       test2: self.test2(),
260       test3: self.test3().unpack(),
261     }
262   }
263 }
264 
265 #[derive(Debug, Clone, PartialEq, Default)]
266 pub struct Vec3T {
267   pub x: f32,
268   pub y: f32,
269   pub z: f32,
270   pub test1: f64,
271   pub test2: Color,
272   pub test3: TestT,
273 }
274 impl Vec3T {
pack(&self) -> Vec3275   pub fn pack(&self) -> Vec3 {
276     Vec3::new(
277       self.x,
278       self.y,
279       self.z,
280       self.test1,
281       self.test2,
282       &self.test3.pack(),
283     )
284   }
285 }
286 
287