45 lines
861 B
Rust
45 lines
861 B
Rust
|
//! An implementation of the uname command.
|
||
|
//!
|
||
|
use crate::Arch::*;
|
||
|
|
||
|
use core::fmt;
|
||
|
|
||
|
// an example string "Darwin Roadrunner.local 10.3.0 Darwin Kernel Version 10.3.0: Fri Feb 26 11:58:09 PST 2010; root:xnu-1504.3.12~1/RELEASE_I386 i386"
|
||
|
pub struct RName {
|
||
|
pub arch: Arch,
|
||
|
}
|
||
|
|
||
|
fn main() {
|
||
|
let mut rname_string = "".to_string();
|
||
|
|
||
|
rname_string.push_str("ableOS");
|
||
|
|
||
|
let arch = Some(X86_64);
|
||
|
if let Some(arch) = arch {
|
||
|
let fmt_str = format!(" {:?}", arch);
|
||
|
rname_string.push_str(&fmt_str);
|
||
|
}
|
||
|
|
||
|
println!("{}", rname_string);
|
||
|
}
|
||
|
#[derive(Debug, Clone, Copy)]
|
||
|
pub enum Arch {
|
||
|
X86,
|
||
|
X86_64,
|
||
|
ARM,
|
||
|
ARM64,
|
||
|
PPC,
|
||
|
PPC64,
|
||
|
MIPS,
|
||
|
MIPS64,
|
||
|
SPARC,
|
||
|
SPARC64,
|
||
|
Unknown,
|
||
|
}
|
||
|
|
||
|
impl fmt::Display for Arch {
|
||
|
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
||
|
write!(f, "{:?}", self)
|
||
|
}
|
||
|
}
|