miden_stdlib_sys/intrinsics/
mod.rs

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