Struct solana_rbpf::syscalls::BpfStrCmp
source · [−]pub struct BpfStrCmp {}
Expand description
C-like strcmp
, return 0 if the strings are equal, and a non-null value otherwise.
Examples
use solana_rbpf::syscalls::{BpfStrCmp, Result};
use solana_rbpf::memory_region::{MemoryRegion, MemoryMapping};
use solana_rbpf::vm::{Config, SyscallObject};
let foo = "This is a string.";
let bar = "This is another sting.";
let va_foo = 0x100000000;
let va_bar = 0x200000000;
use solana_rbpf::user_error::UserError;
let mut result: Result = Ok(0);
let config = Config::default();
let memory_mapping = MemoryMapping::new::<UserError>(vec![MemoryRegion::default(), MemoryRegion::new_from_slice(foo.as_bytes(), va_foo, 0, false)], &config).unwrap();
BpfStrCmp::call(&mut BpfStrCmp {}, va_foo, va_foo, 0, 0, 0, &memory_mapping, &mut result);
assert!(result.unwrap() == 0);
let mut result: Result = Ok(0);
let memory_mapping = MemoryMapping::new::<UserError>(vec![MemoryRegion::default(), MemoryRegion::new_from_slice(foo.as_bytes(), va_foo, 0, false), MemoryRegion::new_from_slice(bar.as_bytes(), va_bar, 0, false)], &config).unwrap();
BpfStrCmp::call(&mut BpfStrCmp {}, va_foo, va_bar, 0, 0, 0, &memory_mapping, &mut result);
assert!(result.unwrap() != 0);
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for BpfStrCmp
impl Send for BpfStrCmp
impl Sync for BpfStrCmp
impl Unpin for BpfStrCmp
impl UnwindSafe for BpfStrCmp
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcepub fn borrow_mut(&mut self) -> &mut T
pub fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more