2017-10-22 20:01:00 -07:00
|
|
|
use error::Error as StdError;
|
|
|
|
|
use ffi::{OsString, OsStr};
|
|
|
|
|
use fmt;
|
|
|
|
|
use io;
|
|
|
|
|
use path::{self, PathBuf};
|
|
|
|
|
use str;
|
2017-12-31 16:40:34 +00:00
|
|
|
use sys::{unsupported, Void, ExitSysCall, GetEnvSysCall, SetEnvSysCall};
|
2017-10-22 20:01:00 -07:00
|
|
|
|
|
|
|
|
pub fn errno() -> i32 {
|
|
|
|
|
0
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
pub fn error_string(_errno: i32) -> String {
|
2018-07-28 14:40:32 +02:00
|
|
|
"operation successful".to_string()
|
2017-10-22 20:01:00 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
pub fn getcwd() -> io::Result<PathBuf> {
|
|
|
|
|
unsupported()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
pub fn chdir(_: &path::Path) -> io::Result<()> {
|
|
|
|
|
unsupported()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
pub struct SplitPaths<'a>(&'a Void);
|
|
|
|
|
|
|
|
|
|
pub fn split_paths(_unparsed: &OsStr) -> SplitPaths {
|
|
|
|
|
panic!("unsupported")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
impl<'a> Iterator for SplitPaths<'a> {
|
|
|
|
|
type Item = PathBuf;
|
|
|
|
|
fn next(&mut self) -> Option<PathBuf> {
|
|
|
|
|
match *self.0 {}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[derive(Debug)]
|
|
|
|
|
pub struct JoinPathsError;
|
|
|
|
|
|
|
|
|
|
pub fn join_paths<I, T>(_paths: I) -> Result<OsString, JoinPathsError>
|
|
|
|
|
where I: Iterator<Item=T>, T: AsRef<OsStr>
|
|
|
|
|
{
|
|
|
|
|
Err(JoinPathsError)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
impl fmt::Display for JoinPathsError {
|
|
|
|
|
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
|
|
|
|
"not supported on wasm yet".fmt(f)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
impl StdError for JoinPathsError {
|
|
|
|
|
fn description(&self) -> &str {
|
|
|
|
|
"not supported on wasm yet"
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
pub fn current_exe() -> io::Result<PathBuf> {
|
|
|
|
|
unsupported()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
pub struct Env(Void);
|
|
|
|
|
|
|
|
|
|
impl Iterator for Env {
|
|
|
|
|
type Item = (OsString, OsString);
|
|
|
|
|
fn next(&mut self) -> Option<(OsString, OsString)> {
|
|
|
|
|
match self.0 {}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
pub fn env() -> Env {
|
|
|
|
|
panic!("not supported on web assembly")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
pub fn getenv(k: &OsStr) -> io::Result<Option<OsString>> {
|
2017-12-31 16:40:34 +00:00
|
|
|
Ok(GetEnvSysCall::perform(k))
|
2017-10-22 20:01:00 -07:00
|
|
|
}
|
|
|
|
|
|
2017-12-31 16:40:34 +00:00
|
|
|
pub fn setenv(k: &OsStr, v: &OsStr) -> io::Result<()> {
|
|
|
|
|
Ok(SetEnvSysCall::perform(k, Some(v)))
|
2017-10-22 20:01:00 -07:00
|
|
|
}
|
|
|
|
|
|
2017-12-31 16:40:34 +00:00
|
|
|
pub fn unsetenv(k: &OsStr) -> io::Result<()> {
|
|
|
|
|
Ok(SetEnvSysCall::perform(k, None))
|
2017-10-22 20:01:00 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
pub fn temp_dir() -> PathBuf {
|
|
|
|
|
panic!("no filesystem on wasm")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
pub fn home_dir() -> Option<PathBuf> {
|
|
|
|
|
None
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
pub fn exit(_code: i32) -> ! {
|
2017-12-31 16:40:34 +00:00
|
|
|
ExitSysCall::perform(_code as isize as usize)
|
2017-10-22 20:01:00 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
pub fn getpid() -> u32 {
|
|
|
|
|
panic!("no pids on wasm")
|
|
|
|
|
}
|