Skip to main content

libutils_console/
mod.rs

1//^
2//^ HEAD
3//^
4
5//> HEAD -> NO_STD
6#![no_std]
7
8//> HEAD -> CRATES
9extern crate alloc;
10
11//> HEAD -> MODULES
12mod argument;
13mod handle;
14
15//> HEAD -> THREAT
16use libutils_threat::Threat;
17
18//> HEAD -> ARGUMENT
19pub use argument::Argument;
20
21//> HEAD -> ISSUE
22use libutils_issue::Issue;
23
24//> HEAD -> ALLOC
25use alloc::string::String;
26
27//> HEAD -> CORE
28use core::fmt::{
29    Display,
30    Debug
31};
32
33//> HEAD -> HANDLE
34pub use handle::Handle;
35
36
37//^
38//^ CONSOLE
39//^
40
41//> CONSOLE -> TRAIT
42pub trait Console {
43    fn arguments<'valid>(&'valid self) -> &'valid [Argument];
44    fn read(&self, filename: &str) -> Result<String, Issue>;
45    fn problem(&self, threat: Threat) -> impl Handle;
46    fn print<Type: Display>(&self, value: Type) -> impl Handle;
47    fn debug<Type: Debug>(&self, value: Type) -> impl Handle;
48}