pub struct Timeline {
pub library_id: String,
pub streamer_id: String,
pub name: String,
pub revision: u32,
pub entries: Vec<ShotEntry>,
pub sort_order: u32,
pub id: TimelineId,
}Expand description
A named, reusable timeline in a shared definition library.
Like an OTIO Track, entries is an ordered sequence of shot appearances.
A Shot is the reusable source definition; any number of entries may reference
it, and every entry owns its direction and capture parameters independently.
shot_index is an authored production label, not a competing sort key.
Fields§
§library_id: StringShared definition scope. Empty on legacy rows and interpreted as the default shared library.
streamer_id: StringLegacy provenance retained for wire and persisted-row compatibility. The active stream is supplied only when a RecordingJob starts.
name: String§revision: u32Immutable-program revision. Editing the timeline advances this value;
recording it does not. Legacy rows stored this as version.
entries: Vec<ShotEntry>Ordered shot appearances. They project to OTIO Clips only at the
interchange boundary. Legacy persistence rows used clips or cues.
sort_order: u32§id: TimelineIdImplementations§
Source§impl Timeline
impl Timeline
Sourcepub fn legacy_default_id(library_id: &str) -> String
pub fn legacy_default_id(library_id: &str) -> String
Historic identity used by the retired automatic shot-list workflow. Kept only so persisted rows and their references can be reconciled.
pub fn has_legacy_default_identity(&self) -> bool
pub fn has_legacy_default_name(&self) -> bool
pub fn effective_library_id(&self) -> &str
pub fn next_revision(&self) -> u32
Sourcepub fn normalize_entries(&mut self)
pub fn normalize_entries(&mut self)
Normalize legacy memberships into ordered ShotEntry instances. A legacy
Both membership becomes two independently addressable entries, while
repeated references to the same Shot are deliberately preserved.
Sourcepub fn backfill_entry_parameters(&mut self, shots: &[Shot]) -> bool
pub fn backfill_entry_parameters(&mut self, shots: &[Shot]) -> bool
Materialize every legacy optional entry value from its referenced Shot. Once this returns true, later Shot-default edits cannot leak across timelines.
pub fn add_entry(&mut self, shot_id: &str, direction: ShotEntryMode)
pub fn add_shot_entry(&mut self, shot: &Shot, direction: ShotEntryMode)
pub fn add_shot_entry_instance( &mut self, shot: &Shot, direction: ShotDirection, entry_id: impl Into<String>, )
pub fn remove_entry(&mut self, entry_id: &str)
pub fn set_entry_direction(&mut self, entry_id: &str, direction: ShotDirection)
pub fn capture_count(&self) -> usize
Trait Implementations§
Source§impl AnyItem for Timeline
impl AnyItem for Timeline
Source§fn entity_type(&self) -> &'static str
fn entity_type(&self) -> &'static str
Source§fn server_owner(&self) -> Option<&str>
fn server_owner(&self) -> Option<&str>
#[server_owned] field value, if this item has one.Source§impl<'de> Deserialize<'de> for Timeline
impl<'de> Deserialize<'de> for Timeline
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl Eventable for Timeline
impl Eventable for Timeline
Source§const ENTITY_NAME_STATIC: &'static str = "Timeline"
const ENTITY_NAME_STATIC: &'static str = "Timeline"
entity_type() from AnyItem for instance access).Source§fn entity_name_static() -> &'static str
fn entity_name_static() -> &'static str
Source§fn ingest_buffer_policy() -> IngestBufferPolicy
fn ingest_buffer_policy() -> IngestBufferPolicy
Source§impl IdFor<Timeline> for TimelineId
impl IdFor<Timeline> for TimelineId
Source§impl TS for Timeline
impl TS for Timeline
Source§type WithoutGenerics = Timeline
type WithoutGenerics = Timeline
WithoutGenerics should just be Self.
If the type does have generic parameters, then all generic parameters must be replaced with
a dummy type, e.g ts_rs::Dummy or (). The only requirement for these dummy types is that
EXPORT_TO must be None. Read moreSource§type OptionInnerType = Timeline
type OptionInnerType = Timeline
std::option::Option<T>, then this associated type is set to T.
All other implementations of TS should set this type to Self instead.Source§fn docs() -> Option<String>
fn docs() -> Option<String>
TS is derived, docs are
automatically read from your doc comments or #[doc = ".."] attributesSource§fn decl_concrete(cfg: &Config) -> String
fn decl_concrete(cfg: &Config) -> String
TS::decl().
If this type is not generic, then this function is equivalent to TS::decl().Source§fn decl(cfg: &Config) -> String
fn decl(cfg: &Config) -> String
type User = { user_id: number, ... }.
This function will panic if the type has no declaration. Read moreSource§fn inline(cfg: &Config) -> String
fn inline(cfg: &Config) -> String
{ user_id: number }.
This function will panic if the type cannot be inlined.Source§fn inline_flattened(cfg: &Config) -> String
fn inline_flattened(cfg: &Config) -> String
Source§fn visit_generics(v: &mut impl TypeVisitor)where
Self: 'static,
fn visit_generics(v: &mut impl TypeVisitor)where
Self: 'static,
Source§fn output_path() -> Option<PathBuf>
fn output_path() -> Option<PathBuf>
T should be exported, relative to the output directory.
The returned path does not include any base directory. Read moreSource§fn visit_dependencies(v: &mut impl TypeVisitor)where
Self: 'static,
fn visit_dependencies(v: &mut impl TypeVisitor)where
Self: 'static,
Source§fn dependencies(cfg: &Config) -> Vec<Dependency>where
Self: 'static,
fn dependencies(cfg: &Config) -> Vec<Dependency>where
Self: 'static,
Source§fn export(cfg: &Config) -> Result<(), ExportError>where
Self: 'static,
fn export(cfg: &Config) -> Result<(), ExportError>where
Self: 'static,
TS::export_all. Read moreSource§fn export_all(cfg: &Config) -> Result<(), ExportError>where
Self: 'static,
fn export_all(cfg: &Config) -> Result<(), ExportError>where
Self: 'static,
TS::export. Read moreSource§fn export_to_string(cfg: &Config) -> Result<String, ExportError>where
Self: 'static,
fn export_to_string(cfg: &Config) -> Result<String, ExportError>where
Self: 'static,
Auto Trait Implementations§
impl Freeze for Timeline
impl RefUnwindSafe for Timeline
impl Send for Timeline
impl Sync for Timeline
impl Unpin for Timeline
impl UnsafeUnpin for Timeline
impl UnwindSafe for Timeline
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
impl<T> CellValue for T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more