use crate::{Entity, HasIdAndName, Name, OpenTimelineId};
use serde::Serialize;
#[derive(Serialize, Clone, Debug, PartialEq)]
pub struct TimelineView {
id: OpenTimelineId,
name: Name,
entities: Option<Vec<Entity>>,
}
impl TimelineView {
pub fn from(id: OpenTimelineId, name: Name, entities: Option<Vec<Entity>>) -> Self {
Self { id, name, entities }
}
pub fn id(&self) -> &OpenTimelineId {
&self.id
}
pub fn name(&self) -> &Name {
&self.name
}
pub fn entities(&self) -> &Option<Vec<Entity>> {
&self.entities
}
}
impl HasIdAndName for TimelineView {
fn id(&self) -> Option<OpenTimelineId> {
Some(self.id)
}
fn set_id(&mut self, id: OpenTimelineId) {
self.id = id
}
fn name(&self) -> &Name {
&self.name
}
fn set_name(&mut self, name: Name) {
self.name = name
}
}