use serde::{Deserialize, Serialize};
use crate::rules::measurements::Measurement;
pub const CLUSTER_NODE_COUNT: usize = 7;
pub const MAX_NODE_COUNT: usize = 100;
pub const MESSAGE_BUFFER_MAX_SIZE: usize = 1024;
pub const DESCRIPTIVE_LOG_ERROR_MAX_SIZE: usize = 512;
pub const MEASUREMENTS_MAX_COUNT: usize = 15;
pub const METADATA_MAX_SIZE: usize = 64;
pub const ADDRESSES_MAX_SIZE: usize = 256;
pub const MAX_QUEUED_MESSAGES: usize = 64;
pub const RULES_AMOUNT: usize = 4;
pub const CLUSTERS_PER_TRANSLATOR: usize = 4;
pub type SystemBufferVec = heapless::Vec<u8, MESSAGE_BUFFER_MAX_SIZE>;
pub type MeasurementsVec = heapless::Vec<Measurement, CLUSTER_NODE_COUNT>;
pub type AddressesBytesVec = heapless::Vec<u8, ADDRESSES_MAX_SIZE>;
pub type EncodedMetadataVec = heapless::Vec<u8, METADATA_MAX_SIZE>;
#[derive(Debug, Eq, PartialEq, Serialize, Deserialize, Clone)]
pub struct EncodedMetadata {
pub node: EncodedMetadataVec,
pub coordination: Option<EncodedMetadataVec>,
}
pub fn init_buffer() -> [u8; MESSAGE_BUFFER_MAX_SIZE] {
[0_u8; MESSAGE_BUFFER_MAX_SIZE]
}
pub fn init_system_vec() -> SystemBufferVec {
SystemBufferVec::new()
}
pub enum SystemError {
NotValidStrategyError,
}