Add get_sized to Block and Sequence.

This commit is contained in:
yukirij 2025-04-16 01:32:10 -07:00
parent d157f47d48
commit 6314e24e90
2 changed files with 19 additions and 0 deletions

View File

@ -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() {

View File

@ -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()