1#![no_std]
7
8extern crate alloc;
10
11mod argument;
13mod handle;
14
15use libutils_threat::Threat;
17
18pub use argument::Argument;
20
21use libutils_issue::Issue;
23
24use alloc::string::String;
26
27use core::fmt::{
29 Display,
30 Debug
31};
32
33pub use handle::Handle;
35
36
37pub 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}