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;
13
14//> HEAD -> THREAT
15use libutils_threat::Threat;
16
17//> HEAD -> ARGUMENT
18pub use argument::Argument;
19
20//> HEAD -> ISSUE
21use libutils_issue::Issue;
22
23//> HEAD -> ALLOC
24use alloc::string::String;
25
26//> HEAD -> CORE
27use core::fmt::Display;
28
29
30//^
31//^ CONSOLE
32//^
33
34//> CONSOLE -> TRAIT
35pub trait Console {
36 fn arguments<'valid>(&'valid self) -> &'valid [Argument];
37 fn read(&self, filename: &str) -> Result<String, Issue>;
38 fn sync(&self) -> ();
39 fn problem(&self, threat: Threat) -> ();
40 fn print<Type: Display>(&self, value: &Type) -> ();
41}