1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
use crate::concurrent::broadcast::BroadcastTransmitError;
use crate::utils::{
bit_utils::is_power_of_two,
misc::CACHE_LINE_LENGTH,
types::{Index, I64_SIZE},
};
pub const TAIL_INTENT_COUNTER_OFFSET: Index = 0;
pub const TAIL_COUNTER_OFFSET: Index = TAIL_INTENT_COUNTER_OFFSET + I64_SIZE as Index;
pub const LATEST_COUNTER_OFFSET: Index = TAIL_COUNTER_OFFSET + I64_SIZE as Index;
pub const TRAILER_LENGTH: Index = CACHE_LINE_LENGTH * 2;
pub fn check_capacity(capacity: Index) -> Result<(), BroadcastTransmitError> {
if !is_power_of_two(capacity) {
Err(BroadcastTransmitError::NotPowerOfTwo(capacity))
} else {
Ok(())
}
}