pub trait Track{
type Part: Part;
type Metadata: Copy;
type TrackInfo;
// Required methods
fn meta(&self) -> Self::Metadata;
fn parts(&self) -> Vec<Self::Part>;
fn decode_meta(data: &[u8], offset: &mut usize) -> Option<Self::Metadata>;
fn encode_meta(&self, data: &mut Vec<u8>);
fn from_data(metadata: Self::Metadata, parts: Vec<Self::Part>) -> Self;
fn decode_track_code(
track_code: &str,
) -> Option<(String, Self::TrackInfo, Vec<u8>)>;
fn encode_track_code(
name: String,
info: Self::TrackInfo,
track_data: &[u8],
) -> Option<String>;
}Required Associated Types§
Required Methods§
fn meta(&self) -> Self::Metadata
fn parts(&self) -> Vec<Self::Part>
fn decode_meta(data: &[u8], offset: &mut usize) -> Option<Self::Metadata>
fn encode_meta(&self, data: &mut Vec<u8>)
fn from_data(metadata: Self::Metadata, parts: Vec<Self::Part>) -> Self
fn decode_track_code( track_code: &str, ) -> Option<(String, Self::TrackInfo, Vec<u8>)>
fn encode_track_code( name: String, info: Self::TrackInfo, track_data: &[u8], ) -> Option<String>
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".