whoami/lib.rs
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 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115
//! Crate for getting the user's username, realname and environment.
//!
//! ## Getting Started
//! Using the whoami crate is super easy! All of the public items are simple
//! functions with no parameters that return [`String`]s or [`OsString`]s (with
//! the exception of [`desktop_env()`], [`platform()`], and [`arch()`], which
//! return enums, and [`langs()`] that returns an iterator of [`String`]s). The
//! following example shows how to use all of the functions (except those that
//! return [`OsString`]):
//!
//! ```rust
//! println!(
//! "User's Language whoami::langs(): {}",
//! whoami::langs()
//! .map(|l| {
//! l.map(|l| l.to_string()).collect::<Vec<String>>().join(", ")
//! })
//! .unwrap_or_else(|_| "??".to_string()),
//! );
//! println!(
//! "User's Name whoami::realname(): {}",
//! whoami::realname().unwrap_or_else(|_| "<unknown>".to_string()),
//! );
//! println!(
//! "User's Username whoami::username(): {}",
//! whoami::username().unwrap_or_else(|_| "<unknown>".to_string()),
//! );
//! println!(
//! "User's Username whoami::account(): {}",
//! whoami::account().unwrap_or_else(|_| "<unknown>".to_string()),
//! );
//! println!(
//! "Device's Pretty Name whoami::devicename(): {}",
//! whoami::devicename().unwrap_or_else(|_| "<unknown>".to_string()),
//! );
//! println!(
//! "Device's Hostname whoami::hostname(): {}",
//! whoami::hostname().unwrap_or_else(|_| "<unknown>".to_string()),
//! );
//! println!(
//! "Device's Platform whoami::platform(): {}",
//! whoami::platform(),
//! );
//! println!(
//! "Device's OS Distro whoami::distro(): {}",
//! whoami::distro().unwrap_or_else(|_| "<unknown>".to_string()),
//! );
//! println!(
//! "Device's Desktop Env. whoami::desktop_env(): {}",
//! whoami::desktop_env()
//! .map(|e| e.to_string())
//! .unwrap_or_else(|| "<unknown>".to_string()),
//! );
//! println!(
//! "Device's CPU Arch whoami::arch(): {}",
//! whoami::arch(),
//! );
//! ```
//!
//! [`OsString`]: std::ffi::OsString
#![warn(
anonymous_parameters,
missing_copy_implementations,
missing_debug_implementations,
missing_docs,
nonstandard_style,
rust_2018_idioms,
single_use_lifetimes,
trivial_casts,
trivial_numeric_casts,
unreachable_pub,
unused_extern_crates,
unused_qualifications,
variant_size_differences,
unsafe_code
)]
#![deny(
rustdoc::broken_intra_doc_links,
rustdoc::private_intra_doc_links,
rustdoc::missing_crate_level_docs,
rustdoc::private_doc_tests,
rustdoc::invalid_codeblock_attributes,
rustdoc::invalid_html_tags,
rustdoc::invalid_rust_codeblocks,
rustdoc::bare_urls,
rustdoc::unescaped_backticks,
rustdoc::redundant_explicit_links
)]
#![doc(
html_logo_url = "https://raw.githubusercontent.com/ardaku/whoami/v1/res/icon.svg",
html_favicon_url = "https://raw.githubusercontent.com/ardaku/whoami/v1/res/icon.svg"
)]
mod api;
mod arch;
mod conversions;
mod desktop_env;
mod language;
mod os;
mod platform;
mod result;
pub use self::{
api::{
account, account_os, arch, desktop_env, devicename, devicename_os,
distro, hostname, langs, platform, realname, realname_os, username,
username_os,
},
arch::{Arch, Width},
desktop_env::DesktopEnv,
language::{Country, Language},
platform::Platform,
result::Result,
};