miden_stdlib_sys/intrinsics/
mod.rs

1use 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}