Trait redb::RedbValue

source ·
pub trait RedbValue: Debug {
    type SelfType<'a>: Debug + 'a
       where Self: 'a;
    type AsBytes<'a>: AsRef<[u8]> + 'a
       where Self: 'a;

    // Required methods
    fn fixed_width() -> Option<usize>;
    fn from_bytes<'a>(data: &'a [u8]) -> Self::SelfType<'a>
       where Self: 'a;
    fn as_bytes<'a, 'b: 'a>(value: &'a Self::SelfType<'b>) -> Self::AsBytes<'a>
       where Self: 'a + 'b;
    fn type_name() -> TypeName;
}

Required Associated Types§

source

type SelfType<'a>: Debug + 'a where Self: 'a

SelfType<’a> must be the same type as Self with all lifetimes replaced with ’a

source

type AsBytes<'a>: AsRef<[u8]> + 'a where Self: 'a

Required Methods§

source

fn fixed_width() -> Option<usize>

Width of a fixed type, or None for variable width

source

fn from_bytes<'a>(data: &'a [u8]) -> Self::SelfType<'a>where Self: 'a,

Deserializes data Implementations may return a view over data, or an owned type

source

fn as_bytes<'a, 'b: 'a>(value: &'a Self::SelfType<'b>) -> Self::AsBytes<'a>where Self: 'a + 'b,

Serialize the value to a slice

source

fn type_name() -> TypeName

Globally unique identifier for this type

Implementations on Foreign Types§

source§

impl RedbValue for &[u8]

§

type SelfType<'a> where Self: 'a = &'a [u8]

§

type AsBytes<'a> where Self: 'a = &'a [u8]

source§

fn fixed_width() -> Option<usize>

source§

fn from_bytes<'a>(data: &'a [u8]) -> &'a [u8] where Self: 'a,

source§

fn as_bytes<'a, 'b: 'a>(value: &'a Self::SelfType<'b>) -> &'a [u8] where Self: 'a + 'b,

source§

fn type_name() -> TypeName

source§

impl RedbValue for u16

§

type SelfType<'a> = u16

§

type AsBytes<'a> where Self: 'a = [u8; 2]

source§

fn fixed_width() -> Option<usize>

source§

fn from_bytes<'a>(data: &'a [u8]) -> u16where Self: 'a,

source§

fn as_bytes<'a, 'b: 'a>(value: &'a Self::SelfType<'b>) -> [u8; 2]where Self: 'a + 'b,

source§

fn type_name() -> TypeName

source§

impl RedbValue for &str

§

type SelfType<'a> where Self: 'a = &'a str

§

type AsBytes<'a> where Self: 'a = &'a str

source§

fn fixed_width() -> Option<usize>

source§

fn from_bytes<'a>(data: &'a [u8]) -> &'a strwhere Self: 'a,

source§

fn as_bytes<'a, 'b: 'a>(value: &'a Self::SelfType<'b>) -> &'a strwhere Self: 'a + 'b,

source§

fn type_name() -> TypeName

source§

impl RedbValue for i128

§

type SelfType<'a> = i128

§

type AsBytes<'a> where Self: 'a = [u8; 16]

source§

fn fixed_width() -> Option<usize>

source§

fn from_bytes<'a>(data: &'a [u8]) -> i128where Self: 'a,

source§

fn as_bytes<'a, 'b: 'a>(value: &'a Self::SelfType<'b>) -> [u8; 16]where Self: 'a + 'b,

source§

fn type_name() -> TypeName

source§

impl<T0: RedbValue, T1: RedbValue, T2: RedbValue, T3: RedbValue> RedbValue for (T0, T1, T2, T3)

§

type SelfType<'a> where Self: 'a = (<T0 as RedbValue>::SelfType<'a>, <T1 as RedbValue>::SelfType<'a>, <T2 as RedbValue>::SelfType<'a>, <T3 as RedbValue>::SelfType<'a>)

§

type AsBytes<'a> where Self: 'a = Vec<u8, Global>

source§

fn fixed_width() -> Option<usize>

source§

fn from_bytes<'a>(data: &'a [u8]) -> Self::SelfType<'a>where Self: 'a,

source§

fn as_bytes<'a, 'b: 'a>(value: &'a Self::SelfType<'b>) -> Vec<u8>where Self: 'a + 'b,

source§

fn type_name() -> TypeName

source§

