#![warn(unused_results)]
use std::ffi::{OsStr, OsString};
use crate::{PlatformInfoAPI, PlatformInfoError, UNameAPI};
#[derive(Clone, Debug, PartialEq, Eq)]
pub struct PlatformInfo {
unknown: OsString,
}
impl PlatformInfoAPI for PlatformInfo {
fn new() -> Result<Self, PlatformInfoError> {
Ok(Self {
unknown: OsString::from(crate::lib_impl::HOST_OS_NAME),
})
}
}
impl UNameAPI for PlatformInfo {
fn sysname(&self) -> &OsStr {
&self.unknown
}
fn nodename(&self) -> &OsStr {
&self.unknown
}
fn release(&self) -> &OsStr {
&self.unknown
}
fn version(&self) -> &OsStr {
&self.unknown
}
fn machine(&self) -> &OsStr {
&self.unknown
}
fn processor(&self) -> &OsStr {
&self.unknown
}
fn osname(&self) -> &OsStr {
&self.unknown
}
}
#[test]
fn test_unknown() {
let platform_info = PlatformInfo::new().unwrap();
assert_eq!(platform_info.sysname().to_string_lossy(), "unknown");
assert_eq!(platform_info.nodename().to_string_lossy(), "unknown");
assert_eq!(platform_info.release().to_string_lossy(), "unknown");
assert_eq!(platform_info.version().to_string_lossy(), "unknown");
assert_eq!(platform_info.machine().to_string_lossy(), "unknown");
assert_eq!(platform_info.processor().to_string_lossy(), "unknown");
assert_eq!(platform_info.osname().to_string_lossy(), "unknown");
}
#[test]
fn structure_clone() {
let info = PlatformInfo::new().unwrap();
println!("{:?}", info);
let info_copy = info.clone();
assert_eq!(info_copy, info);
}