Skip to main content

openentropy_core/
platform.rs

1//! Platform detection and source discovery.
2
3use crate::source::EntropySource;
4use crate::sources::all_sources;
5
6/// Discover all entropy sources available on this machine.
7pub fn detect_available_sources() -> Vec<Box<dyn EntropySource>> {
8    all_sources()
9        .into_iter()
10        .filter(|s| s.is_available())
11        .collect()
12}
13
14/// Platform information.
15pub fn platform_info() -> PlatformInfo {
16    PlatformInfo {
17        system: std::env::consts::OS.to_string(),
18        machine: std::env::consts::ARCH.to_string(),
19        family: std::env::consts::FAMILY.to_string(),
20    }
21}
22
23#[derive(Debug, Clone)]
24pub struct PlatformInfo {
25    pub system: String,
26    pub machine: String,
27    pub family: String,
28}