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::size()); 54 dst.copy_from_slice(src); 55 } 56 } 57 58 impl<'a> flatbuffers::Verifiable for Vec3 { 59 #[inline] run_verifier( v: &mut flatbuffers::Verifier, pos: usize ) -> Result<(), flatbuffers::InvalidFlatbuffer>60 fn run_verifier( 61 v: &mut flatbuffers::Verifier, pos: usize 62 ) -> Result<(), flatbuffers::InvalidFlatbuffer> { 63 use self::flatbuffers::Verifiable; 64 v.in_buffer::<Self>(pos) 65 } 66 } 67 68 impl<'a> Vec3 { 69 #[allow(clippy::too_many_arguments)] new( x: f32, y: f32, z: f32, test1: f64, test2: Color, test3: &Test, ) -> Self70 pub fn new( 71 x: f32, 72 y: f32, 73 z: f32, 74 test1: f64, 75 test2: Color, 76 test3: &Test, 77 ) -> Self { 78 let mut s = Self([0; 32]); 79 s.set_x(x); 80 s.set_y(y); 81 s.set_z(z); 82 s.set_test1(test1); 83 s.set_test2(test2); 84 s.set_test3(test3); 85 s 86 } 87 get_fully_qualified_name() -> &'static str88 pub const fn get_fully_qualified_name() -> &'static str { 89 "MyGame.Example.Vec3" 90 } 91 x(&self) -> f3292 pub fn x(&self) -> f32 { 93 let mut mem = core::mem::MaybeUninit::<<f32 as EndianScalar>::Scalar>::uninit(); 94 // Safety: 95 // Created from a valid Table for this object 96 // Which contains a valid value in this slot 97 EndianScalar::from_little_endian(unsafe { 98 core::ptr::copy_nonoverlapping( 99 self.0[0..].as_ptr(), 100 mem.as_mut_ptr() as *mut u8, 101 core::mem::size_of::<<f32 as EndianScalar>::Scalar>(), 102 ); 103 mem.assume_init() 104 }) 105 } 106 set_x(&mut self, x: f32)107 pub fn set_x(&mut self, x: f32) { 108 let x_le = x.to_little_endian(); 109 // Safety: 110 // Created from a valid Table for this object 111 // Which contains a valid value in this slot 112 unsafe { 113 core::ptr::copy_nonoverlapping( 114 &x_le as *const _ as *const u8, 115 self.0[0..].as_mut_ptr(), 116 core::mem::size_of::<<f32 as EndianScalar>::Scalar>(), 117 ); 118 } 119 } 120 y(&self) -> f32121 pub fn y(&self) -> f32 { 122 let mut mem = core::mem::MaybeUninit::<<f32 as EndianScalar>::Scalar>::uninit(); 123 // Safety: 124 // Created from a valid Table for this object 125 // Which contains a valid value in this slot 126 EndianScalar::from_little_endian(unsafe { 127 core::ptr::copy_nonoverlapping( 128 self.0[4..].as_ptr(), 129 mem.as_mut_ptr() as *mut u8, 130 core::mem::size_of::<<f32 as EndianScalar>::Scalar>(), 131 ); 132 mem.assume_init() 133 }) 134 } 135 set_y(&mut self, x: f32)136 pub fn set_y(&mut self, x: f32) { 137 let x_le = x.to_little_endian(); 138 // Safety: 139 // Created from a valid Table for this object 140 // Which contains a valid value in this slot 141 unsafe { 142 core::ptr::copy_nonoverlapping( 143 &x_le as *const _ as *const u8, 144 self.0[4..].as_mut_ptr(), 145 core::mem::size_of::<<f32 as EndianScalar>::Scalar>(), 146 ); 147 } 148 } 149 z(&self) -> f32150 pub fn z(&self) -> f32 { 151 let mut mem = core::mem::MaybeUninit::<<f32 as EndianScalar>::Scalar>::uninit(); 152 // Safety: 153 // Created from a valid Table for this object 154 // Which contains a valid value in this slot 155 EndianScalar::from_little_endian(unsafe { 156 core::ptr::copy_nonoverlapping( 157 self.0[8..].as_ptr(), 158 mem.as_mut_ptr() as *mut u8, 159 core::mem::size_of::<<f32 as EndianScalar>::Scalar>(), 160 ); 161 mem.assume_init() 162 }) 163 } 164 set_z(&mut self, x: f32)165 pub fn set_z(&mut self, x: f32) { 166 let x_le = x.to_little_endian(); 167 // Safety: 168 // Created from a valid Table for this object 169 // Which contains a valid value in this slot 170 unsafe { 171 core::ptr::copy_nonoverlapping( 172 &x_le as *const _ as *const u8, 173 self.0[8..].as_mut_ptr(), 174 core::mem::size_of::<<f32 as EndianScalar>::Scalar>(), 175 ); 176 } 177 } 178 test1(&self) -> f64179 pub fn test1(&self) -> f64 { 180 let mut mem = core::mem::MaybeUninit::<<f64 as EndianScalar>::Scalar>::uninit(); 181 // Safety: 182 // Created from a valid Table for this object 183 // Which contains a valid value in this slot 184 EndianScalar::from_little_endian(unsafe { 185 core::ptr::copy_nonoverlapping( 186 self.0[16..].as_ptr(), 187 mem.as_mut_ptr() as *mut u8, 188 core::mem::size_of::<<f64 as EndianScalar>::Scalar>(), 189 ); 190 mem.assume_init() 191 }) 192 } 193 set_test1(&mut self, x: f64)194 pub fn set_test1(&mut self, x: f64) { 195 let x_le = x.to_little_endian(); 196 // Safety: 197 // Created from a valid Table for this object 198 // Which contains a valid value in this slot 199 unsafe { 200 core::ptr::copy_nonoverlapping( 201 &x_le as *const _ as *const u8, 202 self.0[16..].as_mut_ptr(), 203 core::mem::size_of::<<f64 as EndianScalar>::Scalar>(), 204 ); 205 } 206 } 207 test2(&self) -> Color208 pub fn test2(&self) -> Color { 209 let mut mem = core::mem::MaybeUninit::<<Color as EndianScalar>::Scalar>::uninit(); 210 // Safety: 211 // Created from a valid Table for this object 212 // Which contains a valid value in this slot 213 EndianScalar::from_little_endian(unsafe { 214 core::ptr::copy_nonoverlapping( 215 self.0[24..].as_ptr(), 216 mem.as_mut_ptr() as *mut u8, 217 core::mem::size_of::<<Color as EndianScalar>::Scalar>(), 218 ); 219 mem.assume_init() 220 }) 221 } 222 set_test2(&mut self, x: Color)223 pub fn set_test2(&mut self, x: Color) { 224 let x_le = x.to_little_endian(); 225 // Safety: 226 // Created from a valid Table for this object 227 // Which contains a valid value in this slot 228 unsafe { 229 core::ptr::copy_nonoverlapping( 230 &x_le as *const _ as *const u8, 231 self.0[24..].as_mut_ptr(), 232 core::mem::size_of::<<Color as EndianScalar>::Scalar>(), 233 ); 234 } 235 } 236 test3(&self) -> &Test237 pub fn test3(&self) -> &Test { 238 // Safety: 239 // Created from a valid Table for this object 240 // Which contains a valid struct in this slot 241 unsafe { &*(self.0[26..].as_ptr() as *const Test) } 242 } 243 244 #[allow(clippy::identity_op)] set_test3(&mut self, x: &Test)245 pub fn set_test3(&mut self, x: &Test) { 246 self.0[26..26 + 4].copy_from_slice(&x.0) 247 } 248 unpack(&self) -> Vec3T249 pub fn unpack(&self) -> Vec3T { 250 Vec3T { 251 x: self.x(), 252 y: self.y(), 253 z: self.z(), 254 test1: self.test1(), 255 test2: self.test2(), 256 test3: self.test3().unpack(), 257 } 258 } 259 } 260 261 #[derive(Debug, Clone, PartialEq, Default)] 262 pub struct Vec3T { 263 pub x: f32, 264 pub y: f32, 265 pub z: f32, 266 pub test1: f64, 267 pub test2: Color, 268 pub test3: TestT, 269 } 270 impl Vec3T { pack(&self) -> Vec3271 pub fn pack(&self) -> Vec3 { 272 Vec3::new( 273 self.x, 274 self.y, 275 self.z, 276 self.test1, 277 self.test2, 278 &self.test3.pack(), 279 ) 280 } 281 } 282 283