1use crate::{backend, io};
2
3/// `GRND_*`
4pub use backend::rand::types::GetRandomFlags;
5
6/// `getrandom(buf, flags)`—Reads a sequence of random bytes.
7///
8/// This is a very low-level API which may be difficult to use correctly. Most
9/// users should prefer to use [`getrandom`] or [`rand`] APIs instead.
10///
11/// [`getrandom`]: https://crates.io/crates/getrandom
12/// [`rand`]: https://crates.io/crates/rand
13///
14/// # References
15///  - [Linux]
16///
17/// [Linux]: https://man7.org/linux/man-pages/man2/getrandom.2.html
18#[inline]
19pub fn getrandom(buf: &mut [u8], flags: GetRandomFlags) -> io::Result<usize> {
20    backend::rand::syscalls::getrandom(buf, flags)
21}
22