Trait rustradio::Sample

source ·
pub trait Sample {
    type Type;

    // Required methods
    fn size() -> usize;
    fn parse(data: &[u8]) -> Result<Self::Type>;
    fn serialize(&self) -> Vec<u8>;
}
Expand description

A trait all sample types must implement.

Required Associated Types§

source

type Type

The type of the sample.

Required Methods§

source

fn size() -> usize

The serialized size of one sample.

source

fn parse(data: &[u8]) -> Result<Self::Type>

Parse one sample.

source

fn serialize(&self) -> Vec<u8>

Serialize one sample.

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl Sample for i32

§

type Type = i32

source§

fn size() -> usize

source§

fn parse(data: &[u8]) -> Result<Self::Type>

source§

fn serialize(&self) -> Vec<u8>

source§

impl Sample for u8

§

type Type = u8

source§

fn size() -> usize

source§

fn parse(data: &[u8]) -> Result<Self::Type>

source§

fn serialize(&self) -> Vec<u8>

source§

impl Sample for u32

§

type Type = u32

source§

fn size() -> usize

source§

fn parse(data: &[u8]) -> Result<Self::Type>

source§

fn serialize(&self) -> Vec<u8>

source§

impl Sample for String

§

type Type = String

source§

fn size() -> usize

source§

fn parse(_data: &[u8]) -> Result<Self::Type>

source§

fn serialize(&self) -> Vec<u8>

source§

impl Sample for Complex<i32>

§

type Type = Complex<i32>

source§

fn size() -> usize

source§

fn parse(data: &[u8]) -> Result<Self::Type>

source§

fn serialize(&self) -> Vec<u8>

Implementors§

source§

impl Sample for rustradio::Complex

source§

impl Sample for Float

§

type Type = f32