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