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