pub struct Format {
pub id: String,
pub metadata: InfoRecord,
}Expand description
Denotes one alternative representation of a media item.
A format is an identity together with an open record of what an extractor observed about it. It fixes no schema: where its bytes rest, what streams it carries, and every quantity selection compares are observations, not fields. An extractor states what it saw, and an interpreter that locates bytes by other means simply states other observations.
Fields§
§id: StringIdentifies the format within one media description.
metadata: InfoRecordPreserves everything the extractor observed about the format.
Implementations§
Source§impl Format
impl Format
Sourcepub fn new(id: String, metadata: InfoRecord) -> Self
pub fn new(id: String, metadata: InfoRecord) -> Self
Constructs a new Format.
Trait Implementations§
Source§impl FormatDescriptionAlg for Format
impl FormatDescriptionAlg for Format
Source§fn format_identity(&self) -> &str
fn format_identity(&self) -> &str
Source§fn format_extension(&self) -> Option<&str>
fn format_extension(&self) -> Option<&str>
Source§fn format_streams(&self) -> Option<MediaStreams>
fn format_streams(&self) -> Option<MediaStreams>
Source§fn format_quality(&self) -> Option<&str>
fn format_quality(&self) -> Option<&str>
Source§fn format_height(&self) -> Option<u64>
fn format_height(&self) -> Option<u64>
Source§fn format_width(&self) -> Option<u64>
fn format_width(&self) -> Option<u64>
Source§fn format_bitrate(&self) -> Option<u64>
fn format_bitrate(&self) -> Option<u64>
Source§fn format_size(&self) -> Option<u64>
fn format_size(&self) -> Option<u64>
Source§fn format_codecs(&self) -> Option<&str>
fn format_codecs(&self) -> Option<&str>
impl StructuralPartialEq for Format
Auto Trait Implementations§
impl Freeze for Format
impl RefUnwindSafe for Format
impl Send for Format
impl Sync for Format
impl Unpin for Format
impl UnsafeUnpin for Format
impl UnwindSafe for Format
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<This> FormatLabelExt<This> for Thiswhere
This: FormatDescriptionAlg,
impl<This> FormatLabelExt<This> for Thiswhere
This: FormatDescriptionAlg,
Source§fn format_label(&self) -> String
fn format_label(&self) -> String
States the format in aligned columns, so alternatives are compared by reading down.
Source§fn format_observations(&self) -> String
fn format_observations(&self) -> String
States what distinguishes the format from an alternative carrying the same streams.
Source§fn format_stated_quality(&self) -> Option<String>
fn format_stated_quality(&self) -> Option<String>
States the quality the extractor named, or the picture size standing in for it.
Source§impl<This> GaugeLaws<This> for This
impl<This> GaugeLaws<This> for This
Source§fn gauge_laws(&self) -> Result<(), Error>
fn gauge_laws(&self) -> Result<(), Error>
Checks that a gauge states a share without claiming more resolution than it has.
The laws checked are:
- a gauge occupies its stated width whatever share it states;
- no share is stated as filled before it is reached, and none is stated twice;
- nothing stated is nothing filled, and everything stated fills the whole track;
- the stated text occupies exactly one cell per counted cell.
§Errors
Returns the first violated law.
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 moreSource§impl<This> IntoExt<This> for This
impl<This> IntoExt<This> for This
Source§fn to<R>(self) -> Rwhere
This: Into<R>,
fn to<R>(self) -> Rwhere
This: Into<R>,
A version of Into::into function that can be used to explicitly specify the target
conversion type.
use alux_sdk::*;
// `Into` requires context to infer the type,
let _: i64 = Into::into(42_i8);
// The opposite `From` requires context to infer the type,
let _: i64 = From::from(42_i8);
// `.to()` can be used in the same way as a postfix function (the same as `.into()`),
let _: i64 = 42_i8.to();
// but also with the type specified explicitly.
let _ = 42_i8.to::<i64>();
// Especially useful to chain multiple conversions inline.
let _: i64 = 42_i8.to::<i16>().to::<i32>().into();Source§impl<This> IntoIteratorExt<This> for This
impl<This> IntoIteratorExt<This> for This
Source§fn try_collect_vec<T, E>(self) -> Result<Vec<T>, E>
fn try_collect_vec<T, E>(self) -> Result<Vec<T>, E>
A variant of the try_collect and collect_vec combined function from the Itertools
library. The materialized value is a Vec inside a Result object.
Returns the first error without collecting later values.
use alux_sdk::*;
let values = [Ok::<_, &str>(1), Ok(2), Ok(3)]
.into_iter()
.try_collect_vec();
assert_eq!(values, Ok(vec![1, 2, 3]));Source§fn collect_exact<T>(self, n: usize) -> Option<Vec<T>>where
This: Iterator<Item = T>,
fn collect_exact<T>(self, n: usize) -> Option<Vec<T>>where
This: Iterator<Item = T>,
Takes exactly n elements from the iterator.
Returns Some(Vec<T>) if the iterator yields exactly n elements,
otherwise returns None.
use alux_sdk::*;
let v = [1, 2, 3];
assert_eq!(v.iter().copied().collect_exact(3), Some(vec![1, 2, 3]));
assert_eq!(v.iter().copied().collect_exact(4), None);
assert_eq!(v.iter().copied().collect_exact(2), None);Source§fn try_unzip<A, B, E>(self) -> Result<(Vec<A>, Vec<B>), E>
fn try_unzip<A, B, E>(self) -> Result<(Vec<A>, Vec<B>), E>
Efficiently splits an iterator of Result<(A, B), E> into two Vecs, short-circuiting on error.
Consumes the iterator, collecting all A elements into one vector and all B elements into another,
without first allocating an intermediate vector of tuples. Returns the tuple (Vec<A>, Vec<B>) on success,
or the first error encountered.
use alux_sdk::*;
let input = vec![Ok((1, "x")), Ok((2, "y"))];
let (xs, ys) = input.try_unzip::<_, _, ()>().unwrap();
assert_eq!(xs, vec![1, 2]);
assert_eq!(ys, vec!["x", "y"]);