Changeset View
Changeset View
Standalone View
Standalone View
swh/web/tests/resources/contents/code/extensions/test.capnp
- This file was added.
@0xdbb9ad1f14bf0b36; # unique file ID, generated by `capnp id` | |||||
struct Person { | |||||
name @0 :Text; | |||||
birthdate @3 :Date; | |||||
email @1 :Text; | |||||
phones @2 :List(PhoneNumber); | |||||
struct PhoneNumber { | |||||
number @0 :Text; | |||||
type @1 :Type; | |||||
enum Type { | |||||
mobile @0; | |||||
home @1; | |||||
work @2; | |||||
} | |||||
} | |||||
} | |||||
struct Date { | |||||
year @0 :Int16; | |||||
month @1 :UInt8; | |||||
day @2 :UInt8; | |||||
flags @3 :List(Bool) = [ true, false, false, true ]; | |||||
} | |||||
interface Node { | |||||
isDirectory @0 () -> (result :Bool); | |||||
} | |||||
interface Directory extends(Node) { | |||||
list @0 () -> (list: List(Entry)); | |||||
struct Entry { | |||||
name @0 :Text; | |||||
node @1 :Node; | |||||
} | |||||
create @1 (name :Text) -> (file :File); | |||||
mkdir @2 (name :Text) -> (directory :Directory) | |||||
open @3 (name :Text) -> (node :Node); | |||||
delete @4 (name :Text); | |||||
link @5 (name :Text, node :Node); | |||||
} | |||||
interface File extends(Node) { | |||||
size @0 () -> (size: UInt64); | |||||
read @1 (startAt :UInt64 = 0, amount :UInt64 = 0xffffffffffffffff) | |||||
-> (data: Data); | |||||
# Default params = read entire file. | |||||
write @2 (startAt :UInt64, data :Data); | |||||
truncate @3 (size :UInt64); | |||||
} | |||||
No newline at end of file |