1#![no_std]
7
8#![feature(const_trait_impl)]
10#![feature(const_destruct)]
11
12extern crate alloc;
14
15mod argument;
17mod descriptor;
18mod metadata;
19mod update;
20
21pub use argument::Argument;
23
24use libutils_issue::Issue;
26
27use core::fmt::{
29 Display,
30 Debug
31};
32
33pub use update::Update;
35
36pub use metadata::Metadata;
38
39pub use descriptor::Descriptor;
41
42
43pub 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}