miden_stdlib_sys/intrinsics/
mod.rs1use 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}