impl<T0: RedbValue, T1: RedbValue, T2: RedbValue> RedbValue for (T0, T1, T2)

§

type SelfType<'a> where Self: 'a = (<T0 as RedbValue>::SelfType<'a>, <T1 as RedbValue>::SelfType<'a>, <T2 as RedbValue>::SelfType<'a>)

§

type AsBytes<'a> where Self: 'a = Vec<u8, Global>

source§

fn fixed_width() -> Option<usize>

source§

fn from_bytes<'a>(data: &'a [u8]) -> Self::SelfType<'a>where Self: 'a,

source§

fn as_bytes<'a, 'b: 'a>(value: &'a Self::SelfType<'b>) -> Vec<u8>where Self: 'a + 'b,

source§

fn type_name() -> TypeName

source§

impl RedbValue for f64

§

type SelfType<'a> = f64

§

type AsBytes<'a> where Self: 'a = [u8; 8]

source§

fn fixed_width() -> Option<usize>

source§

fn from_bytes<'a>(data: &'a [u8]) -> f64where Self: 'a,

source§

fn as_bytes<'a, 'b: 'a>(value: &'a Self::SelfType<'b>) -> [u8; 8]where Self: 'a + 'b,

source§

fn type_name() -> TypeName

source§

impl<const N: usize> RedbValue for &[u8; N]

§

type SelfType<'a> where Self: 'a = &'a [u8; N]

§

type AsBytes<'a> where Self: 'a = &'a [u8; N]

source§

fn fixed_width() -> Option<usize>

source§

fn from_bytes<'a>(data: &'a [u8]) -> &'a [u8; N]where Self: 'a,

source§

fn as_bytes<'a, 'b: 'a>(value: &'a Self::SelfType<'b>) -> &'a [u8; N]where Self: 'a + 'b,

source§

fn type_name() -> TypeName

source§

impl<T0: RedbValue, T1: RedbValue, T2: RedbValue, T3: RedbValue, T4: RedbValue, T5: RedbValue, T6: RedbValue, T7: RedbValue, T8: RedbValue> RedbValue for (T0, T1, T2, T3, T4, T5, T6, T7, T8)

§

type SelfType<'a> where Self: 'a = (<T0 as RedbValue>::SelfType<'a>, <T1 as RedbValue>::SelfType<'a>, <T2 as RedbValue>::SelfType<'a>, <T3 as RedbValue>::SelfType<'a>, <T4 as RedbValue>::SelfType<'a>, <T5 as RedbValue>::SelfType<'a>, <T6 as RedbValue>::SelfType<'a>, <T7 as RedbValue>::SelfType<'a>, <T8 as RedbValue>::SelfType<'a>)

§

type AsBytes<'a> where Self: 'a = Vec<u8, Global>

source§

fn fixed_width() -> Option<usize>

source§

fn from_bytes<'a>(data: &'a [u8]) -> Self::SelfType<'a>where Self: 'a,

source§

fn as_bytes<'a, 'b: 'a>(value: &'a Self::SelfType<'b>) -> Vec<u8>where Self: 'a + 'b,

source§

fn type_name() -> TypeName

source§

impl<T0: RedbValue, T1: RedbValue, T2: RedbValue, T3: RedbValue, T4: RedbValue> RedbValue for (T0, T1, T2, T3, T4)

§

type SelfType<'a> where Self: 'a = (<T0 as RedbValue>::SelfType<'a>, <T1 as RedbValue>::SelfType<'a>, <T2 as RedbValue>::SelfType<'a>, <T3 as RedbValue>::SelfType<'a>, <T4 as RedbValue>::SelfType<'a>)

§

type AsBytes<'a> where Self: 'a = Vec<u8, Global>

source§

fn fixed_width() -> Option<usize>

source§

fn from_bytes<'a>(data: &'a [u8]) -> Self::SelfType<'a>where Self: 'a,

source§

fn as_bytes<'a, 'b: 'a>(value: &'a Self::SelfType<'b>) -> Vec<u8>where Self: 'a + 'b,

source§

fn type_name() -> TypeName

source§

impl RedbValue for i32

§

type SelfType<'a> = i32

§

type AsBytes<'a> where Self: 'a = [u8; 4]

source§

fn fixed_width() -> Option<usize>

source§

fn from_bytes<'a>(data: &'a [u8]) -> i32where Self: 'a,

source§

fn as_bytes<'a, 'b: 'a>(value: &'a Self::SelfType<'b>) -> [u8; 4]where Self: 'a + 'b,

