Skip to main content

libutils_console/
mod.rs

1//^
2//^ HEAD
3//^
4
5//> HEAD -> NO_STD
6#![no_std]
7
8//> HEAD -> FEATURES
9#![feature(const_trait_impl)]
10#![feature(const_destruct)]
11
12//> HEAD -> CRATES
13extern crate alloc;
14
15//> HEAD -> MODULES
16mod argument;
17mod descriptor;
18mod metadata;
19mod update;
20
21//> HEAD -> ARGUMENT
22pub use argument::Argument;
23
24//> HEAD -> ISSUE
25use libutils_issue::Issue;
26
27//> HEAD -> CORE
28use core::fmt::{
29    Display,
30    Debug
31};
32
33//> HEAD -> UPDATE
34pub use update::Update;
35
36//> HEAD -> METADATA
37pub use metadata::Metadata;
38
39//> HEAD -> DESCRIPTOR
40pub use descriptor::Descriptor;
41
42
43//^
44//^ CONSOLE
45//^
46
47//> CONSOLE -> TRAIT
48pub trait Console {
49    fn arguments<'valid>(&'valid self) -> &'valid [Argument];
50    fn open(&self, filename: &str) -> Result<impl Descriptor, Issue>;
51    fn problem(&self, issue: Issue, chain: &[&'static str]) -> impl Update;
52    fn print(&self, value: impl Display) -> impl Update;
53    fn debug(&self, value: impl Debug) -> impl Update;
54}