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};
35
36
37pub trait Console {
43 fn arguments<'valid>(&'valid self) -> &'valid [Argument];
44 fn open(&self, filename: &str) -> Result<impl Descriptor, Issue>;
45 fn problem(&self, threat: Threat) -> impl Synchronization;
46 fn print(&self, value: impl Display) -> impl Synchronization;
47 fn debug(&self, value: impl Debug) -> impl Synchronization;
48}