source§

fn type_name() -> TypeName

source§

impl RedbValue for u64

§

type SelfType<'a> = u64

§

type AsBytes<'a> where Self: 'a = [u8; 8]

source§

fn fixed_width() -> Option<usize>

source§

fn from_bytes<'a>(data: &'a [u8]) -> u64where Self: 'a,

source§

fn as_bytes<'a, 'b: 'a>(value: &'a Self::SelfType<'b>) -> [u8; 8]where Self: 'a + 'b,

source§

fn type_name() -> TypeName

source§

impl RedbValue for u32

§

type SelfType<'a> = u32

§

type AsBytes<'a> where Self: 'a = [u8; 4]

source§

fn fixed_width() -> Option<usize>

source§

fn from_bytes<'a>(data: &'a [u8]) -> u32where Self: 'a,

source§

fn as_bytes<'a, 'b: 'a>(value: &'a Self::SelfType<'b>) -> [u8; 4]where Self: 'a + 'b,

source§

fn type_name() -> TypeName

source§

impl RedbValue for u8

§

type SelfType<'a> = u8

§

type AsBytes<'a> where Self: 'a = [u8; 1]

source§

fn fixed_width() -> Option<usize>

source§

fn from_bytes<'a>(data: &'a [u8]) -> u8where Self: 'a,

source§

fn as_bytes<'a, 'b: 'a>(value: &'a Self::SelfType<'b>) -> [u8; 1]where Self: 'a + 'b,

source§

fn type_name() -> TypeName

source§

impl<T0: RedbValue, T1: RedbValue> RedbValue for (T0, T1)

§

type SelfType<'a> where Self: 'a = (<T0 as RedbValue>::SelfType<'a>, <T1 as RedbValue>::SelfType<'a>)

§

type AsBytes<'a> where Self: 'a = Vec<u8, Global>

source§

fn fixed_width() -> Option<usize>

source§

fn from_bytes<'a>(data: &'a [u8]) -> Self::SelfType<'a>where Self: 'a,

source§

fn as_bytes<'a, 'b: 'a>(value: &'a Self::SelfType<'b>) -> Vec<u8>where Self: 'a + 'b,

source§

fn type_name() -> TypeName

source§

impl RedbValue for ()

§

type SelfType<'a> where Self: 'a = ()

§

type AsBytes<'a> where Self: 'a = &'a [u8]

source§

fn fixed_width() -> Option<usize>

source§

fn from_bytes<'a>(_data: &'a [u8])where Self: 'a,

source§

fn as_bytes<'a, 'b: 'a>(_: &'a Self::SelfType<'b>) -> &'a [u8] where Self: 'a + 'b,

source§

fn type_name() -> TypeName

source§

impl<T0: RedbValue, T1: RedbValue, T2: RedbValue, T3: RedbValue, T4: RedbValue, T5: RedbValue, T6: RedbValue> RedbValue for (T0, T1, T2, T3, T4, T5, T6)

§

type SelfType<'a> where Self: 'a = (<T0 as RedbValue>::SelfType<'a>, <T1 as RedbValue>::SelfType<'a>, <T2 as RedbValue>::SelfType<'a>, <T3 as RedbValue>::SelfType<'a>, <T4 as RedbValue>::SelfType<'a>, <T5 as RedbValue>::SelfType<'a>, <T6 as RedbValue>::SelfType<'a>)

§

type AsBytes<'a> where Self: 'a = Vec<u8, Global>

source§

fn fixed_width() -> Option<usize>

source§

fn from_bytes<'a>(data: &'a [u8]) -> Self::SelfType<'a>where Self: 'a,

source§

fn as_bytes<'a, 'b: 'a>(value: &'a Self::SelfType<'b>) -> Vec<u8>where Self: 'a + 'b,

source§

fn type_name() -> TypeName

source§

impl RedbValue for i16

§

type SelfType<'a> = i16

§

type AsBytes<'a> where Self: 'a = [u8; 2]

source§

fn fixed_width() -> Option<usize>

source§

fn from_bytes<'a>(data: &'a [u8]) -> i16where Self: 'a,

source§

fn as_bytes<'a, 'b: 'a>(value: &'a Self::SelfType<'b>) -> [u8; 2]where Self: 'a + 'b,

source§

fn type_name() -> TypeName

source§

impl RedbValue for f32

§

type SelfType<'a> = f32

§

