use std::collections::HashMap;
#[cfg(feature = "serde")]
use serde::{Deserialize, Serialize};
use crate::protocol::{Enum, Message, MessageId};
#[derive(Debug, Clone)]
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
pub struct Dialect {
name: String,
version: Option<u8>,
dialect: Option<u8>,
messages: HashMap<MessageId, Message>,
enums: HashMap<String, Enum>,
}
impl Dialect {
pub fn new(
name: String,
version: Option<u8>,
dialect: Option<u8>,
messages: HashMap<MessageId, Message>,
enums: HashMap<String, Enum>,
) -> Self {
Self {
name,
version,
dialect,
messages,
enums,
}
}
pub fn name(&self) -> &str {
&self.name
}
pub fn version(&self) -> Option<u8> {
self.version
}
pub fn dialect(&self) -> Option<u8> {
self.dialect
}
pub fn messages(&self) -> &HashMap<MessageId, Message> {
&self.messages
}
pub fn enums(&self) -> &HashMap<String, Enum> {
&self.enums
}
}