pub struct StreamClockDescriptor { /* private fields */ }Expand description
Citizen wrapper that carries a Clock as a self-describing stream/Clock
value.
The descriptor stores the clock in its encoded Expr form so it can move
across codec surfaces and the kernel object system, while still decoding
back to a Clock for clock math.
§Examples
use sim_kernel::Symbol;
use sim_lib_stream_clock::StreamClockDescriptor;
let descriptor = StreamClockDescriptor::frame(Symbol::new("audio"), 48_000)?;
let clock = descriptor.clock()?;
assert_eq!(clock.id(), &Symbol::new("audio"));Implementations§
Source§impl StreamClockDescriptor
impl StreamClockDescriptor
Sourcepub fn frame(id: Symbol, frames_per_second: u64) -> Result<Self>
pub fn frame(id: Symbol, frames_per_second: u64) -> Result<Self>
Builds a descriptor for a frame clock with the given id and rate.
Returns an error when frames_per_second is zero.
Sourcepub fn midi(id: Symbol, tpq: u32, tempo_map: TempoMap) -> Result<Self>
pub fn midi(id: Symbol, tpq: u32, tempo_map: TempoMap) -> Result<Self>
Builds a descriptor for a MIDI clock with the given id, resolution, and tempo map.
Returns an error when tpq is zero.
Sourcepub fn from_clock(clock: &Clock) -> Self
pub fn from_clock(clock: &Clock) -> Self
Builds a descriptor by encoding an existing Clock.
Sourcepub fn from_expr(expr: Expr) -> Result<Self>
pub fn from_expr(expr: Expr) -> Result<Self>
Builds a descriptor from an already-encoded clock Expr.
Returns an error when expr is not a valid stream clock encoding.
Trait Implementations§
Source§impl Citizen for StreamClockDescriptor
impl Citizen for StreamClockDescriptor
Source§fn citizen_symbol() -> Symbol
fn citizen_symbol() -> Symbol
The citizen’s
namespace/name class symbol.Source§fn citizen_version() -> u32
fn citizen_version() -> u32
The citizen’s encoding version.
Source§fn citizen_arity() -> usize
fn citizen_arity() -> usize
Number of constructor fields (excluding the version argument).
Source§fn citizen_fields() -> &'static [&'static str]
fn citizen_fields() -> &'static [&'static str]
The citizen’s field names, in constructor order.
Source§impl Clone for StreamClockDescriptor
impl Clone for StreamClockDescriptor
Source§fn clone(&self) -> StreamClockDescriptor
fn clone(&self) -> StreamClockDescriptor
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for StreamClockDescriptor
impl Debug for StreamClockDescriptor
Source§impl Default for StreamClockDescriptor
impl Default for StreamClockDescriptor
Source§impl Object for StreamClockDescriptor
impl Object for StreamClockDescriptor
Source§fn display(&self, cx: &mut Cx) -> Result<String>
fn display(&self, cx: &mut Cx) -> Result<String>
Render the object as a human-readable display string.
Source§fn header(&self) -> &ObjectHeader
fn header(&self) -> &ObjectHeader
Identity and trust header for the object; defaults to the shared
anonymous header.
Source§fn op(&self, _key: &OpKey) -> Option<&dyn Op>
fn op(&self, _key: &OpKey) -> Option<&dyn Op>
Resolve the operation registered under
key, if any.Source§impl ObjectCompat for StreamClockDescriptor
impl ObjectCompat for StreamClockDescriptor
Source§fn class(&self, cx: &mut Cx) -> Result<ClassRef>
fn class(&self, cx: &mut Cx) -> Result<ClassRef>
Class object this value belongs to; defaults to nil.
Source§fn as_expr(&self, cx: &mut Cx) -> Result<Expr>
fn as_expr(&self, cx: &mut Cx) -> Result<Expr>
Expression form of the object; defaults to an opaque extension node.
Source§fn as_object_encoder(&self) -> Option<&dyn ObjectEncode>
fn as_object_encoder(&self) -> Option<&dyn ObjectEncode>
Object-encoder view, if the object encodes other objects.
Source§fn as_callable(&self) -> Option<&dyn Callable>
fn as_callable(&self) -> Option<&dyn Callable>
Callable view, if the object can be invoked.
Source§fn as_read_constructor(&self) -> Option<&dyn ReadConstructor>
fn as_read_constructor(&self) -> Option<&dyn ReadConstructor>
Read-constructor view, if the object decodes data forms.
Source§fn as_number_domain(&self) -> Option<&(dyn NumberDomain + 'static)>
fn as_number_domain(&self) -> Option<&(dyn NumberDomain + 'static)>
Number-domain view, if the object is a number domain.
Source§fn as_number_value(&self) -> Option<&dyn NumberValue>
fn as_number_value(&self) -> Option<&dyn NumberValue>
Number-value view, if the object is a domain number.
Source§fn as_eval_fabric(&self) -> Option<&dyn EvalFabric>
fn as_eval_fabric(&self) -> Option<&dyn EvalFabric>
Eval-fabric view, if the object is a distributed eval surface.
Source§fn as_sequence(&self) -> Option<&dyn Sequence>
fn as_sequence(&self) -> Option<&dyn Sequence>
Sequence view, if the object is a sequence.
Source§fn as_list(&self) -> Option<&(dyn ListValue + 'static)>
fn as_list(&self) -> Option<&(dyn ListValue + 'static)>
List view, if the object is a list value.
Source§fn as_table_impl(&self) -> Option<&(dyn Table + 'static)>
fn as_table_impl(&self) -> Option<&(dyn Table + 'static)>
Table-implementation view, if the object is a table.
Source§fn as_dir(&self) -> Option<&(dyn Dir + 'static)>
fn as_dir(&self) -> Option<&(dyn Dir + 'static)>
Directory view, if the object is a directory.
Source§fn truth(&self, _cx: &mut Cx) -> Result<bool, Error>
fn truth(&self, _cx: &mut Cx) -> Result<bool, Error>
Truthiness of the object; defaults to true.
Source§impl ObjectEncode for StreamClockDescriptor
impl ObjectEncode for StreamClockDescriptor
Source§fn object_encoding(&self, _cx: &mut Cx) -> Result<ObjectEncoding>
fn object_encoding(&self, _cx: &mut Cx) -> Result<ObjectEncoding>
Returns the
ObjectEncoding this object should be rendered as.Source§impl PartialEq for StreamClockDescriptor
impl PartialEq for StreamClockDescriptor
Source§fn eq(&self, other: &StreamClockDescriptor) -> bool
fn eq(&self, other: &StreamClockDescriptor) -> bool
Tests for
self and other values to be equal, and is used by ==.impl StructuralPartialEq for StreamClockDescriptor
Auto Trait Implementations§
impl Freeze for StreamClockDescriptor
impl RefUnwindSafe for StreamClockDescriptor
impl Send for StreamClockDescriptor
impl Sync for StreamClockDescriptor
impl Unpin for StreamClockDescriptor
impl UnsafeUnpin for StreamClockDescriptor
impl UnwindSafe for StreamClockDescriptor
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
Mutably borrows from an owned value. Read more