type AsBytes<'a> where Self: 'a = [u8; 4]

source§

fn fixed_width() -> Option<usize>

source§

fn from_bytes<'a>(data: &'a [u8]) -> f32where Self: 'a,

source§

fn as_bytes<'a, 'b: 'a>(value: &'a Self::SelfType<'b>) -> [u8; 4]where Self: 'a + 'b,

source§

fn type_name() -> TypeName

source§

impl<T0: RedbValue, T1: RedbValue, T2: RedbValue, T3: RedbValue, T4: RedbValue, T5: RedbValue, T6: RedbValue, T7: RedbValue, T8: RedbValue, T9: RedbValue, T10: RedbValue, T11: RedbValue> RedbValue for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)

§

type SelfType<'a> where Self: 'a = (<T0 as RedbValue>::SelfType<'a>, <T1 as RedbValue>::SelfType<'a>, <T2 as RedbValue>::SelfType<'a>, <T3 as RedbValue>::SelfType<'a>, <T4 as RedbValue>::SelfType<'a>, <T5 as RedbValue>::SelfType<'a>, <T6 as RedbValue>::SelfType<'a>, <T7 as RedbValue>::SelfType<'a>, <T8 as RedbValue>::SelfType<'a>, <T9 as RedbValue>::SelfType<'a>, <T10 as RedbValue>::SelfType<'a>, <T11 as RedbValue>::SelfType<'a>)

§

type AsBytes<'a> where Self: 'a = Vec<u8, Global>

source§

fn fixed_width() -> Option<usize>

source§

fn from_bytes<'a>(data: &'a [u8]) -> Self::SelfType<'a>where Self: 'a,

source§

fn as_bytes<'a, 'b: 'a>(value: &'a Self::SelfType<'b>) -> Vec<u8>where Self: 'a + 'b,

source§

fn type_name() -> TypeName

source§

impl<T0: RedbValue, T1: RedbValue, T2: RedbValue, T3: RedbValue, T4: RedbValue, T5: RedbValue, T6: RedbValue, T7: RedbValue> RedbValue for (T0, T1, T2, T3, T4, T5, T6, T7)

§

type SelfType<'a> where Self: 'a = (<T0 as RedbValue>::SelfType<'a>, <T1 as RedbValue>::SelfType<'a>, <T2 as RedbValue>::SelfType<'a>, <T3 as RedbValue>::SelfType<'a>, <T4 as RedbValue>::SelfType<'a>, <T5 as RedbValue>::SelfType<'a>, <T6 as RedbValue>::SelfType<'a>, <T7 as RedbValue>::SelfType<'a>)

§

type AsBytes<'a> where Self: 'a = Vec<u8, Global>

source§

fn fixed_width() -> Option<usize>

source§

fn from_bytes<'a>(data: &'a [u8]) -> Self::SelfType<'a>where Self: 'a,

source§

fn as_bytes<'a, 'b: 'a>(value: &'a Self::SelfType<'b>) -> Vec<u8>where Self: 'a + 'b,

source§

fn type_name() -> TypeName

source§

impl RedbValue for i64

§

type SelfType<'a> = i64

§

type AsBytes<'a> where Self: 'a = [u8; 8]

source§

fn fixed_width() -> Option<usize>

source§

fn from_bytes<'a>(data: &'a [u8]) -> i64where Self: 'a,

source§

fn as_bytes<'a, 'b: 'a>(value: &'a Self::SelfType<'b>) -> [u8; 8]where Self: 'a + 'b,

source§

fn type_name() -> TypeName

source§

impl<T0: RedbValue, T1: RedbValue, T2: RedbValue, T3: RedbValue, T4: RedbValue, T5: RedbValue, T6: RedbValue, T7: RedbValue, T8: RedbValue, T9: RedbValue> RedbValue for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)

§

type SelfType<'a> where Self: 'a = (<T0 as RedbValue>::SelfType<'a>, <T1 as RedbValue>::SelfType<'a>, <T2 as RedbValue>::SelfType<'a>, <T3 as RedbValue>::SelfType<'a>, <T4 as RedbValue>::SelfType<'a>, <T5 as RedbValue>::SelfType<'a>, <T6 as RedbValue>::SelfType<'a>, <T7 as RedbValue>::SelfType<'a>, <T8 as RedbValue>::SelfType<'a>, <T9 as RedbValue>::SelfType<'a>)

§

