Line data Source code
1 : pub trait Alignment: std::marker::Unpin + 'static {
2 : /// Returns the required alignments.
3 : fn align(&self) -> usize;
4 : }
5 :
6 : /// Alignment at compile time.
7 : #[derive(Debug)]
8 : pub struct ConstAlign<const A: usize>;
9 :
10 : impl<const A: usize> Alignment for ConstAlign<A> {
11 1999890 : fn align(&self) -> usize {
12 1999890 : A
13 1999890 : }
14 : }
15 :
16 : /// Alignment at run time.
17 : #[derive(Debug)]
18 : pub struct RuntimeAlign {
19 : align: usize,
20 : }
21 :
22 : impl Alignment for RuntimeAlign {
23 0 : fn align(&self) -> usize {
24 0 : self.align
25 0 : }
26 : }
|