1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
//! # types
//!
//! Defines the various types and aliases.
//!
#[cfg(test)]
#[path = "./types_test.rs"]
mod types_test;
#[derive(Debug, Clone, PartialEq, Copy)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
/// Rust channel type
pub enum RustChannel {
/// Rust stable channel
Stable,
/// Rust beta channel
Beta,
/// Rust nightly channel
Nightly,
}
#[derive(Debug, Clone, PartialEq, Default)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
/// Holds the current rust installation and setup information
pub struct RustInfo {
/// version
pub version: Option<String>,
/// channel
pub channel: Option<RustChannel>,
/// target arch cfg value
pub target_arch: Option<String>,
/// target env cfg value
pub target_env: Option<String>,
/// target OS cfg value
pub target_os: Option<String>,
/// target pointer width cfg value
pub target_pointer_width: Option<String>,
/// target vendor cfg value
pub target_vendor: Option<String>,
/// target triple constructed from target arc, vendor, os and env
pub target_triple: Option<String>,
}
impl RustInfo {
/// Returns new instance
pub fn new() -> RustInfo {
Default::default()
}
}