type AsBytes<'a> where Self: 'a = Vec<u8, Global>

source§

fn fixed_width() -> Option<usize>

source§

fn from_bytes<'a>(data: &'a [u8]) -> Self::SelfType<'a>where Self: 'a,

source§

fn as_bytes<'a, 'b: 'a>(value: &'a Self::SelfType<'b>) -> Vec<u8>where Self: 'a + 'b,

source§

fn type_name() -> TypeName

source§

impl RedbValue for u128

§

type SelfType<'a> = u128

§

type AsBytes<'a> where Self: 'a = [u8; 16]

source§

fn fixed_width() -> Option<usize>

source§

fn from_bytes<'a>(data: &'a [u8]) -> u128where Self: 'a,

source§

fn as_bytes<'a, 'b: 'a>(value: &'a Self::SelfType<'b>) -> [u8; 16]where Self: 'a + 'b,

source§

fn type_name() -> TypeName

source§

impl<T: RedbValue> RedbValue for Option<T>

§

type SelfType<'a> where Self: 'a = Option<<T as RedbValue>::SelfType<'a>>

§

type AsBytes<'a> where Self: 'a = Vec<u8, Global>

source§

fn fixed_width() -> Option<usize>

source§

fn from_bytes<'a>(data: &'a [u8]) -> Option<T::SelfType<'a>>where Self: 'a,

source§

fn as_bytes<'a, 'b: 'a>(value: &'a Self::SelfType<'b>) -> Vec<u8>where Self: 'a + 'b,

source§

fn type_name() -> TypeName

source§

impl<T0: RedbValue, T1: RedbValue, T2: RedbValue, T3: RedbValue, T4: RedbValue, T5: RedbValue> RedbValue for (T0, T1, T2, T3, T4, T5)

§

type SelfType<'a> where Self: 'a = (<T0 as RedbValue>::SelfType<'a>, <T1 as RedbValue>::SelfType<'a>, <T2 as RedbValue>::SelfType<'a>, <T3 as RedbValue>::SelfType<'a>, <T4 as RedbValue>::SelfType<'a>, <T5 as RedbValue>::SelfType<'a>)

§

type AsBytes<'a> where Self: 'a = Vec<u8, Global>

source§

fn fixed_width() -> Option<usize>

source§

fn from_bytes<'a>(data: &'a [u8]) -> Self::SelfType<'a>where Self: 'a,

source§

fn as_bytes<'a, 'b: 'a>(value: &'a Self::SelfType<'b>) -> Vec<u8>where Self: 'a + 'b,

source§

fn type_name() -> TypeName

source§

impl<T0: RedbValue, T1: RedbValue, T2: RedbValue, T3: RedbValue, T4: RedbValue, T5: RedbValue, T6: RedbValue, T7: RedbValue, T8: RedbValue, T9: RedbValue, T10: RedbValue> RedbValue for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)

§

type SelfType<'a> where Self: 'a = (<T0 as RedbValue>::SelfType<'a>, <T1 as RedbValue>::SelfType<'a>, <T2 as RedbValue>::SelfType<'a>, <T3 as RedbValue>::SelfType<'a>, <T4 as RedbValue>::SelfType<'a>, <T5 as RedbValue>::SelfType<'a>, <T6 as RedbValue>::SelfType<'a>, <T7 as RedbValue>::SelfType<'a>, <T8 as RedbValue>::SelfType<'a>, <T9 as RedbValue>::SelfType<'a>, <T10 as RedbValue>::SelfType<'a>)

§

type AsBytes<'a> where Self: 'a = Vec<u8, Global>

source§

fn fixed_width() -> Option<usize>

source§

fn from_bytes<'a>(data: &'a [u8]) -> Self::SelfType<'a>where Self: 'a,

source§

fn as_bytes<'a, 'b: 'a>(value: &'a Self::SelfType<'b>) -> Vec<u8>where Self: 'a + 'b,

source§

fn type_name() -> TypeName

source§

impl RedbValue for i8

§

type SelfType<'a> = i8

§

type AsBytes<'a> where Self: 'a = [u8; 1]

source§

fn fixed_width() -> Option<usize>

source§

fn from_bytes<'a>(data: &'a [u8]) -> i8where Self: 'a,

source§

fn as_bytes<'a, 'b: 'a>(value: &'a Self::SelfType<'b>) -> [u8; 1]where Self: 'a + 'b,

source§

fn type_name() -> TypeName

Implementors§