1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-11-01 09:24:20 -04:00
denoland-deno/src/msg.fbs

319 lines
4 KiB
Text
Raw Normal View History

union Any {
Start,
StartRes,
CodeFetch,
CodeFetchRes,
CodeCache,
SetTimeout,
Exit,
Environ,
EnvironRes,
FetchReq,
FetchRes,
2018-08-23 18:36:45 -04:00
MakeTempDir,
MakeTempDirRes,
2018-09-10 05:48:36 -04:00
Mkdir,
Remove,
ReadFile,
ReadFileRes,
2018-10-03 17:56:56 -04:00
ReadDir,
ReadDirRes,
WriteFile,
2018-09-30 18:06:41 -04:00
CopyFile,
2018-09-12 11:44:58 -04:00
Rename,
2018-09-25 00:20:49 -04:00
Readlink,
ReadlinkRes,
2018-09-19 00:38:24 -04:00
Symlink,
2018-09-11 15:38:53 -04:00
Stat,
StatRes,
SetEnv,
2018-09-30 15:06:20 -04:00
Truncate,
Open,
OpenRes,
Read,
ReadRes,
Write,
WriteRes,
Close,
Listen,
ListenRes,
Accept,
Dial,
NewConn,
2018-07-04 14:50:28 -04:00
}
enum ErrorKind: byte {
NoError = 0,
// io errors
NotFound,
PermissionDenied,
ConnectionRefused,
ConnectionReset,
ConnectionAborted,
NotConnected,
AddrInUse,
AddrNotAvailable,
BrokenPipe,
AlreadyExists,
WouldBlock,
InvalidInput,
InvalidData,
TimedOut,
Interrupted,
WriteZero,
Other,
UnexpectedEof,
BadFileDescriptor,
// url errors
EmptyHost,
IdnaError,
InvalidPort,
InvalidIpv4Address,
InvalidIpv6Address,
InvalidDomainCharacter,
RelativeUrlWithoutBase,
RelativeUrlWithCannotBeABaseBase,
SetHostOnCannotBeABaseUrl,
Overflow,
// hyper errors
HttpUser,
HttpClosed,
HttpCanceled,
HttpParse,
HttpOther,
}
table Base {
2018-08-17 16:59:57 -04:00
cmd_id: uint32;
sync: bool = true; // TODO(ry) Change default to false.
error_kind: ErrorKind = NoError;
error: string;
inner: Any;
2018-07-04 14:50:28 -04:00
}
table Start {
unused: int8;
}
table StartRes {
cwd: string;
argv: [string];
debug_flag: bool;
deps_flag: bool;
2018-09-24 15:33:50 -04:00
recompile_flag: bool;
}
table CodeFetch {
module_specifier: string;
containing_file: string;
}
table CodeFetchRes {
// If it's a non-http module, moduleName and filename will be the same.
// For http modules, moduleName is its resolved http URL, and filename
// is the location of the locally downloaded source code.
module_name: string;
filename: string;
source_code: string;
output_code: string; // Non-empty only if cached.
}
table CodeCache {
filename: string;
source_code: string;
output_code: string;
}
table SetTimeout {
2018-10-02 20:47:40 -04:00
timeout: double;
}
table Exit {
code: int;
}
table Environ {}
table SetEnv {
2018-09-07 18:59:02 -04:00
key: string;
value: string;
}
table EnvironRes {
2018-09-07 18:59:02 -04:00
map: [EnvPair];
}
table EnvPair {
2018-09-07 18:59:02 -04:00
key: string;
value: string;
}
table FetchReq {
id: uint;
url: string;
// header_line: [string];
}
table FetchRes {
id: uint;
status: int;
2018-09-12 15:16:42 -04:00
header_key: [string];
header_value: [string];
2018-08-13 15:02:35 -04:00
body: [ubyte];
}
2018-08-23 18:36:45 -04:00
table MakeTempDir {
dir: string;
prefix: string;
suffix: string;
}
table MakeTempDirRes {
path: string;
}
2018-09-10 05:48:36 -04:00
table Mkdir {
2018-08-26 02:26:30 -04:00
path: string;
mode: uint;
// mode specified by https://godoc.org/os#FileMode
}
table Remove {
path: string;
recursive: bool;
}
table ReadFile {
filename: string;
}
table ReadFileRes {
2018-08-13 15:02:35 -04:00
data: [ubyte];
}
2018-10-03 17:56:56 -04:00
table ReadDir {
path: string;
}
table ReadDirRes {
entries: [StatRes];
}
table WriteFile {
filename: string;
data: [ubyte];
perm: uint;
// perm specified by https://godoc.org/os#FileMode
}
2018-09-30 18:06:41 -04:00
table CopyFile {
from: string;
to: string;
}
2018-09-12 11:44:58 -04:00
table Rename {
2018-09-03 20:22:30 -04:00
oldpath: string;
newpath: string;
}
2018-09-25 00:20:49 -04:00
table Readlink {
name: string;
}
table ReadlinkRes {
path: string;
}
2018-09-19 00:38:24 -04:00
table Symlink {
oldname: string;
newname: string;
}
2018-09-11 15:38:53 -04:00
table Stat {
2018-08-29 09:22:25 -04:00
filename: string;
lstat: bool;
}
2018-09-11 15:38:53 -04:00
table StatRes {
2018-08-29 09:22:25 -04:00
is_file: bool;
is_symlink: bool;
len: ulong;
modified:ulong;
accessed:ulong;
created:ulong;
mode: uint;
has_mode: bool; // false on windows
2018-10-03 17:56:56 -04:00
name: string;
path: string;
2018-08-29 09:22:25 -04:00
}
2018-09-30 15:06:20 -04:00
table Truncate {
name: string;
len: uint;
}
table Open {
filename: string;
perm: uint;
}
table OpenRes {
rid: int;
}
table Read {
rid: int;
// (ptr, len) is passed as second parameter to libdeno.send().
}
table ReadRes {
nread: uint;
eof: bool;
}
table Write {
rid: int;
}
table WriteRes {
nbyte: uint;
}
table Close {
rid: int;
}
table Listen {
network: string;
address: string;
}
table ListenRes {
rid: int;
}
table Accept {
rid: int;
}
table Dial {
network: string;
address: string;
}
// Response to Accept and Dial.
table NewConn {
rid: int;
remote_addr: string;
local_addr: string;
}
root_type Base;