Add get_sized to Block and Sequence.
This commit is contained in:
parent
d157f47d48
commit
6314e24e90
@ -30,6 +30,13 @@ impl Block {
|
||||
data
|
||||
}
|
||||
|
||||
pub fn get_sized<const K:usize>(&self) -> [u8; K]
|
||||
{
|
||||
let mut data = [0u8; K];
|
||||
Runtime::load(self.refer, &mut data as _, 0, std::cmp::min(self.len(), K));
|
||||
data
|
||||
}
|
||||
|
||||
pub fn set_byte(&mut self, index:usize, byte:u8)
|
||||
{
|
||||
if index < self.len() {
|
||||
|
@ -97,6 +97,18 @@ impl Sequence {
|
||||
}
|
||||
}
|
||||
|
||||
pub fn get_sized<const K:usize>(&self) -> [u8; K]
|
||||
{
|
||||
let mut data = [0u8; K];
|
||||
if let Some(header) = unsafe {(self.refer.address() as *const Data).as_ref()} {
|
||||
let slice = unsafe { std::slice::from_raw_parts_mut(header.data as _, header.length) };
|
||||
for i in 0..std::cmp::min(slice.len(), K) {
|
||||
data[i] = slice[i];
|
||||
}
|
||||
}
|
||||
data
|
||||
}
|
||||
|
||||
pub fn get_str(&self) -> String
|
||||
{
|
||||
String::from_utf8(self.get()).unwrap_or_default()
|
||||
|
Loading…
x
Reference in New Issue
Block a user