File: default.expect.txt

package info (click to toggle)
highlight.js 10.7.3%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 8,332 kB
  • sloc: javascript: 41,059; makefile: 157; python: 29; sh: 20
file content (55 lines) | stat: -rw-r--r-- 3,900 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<span class="hljs-meta">@0xdbb9ad1f14bf0b36;</span>  <span class="hljs-comment"># unique file ID, generated by `capnp id`</span>

<span class="hljs-class"><span class="hljs-keyword">struct</span> <span class="hljs-title">Person</span> </span>{
  name <span class="hljs-symbol">@0</span> :<span class="hljs-built_in">Text</span>;
  birthdate <span class="hljs-symbol">@3</span> :Date;

  email <span class="hljs-symbol">@1</span> :<span class="hljs-built_in">Text</span>;
  phones <span class="hljs-symbol">@2</span> :<span class="hljs-built_in">List</span>(PhoneNumber);

  <span class="hljs-class"><span class="hljs-keyword">struct</span> <span class="hljs-title">PhoneNumber</span> </span>{
    number <span class="hljs-symbol">@0</span> :<span class="hljs-built_in">Text</span>;
    type <span class="hljs-symbol">@1</span> :Type;

    <span class="hljs-class"><span class="hljs-keyword">enum</span> <span class="hljs-title">Type</span> </span>{
      mobile <span class="hljs-symbol">@0</span>;
      home <span class="hljs-symbol">@1</span>;
      work <span class="hljs-symbol">@2</span>;
    }
  }
}

<span class="hljs-class"><span class="hljs-keyword">struct</span> <span class="hljs-title">Date</span> </span>{
  year <span class="hljs-symbol">@0</span> :<span class="hljs-built_in">Int16</span>;
  month <span class="hljs-symbol">@1</span> :<span class="hljs-built_in">UInt8</span>;
  day <span class="hljs-symbol">@2</span> :<span class="hljs-built_in">UInt8</span>;
  flags <span class="hljs-symbol">@3</span> :<span class="hljs-built_in">List</span>(<span class="hljs-built_in">Bool</span>) = [ <span class="hljs-literal">true</span>, <span class="hljs-literal">false</span>, <span class="hljs-literal">false</span>, <span class="hljs-literal">true</span> ];
}

<span class="hljs-class"><span class="hljs-keyword">interface</span> <span class="hljs-title">Node</span> </span>{
  isDirectory <span class="hljs-symbol">@0</span> () -&gt; (result :<span class="hljs-built_in">Bool</span>);
}

<span class="hljs-class"><span class="hljs-keyword">interface</span> <span class="hljs-title">Directory</span> extends(Node) </span>{
  list <span class="hljs-symbol">@0</span> () -&gt; (list: <span class="hljs-built_in">List</span>(Entry));
  <span class="hljs-class"><span class="hljs-keyword">struct</span> <span class="hljs-title">Entry</span> </span>{
    name <span class="hljs-symbol">@0</span> :<span class="hljs-built_in">Text</span>;
    node <span class="hljs-symbol">@1</span> :Node;
  }

  create <span class="hljs-symbol">@1</span> (name :<span class="hljs-built_in">Text</span>) -&gt; (file :File);
  mkdir <span class="hljs-symbol">@2</span> (name :<span class="hljs-built_in">Text</span>) -&gt; (directory :Directory)
  open <span class="hljs-symbol">@3</span> (name :<span class="hljs-built_in">Text</span>) -&gt; (node :Node);
  delete <span class="hljs-symbol">@4</span> (name :<span class="hljs-built_in">Text</span>);
  link <span class="hljs-symbol">@5</span> (name :<span class="hljs-built_in">Text</span>, node :Node);
}

<span class="hljs-class"><span class="hljs-keyword">interface</span> <span class="hljs-title">File</span> extends(Node) </span>{
  size <span class="hljs-symbol">@0</span> () -&gt; (size: <span class="hljs-built_in">UInt64</span>);
  read <span class="hljs-symbol">@1</span> (startAt :<span class="hljs-built_in">UInt64</span> = <span class="hljs-number">0</span>, amount :<span class="hljs-built_in">UInt64</span> = <span class="hljs-number">0</span>xffffffffffffffff)
       -&gt; (data: <span class="hljs-built_in">Data</span>);
  <span class="hljs-comment"># Default params = read entire file.</span>

  write <span class="hljs-symbol">@2</span> (startAt :<span class="hljs-built_in">UInt64</span>, data :<span class="hljs-built_in">Data</span>);
  truncate <span class="hljs-symbol">@3</span> (size :<span class="hljs-built_in">UInt64</span>);
}