#![no_std]
extern crate alloc;
mod argument;
mod continuations;
use libutils_threat::Threat;
pub use argument::Argument;
use libutils_issue::Issue;
use core::fmt::{
Display,
Debug
};
pub use continuations::{
Synchronization,
Descriptor
};
pub trait Console {
fn arguments<'valid>(&'valid self) -> &'valid [Argument];
fn open(&self, filename: &str) -> Result<impl Descriptor, Issue>;
fn problem(&self, threat: Threat) -> impl Synchronization;
fn print(&self, value: impl Display) -> impl Synchronization;
fn debug(&self, value: impl Debug) -> impl Synchronization;
}