miden_stdlib_sys/intrinsics/
mod.rs1use core::ops::{Deref, DerefMut};
2
3pub(crate) mod felt;
4pub(crate) mod word;
5
6#[repr(C, align(32))]
7pub struct WordAligned<T>(T);
8impl<T> WordAligned<T> {
9 #[inline(always)]
10 pub const fn new(t: T) -> Self {
11 Self(t)
12 }
13
14 #[inline(always)]
15 pub fn into_inner(self) -> T {
16 self.0
17 }
18}
19impl<T> From<T> for WordAligned<T> {
20 #[inline(always)]
21 fn from(t: T) -> Self {
22 Self(t)
23 }
24}
25impl<T> AsRef<T> for WordAligned<T> {
26 #[inline(always)]
27 fn as_ref(&self) -> &T {
28 &self.0
29 }
30}
31impl<T> AsMut<T> for WordAligned<T> {
32 #[inline(always)]
33 fn as_mut(&mut self) -> &mut T {
34 &mut self.0
35 }
36}
37impl<T> Deref for WordAligned<T> {
38 type Target = T;
39
40 #[inline(always)]
41 fn deref(&self) -> &Self::Target {
42 &self.0
43 }
44}
45impl<T> DerefMut for WordAligned<T> {
46 #[inline(always)]
47 fn deref_mut(&mut self) -> &mut Self::Target {
48 &mut self.0
49 }
50}