miden_stdlib_sys/intrinsics/
mod.rs

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