clean up some unsafety in Slicable

This commit is contained in:
Robert Habermeier
2018-01-23 17:21:20 +01:00
parent b9cc928495
commit 954a4dc8ef
4 changed files with 18 additions and 17 deletions
@@ -76,7 +76,7 @@ impl Slicable for Header {
})
}
fn set_as_slice<F: FnOnce(&mut[u8]) -> bool>(_fill_slice: F) -> Option<Self> {
fn set_as_slice<F: FnOnce(&mut [u8]) -> bool>(_fill_slice: F) -> Option<Self> {
unimplemented!();
}
@@ -122,7 +122,7 @@ impl Slicable for Transaction {
})
}
fn set_as_slice<F: FnOnce(&mut[u8]) -> bool>(_fill_slice: F) -> Option<Self> {
fn set_as_slice<F: FnOnce(&mut [u8]) -> bool>(_fill_slice: F) -> Option<Self> {
unimplemented!();
}
@@ -200,7 +200,7 @@ impl Slicable for UncheckedTransaction {
})
}
fn set_as_slice<F: FnOnce(&mut[u8]) -> bool>(_fill_slice: F) -> Option<Self> {
fn set_as_slice<F: FnOnce(&mut [u8]) -> bool>(_fill_slice: F) -> Option<Self> {
unimplemented!();
}
@@ -237,7 +237,7 @@ impl Slicable for Block {
})
}
fn set_as_slice<F: FnOnce(&mut[u8]) -> bool>(_fill_slice: F) -> Option<Self> {
fn set_as_slice<F: FnOnce(&mut [u8]) -> bool>(_fill_slice: F) -> Option<Self> {
unimplemented!();
}
@@ -271,7 +271,7 @@ impl<T: NonTrivialSlicable> Slicable for Vec<T> {
Some(r)
}
fn set_as_slice<F: FnOnce(&mut[u8]) -> bool>(_fill_slice: F) -> Option<Self> {
fn set_as_slice<F: FnOnce(&mut [u8]) -> bool>(_fill_slice: F) -> Option<Self> {
unimplemented!();
}
@@ -37,7 +37,7 @@ pub trait Storable {
/// Remove `key` from storage.
pub fn kill(key: &[u8]) { runtime_support::set_storage(&twox_128(key)[..], b""); }
impl<T: Default + Sized + EndianSensitive> Storable for T {
impl<T: Default + Copy + EndianSensitive + 'static> Storable for T {
fn lookup(key: &[u8]) -> Option<Self> {
Slicable::set_as_slice(|out| runtime_support::read_storage(&twox_128(key)[..], out) == out.len())
}