Struct solana_rbpf::syscalls::BpfRand [−][src]
Returns a random u64 value comprised between min
and max
values (inclusive). Arguments 3 to
5 are unused.
Relies on rand()
function from libc, so libc::srand()
should be called once before this
syscall is used.
Examples
extern crate libc; extern crate solana_rbpf; extern crate time; use solana_rbpf::syscalls::{BpfRand, Result}; use solana_rbpf::memory_region::{MemoryRegion, MemoryMapping}; use solana_rbpf::vm::{Config, SyscallObject}; unsafe { libc::srand(time::precise_time_ns() as u32) } let mut result: Result = Ok(0); let memory_mapping = [MemoryRegion::default()]; BpfRand::call(&mut BpfRand {}, 3, 6, 0, 0, 0, &MemoryMapping::new(memory_mapping.to_vec(), &Config::default()), &mut result); let n = result.unwrap(); assert!(3 <= n && n <= 6);
Trait Implementations
impl SyscallObject<UserError> for BpfRand
[src]
Auto Trait Implementations
impl RefUnwindSafe for BpfRand
impl Send for BpfRand
impl Sync for BpfRand
impl Unpin for BpfRand
impl UnwindSafe for BpfRand
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
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.
pub 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.
pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
[src]
V: MultiLane<T>,