use super::{
character::Character,
flags::IntoScriptFlags,
traits::{IntoCharacter, IntoScript},
};
#[derive(Clone, Debug, Default, Hash, PartialEq, Eq, PartialOrd, Ord)]
pub struct CharacterBuf {
pub vec: Vec<Character>,
}
impl CharacterBuf {
pub fn new() -> Self {
CharacterBuf { vec: Vec::new() }
}
pub fn with_capacity(capacity: usize) -> Self {
CharacterBuf {
vec: Vec::with_capacity(capacity),
}
}
pub fn push<T: IntoCharacter>(&mut self, item: T) {
self.vec.push(item.into_character());
}
pub fn append<T: IntoScript>(&mut self, item: T, flags: IntoScriptFlags) {
item.append_script_to(self, flags);
}
}