Skip to main content

libutils_console/
continuations.rs

1//^
2//^ HEAD
3//^
4
5//> HEAD -> ALLOC
6use alloc::{
7    string::String,
8    vec::Vec
9};
10
11//> HEAD -> ISSUE
12use libutils_issue::Issue;
13
14
15//^
16//^ CONTINUATIONS
17//^
18
19//> CONTINUATIONS -> TRAIT
20#[must_use]
21pub trait Synchronization {
22    fn sync(self) -> ();
23    fn ignore(self) -> ();
24}
25
26//> CONTINUATIONS -> DESCRIPTOR
27#[must_use]
28pub trait Descriptor {
29    fn read(&mut self) -> Result<String, Issue>;
30    fn read_bytes(&mut self) -> Result<Vec<u8>, Issue>;
31    fn close(self) -> ();
32    fn write(&mut self, content: &str) -> Result<(), Issue>;
33    fn write_bytes(&mut self, content: &[u8]) -> Result<(), Issue>;
34}