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
; const ALIGNMENT: usize = 1usize; 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

Provided Associated Constants§

source

const ALIGNMENT: usize = 1usize

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<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<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<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, 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<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> 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<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<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, 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<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<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 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<T: RedbValue> RedbValue for Option<T>

source§

const ALIGNMENT: usize = T::ALIGNMENT

§

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 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<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 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 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 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 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 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 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 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

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 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 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 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 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 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

Implementors§