#[non_exhaustive]
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
pub struct Track {
pub audio_properties: ::std::option::Option<crate::types::AudioProperties>,
pub codec: ::std::option::Option<crate::types::Codec>,
pub data_properties: ::std::option::Option<crate::types::DataProperties>,
pub duration: ::std::option::Option<f64>,
pub index: ::std::option::Option<i32>,
pub track_type: ::std::option::Option<crate::types::TrackType>,
pub video_properties: ::std::option::Option<crate::types::VideoProperties>,
}
impl Track {
pub fn audio_properties(&self) -> ::std::option::Option<&crate::types::AudioProperties> {
self.audio_properties.as_ref()
}
pub fn codec(&self) -> ::std::option::Option<&crate::types::Codec> {
self.codec.as_ref()
}
pub fn data_properties(&self) -> ::std::option::Option<&crate::types::DataProperties> {
self.data_properties.as_ref()
}
pub fn duration(&self) -> ::std::option::Option<f64> {
self.duration
}
pub fn index(&self) -> ::std::option::Option<i32> {
self.index
}
pub fn track_type(&self) -> ::std::option::Option<&crate::types::TrackType> {
self.track_type.as_ref()
}
pub fn video_properties(&self) -> ::std::option::Option<&crate::types::VideoProperties> {
self.video_properties.as_ref()
}
}
impl Track {
pub fn builder() -> crate::types::builders::TrackBuilder {
crate::types::builders::TrackBuilder::default()
}
}
#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
#[non_exhaustive]
pub struct TrackBuilder {
pub(crate) audio_properties: ::std::option::Option<crate::types::AudioProperties>,
pub(crate) codec: ::std::option::Option<crate::types::Codec>,
pub(crate) data_properties: ::std::option::Option<crate::types::DataProperties>,
pub(crate) duration: ::std::option::Option<f64>,
pub(crate) index: ::std::option::Option<i32>,
pub(crate) track_type: ::std::option::Option<crate::types::TrackType>,
pub(crate) video_properties: ::std::option::Option<crate::types::VideoProperties>,
}
impl TrackBuilder {
pub fn audio_properties(mut self, input: crate::types::AudioProperties) -> Self {
self.audio_properties = ::std::option::Option::Some(input);
self
}
pub fn set_audio_properties(mut self, input: ::std::option::Option<crate::types::AudioProperties>) -> Self {
self.audio_properties = input;
self
}
pub fn get_audio_properties(&self) -> &::std::option::Option<crate::types::AudioProperties> {
&self.audio_properties
}
pub fn codec(mut self, input: crate::types::Codec) -> Self {
self.codec = ::std::option::Option::Some(input);
self
}
pub fn set_codec(mut self, input: ::std::option::Option<crate::types::Codec>) -> Self {
self.codec = input;
self
}
pub fn get_codec(&self) -> &::std::option::Option<crate::types::Codec> {
&self.codec
}
pub fn data_properties(mut self, input: crate::types::DataProperties) -> Self {
self.data_properties = ::std::option::Option::Some(input);
self
}
pub fn set_data_properties(mut self, input: ::std::option::Option<crate::types::DataProperties>) -> Self {
self.data_properties = input;
self
}
pub fn get_data_properties(&self) -> &::std::option::Option<crate::types::DataProperties> {
&self.data_properties
}
pub fn duration(mut self, input: f64) -> Self {
self.duration = ::std::option::Option::Some(input);
self
}
pub fn set_duration(mut self, input: ::std::option::Option<f64>) -> Self {
self.duration = input;
self
}
pub fn get_duration(&self) -> &::std::option::Option<f64> {
&self.duration
}
pub fn index(mut self, input: i32) -> Self {
self.index = ::std::option::Option::Some(input);
self
}
pub fn set_index(mut self, input: ::std::option::Option<i32>) -> Self {
self.index = input;
self
}
pub fn get_index(&self) -> &::std::option::Option<i32> {
&self.index
}
pub fn track_type(mut self, input: crate::types::TrackType) -> Self {
self.track_type = ::std::option::Option::Some(input);
self
}
pub fn set_track_type(mut self, input: ::std::option::Option<crate::types::TrackType>) -> Self {
self.track_type = input;
self
}
pub fn get_track_type(&self) -> &::std::option::Option<crate::types::TrackType> {
&self.track_type
}
pub fn video_properties(mut self, input: crate::types::VideoProperties) -> Self {
self.video_properties = ::std::option::Option::Some(input);
self
}
pub fn set_video_properties(mut self, input: ::std::option::Option<crate::types::VideoProperties>) -> Self {
self.video_properties = input;
self
}
pub fn get_video_properties(&self) -> &::std::option::Option<crate::types::VideoProperties> {
&self.video_properties
}
pub fn build(self) -> crate::types::Track {
crate::types::Track {
audio_properties: self.audio_properties,
codec: self.codec,
data_properties: self.data_properties,
duration: self.duration,
index: self.index,
track_type: self.track_type,
video_properties: self.video_properties,
}
}
}