#![no_std]
extern crate alloc;
use core::mem::ManuallyDrop;
use alloc::vec::Vec;
pub struct RawResource {
ptr: *const u8,
len: usize,
}
impl RawResource {
pub fn refine(data: Vec<u8>) -> Self {
let mut domesticated = ManuallyDrop::new(data);
Self {
ptr: domesticated.as_mut_ptr() as *const u8,
len: domesticated.len(),
}
}
pub fn as_ptr(&self) -> *const u8 {
self.ptr
}
pub fn len(&self) -> usize {
self.len
}
pub unsafe fn as_slice(&self) -> &[u8] {
unsafe { core::slice::from_raw_parts(self.ptr, self.len) }
}
}