open_timeline_core/
timeline_view.rs1use crate::{Entity, HasIdAndName, Name, OpenTimelineId};
8use serde::Serialize;
9
10#[derive(Serialize, Clone, Debug, PartialEq)]
14pub struct TimelineView {
15 id: OpenTimelineId,
17
18 name: Name,
20
21 entities: Option<Vec<Entity>>,
24}
25
26impl TimelineView {
27 pub fn from(id: OpenTimelineId, name: Name, entities: Option<Vec<Entity>>) -> Self {
29 Self { id, name, entities }
30 }
31
32 pub fn id(&self) -> &OpenTimelineId {
34 &self.id
35 }
36
37 pub fn name(&self) -> &Name {
39 &self.name
40 }
41
42 pub fn entities(&self) -> &Option<Vec<Entity>> {
44 &self.entities
45 }
46}
47
48impl HasIdAndName for TimelineView {
49 fn id(&self) -> Option<OpenTimelineId> {
50 Some(self.id)
51 }
52 fn set_id(&mut self, id: OpenTimelineId) {
53 self.id = id
54 }
55 fn name(&self) -> &Name {
56 &self.name
57 }
58 fn set_name(&mut self, name: Name) {
59 self.name = name
60 }
61}