use crate::concurrent::broadcast::BroadcastTransmitError;
use crate::utils::bit_utils::is_power_of_two;
use crate::utils::misc::CACHE_LINE_LENGTH;
use crate::utils::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(())
}
}