pub trait Environment:
Clone
+ Send
+ Sync
+ 'static {
type Stdin: AsyncRead + Unpin;
type Stdout: AsyncWrite + Unpin;
type Stderr: AsyncWrite + Unpin;
Show 13 methods
// Required methods
fn now(&self) -> OffsetDateTime;
fn spawn<F>(&self, fut: F)
where F: Future + Send + 'static,
F::Output: Send;
fn spawn_local<F>(&self, fut: F)
where F: Future + 'static;
fn env_var(&self, name: &str) -> Option<String>;
fn atty_stderr(&self) -> bool;
fn stdin(&self) -> Self::Stdin;
fn stdout(&self) -> Self::Stdout;
fn stderr(&self) -> Self::Stderr;
fn read_file<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 Url,
) -> Pin<Box<dyn Future<Output = Result<Vec<u8>, Error>> + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn write_file<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
path: &'life1 Url,
bytes: &'life2 [u8],
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait;
fn fetch_file<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 Url,
) -> Pin<Box<dyn Future<Output = Result<Vec<u8>, Error>> + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn root_uri(&self) -> Option<Url>;
// Provided method
fn to_url(&self, path: &str) -> Option<Url> { ... }
}
Expand description
An environment in which the operations with Jsona are executed.
This is mostly needed for sandboxed environments such as WebAssembly.
Required Associated Types§
type Stdin: AsyncRead + Unpin
type Stdout: AsyncWrite + Unpin
type Stderr: AsyncWrite + Unpin
Required Methods§
fn now(&self) -> OffsetDateTime
fn spawn<F>(&self, fut: F)
fn spawn_local<F>(&self, fut: F)where
F: Future + 'static,
fn env_var(&self, name: &str) -> Option<String>
fn atty_stderr(&self) -> bool
fn stdin(&self) -> Self::Stdin
fn stdout(&self) -> Self::Stdout
fn stderr(&self) -> Self::Stderr
fn read_file<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 Url,
) -> Pin<Box<dyn Future<Output = Result<Vec<u8>, Error>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn write_file<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
path: &'life1 Url,
bytes: &'life2 [u8],
) -> Pin<Box<dyn Future<Output = Result<(), Error>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn fetch_file<'life0, 'life1, 'async_trait>(
&'life0 self,
path: &'life1 Url,
) -> Pin<Box<dyn Future<Output = Result<Vec<u8>, Error>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn root_uri(&self) -> Option<Url>
Provided Methods§
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.