1#![no_std]
7
8extern crate alloc;
10
11mod argument;
13mod continuations;
14
15use libutils_threat::Threat;
17
18pub use argument::Argument;
20
21use libutils_issue::Issue;
23
24use core::fmt::{
26 Display,
27 Debug
28};
29
30pub use continuations::{
32 Synchronization,
33 Descriptor,
34 Data
35};
36
37
38pub trait Console {
44 fn arguments<'valid>(&'valid self) -> &'valid [Argument];
45 fn open(&self, filename: &str) -> Result<impl Descriptor, Issue>;
46 fn problem(&self, threat: Threat) -> impl Synchronization;
47 fn print(&self, value: impl Display) -> impl Synchronization;
48 fn debug(&self, value: impl Debug) -> impl Synchronization;
49}