miden_stdlib_sys/intrinsics/
mod.rs

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