[−][src]Struct sibyl::Raw
Represents RAW and LONG RAW data types.
Methods
impl<'e> Raw<'e>
[src]
pub fn from_bytes(data: &[u8], env: &'e dyn Env) -> Result<Self>
[src]
Returns a new Raw constructed with the copy of the data
Example
use sibyl as oracle; let env = oracle::env()?; let data: [u8;5] = [1,2,3,4,5]; let raw = oracle::Raw::from_bytes(&data, &env)?; let size = raw.capacity()?; assert!(5 <= size); let len = raw.len(); assert_eq!(5, len); let raw_data_ptr = raw.as_raw_ptr(); assert!(raw_data_ptr != std::ptr::null_mut::<u8>()); let raw_data: &[u8] = unsafe { std::slice::from_raw_parts(raw_data_ptr, len as usize) }; assert_eq!(data, raw_data);
pub fn from_raw(other: &Raw<'e>) -> Result<Self>
[src]
Returns a new Raw constructed with the copy of the date from the other
Raw.
Example
use sibyl as oracle; let env = oracle::env()?; let data: [u8;5] = [1,2,3,4,5]; let src = oracle::Raw::from_bytes(&data, &env)?; let dst = oracle::Raw::from_raw(&src)?; let raw_data_ptr = src.as_raw_ptr(); assert!(raw_data_ptr != std::ptr::null_mut::<u8>()); let len = src.len(); assert_eq!(5, len); let src_data: &[u8] = unsafe { std::slice::from_raw_parts(raw_data_ptr, len as usize) }; let raw_data_ptr = dst.as_raw_ptr(); assert!(raw_data_ptr != std::ptr::null_mut::<u8>()); let len = dst.len(); assert_eq!(5, len); let dst_data: &[u8] = unsafe { std::slice::from_raw_parts(raw_data_ptr, len as usize) }; assert_eq!(dst_data, src_data);
pub fn with_capacity(size: usize, env: &'e dyn Env) -> Result<Self>
[src]
Returns a new Raw with the memory allocated for the raw data.
Example
use sibyl as oracle; let env = oracle::env()?; let raw = oracle::Raw::with_capacity(19, &env)?; let size = raw.capacity()?; assert!(19 <= size); let len = raw.len(); assert_eq!(0, len);
pub fn len(&self) -> usize
[src]
Returns the size of the raw data in bytes.
Example
use sibyl as oracle; let env = oracle::env()?; let data: [u8;5] = [1,2,3,4,5]; let raw = oracle::Raw::from_bytes(&data, &env)?; let len = raw.len(); assert_eq!(5, len);
pub fn capacity(&self) -> Result<usize>
[src]
Returns the allocated size of raw memory in bytes
Example
use sibyl as oracle; let env = oracle::env()?; let raw = oracle::Raw::with_capacity(19, &env)?; let size = raw.capacity()?; assert!(19 <= size);
pub fn resize(&mut self, new_size: usize) -> Result<()>
[src]
Changes the size of the memory of this raw binary in the object cache. Previous content is not preserved.
Example
use sibyl as oracle; let env = oracle::env()?; let mut bin = oracle::Raw::with_capacity(10, &env)?; let cap = bin.capacity()?; assert!(cap >= 10); bin.resize(20); let cap = bin.capacity()?; assert!(cap >= 20); bin.resize(0); let cap = bin.capacity()?; assert_eq!(0, cap); bin.resize(16); let cap = bin.capacity()?; assert!(cap >= 16);
pub fn as_raw_ptr(&self) -> *mut u8
[src]
Returns unsafe pointer to the RAW data
Example
use sibyl as oracle; let env = oracle::env()?; let data: [u8;5] = [1,2,3,4,5]; let raw = oracle::Raw::from_bytes(&data, &env)?; let raw_data_ptr = raw.as_raw_ptr(); assert!(raw_data_ptr != std::ptr::null_mut::<u8>()); let raw_data: &[u8] = unsafe { std::slice::from_raw_parts(raw_data_ptr, raw.len() as usize) }; assert_eq!(data, raw_data);
Trait Implementations
impl<'_> ToSql for Raw<'_>
[src]
impl<'_> ToSqlOut for Raw<'_>
[src]
fn to_sql_output(&mut self, _col_size: usize) -> (u16, *mut c_void, usize)
[src]
fn set_len(&mut self, _new_len: usize)
[src]
Called to set the received data length (always less than the initial capacity)
impl<'_> Drop for Raw<'_>
[src]
Auto Trait Implementations
Blanket Implementations
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,