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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
//! **The trail** — what an engine has DONE, and the two acts on that record
//! (yog's `docs/REMOTE.md` §9.17; bl-4c48, bl-b8f7).
//!
//! # It is a door and not a row, and the reason is one field
//!
//! `ops` carries `max`, and `max` is a **number**. [`super`]'s table is rows of
//! named strings and refuses to grow an arm for anything else — *"a gesture
//! whose parameters are not all strings … is not added as a special case"* —
//! so this is a typed door beside [`super::tuning`]'s two, on exactly their
//! terms: one builder, no second spelling of the gesture, and no row in the
//! table `lernie help` prints.
//!
//! And `max` is required rather than defaulted: the wire refuses an envelope
//! without it (`non-integer field "max"`). The default lives on yog's own line
//! grammar, which is a different surface with a different reader; a seat that
//! left the field out would be spelling a convenience it does not have.
//!
//! **What argv spells is `lernie ops [<max>]`** (bl-28a4), a door in
//! [`super::doors`] beside the start composite's and for this file's own
//! reason: a number is no more a word a table of named strings can hold than a
//! nested object is. It answers the field it cannot leave out from [`DEPTH`],
//! so the word spends the seat's written-down answer rather than making an
//! operator answer a question the wire asked the SEAT — and `lernie ops` with
//! no depth is the ordinary reading rather than *"unrecognised argument"*,
//! which is what it used to earn.
//!
//! # It names no workspace, so its subject is every channel
//!
//! Read off the envelope and nowhere else (`crate::envelope::workspace`): a
//! gesture with no workspace field has no way to name a channel, so the asker
//! puts it down every one this box holds and the pane is the union
//! (`crate::ui::trail`). That is the decision queue's own shape, one noun over.
use ;
use Verb;
use crateenvelope;
/// The word this door spells, and the envelope's `op`. One fact.
pub const OPS: &str = "ops";
/// The field that says how deep to read.
const MAX: &str = "max";
/// **How much of the trail this seat asks for**, on both of its faces.
///
/// A bound is required by the wire and this is the seat's own answer to it,
/// stated once. It is deliberately larger than a screen: the pane scrolls and
/// so does a terminal, and an operator reading a trail is looking for the row
/// before the one that broke — a depth that stopped at the visible rows would
/// make *scroll down* answer nothing.
///
/// **The word spends it too** (bl-28a4): `lernie ops` with no depth asks with
/// this figure, which is what makes the two faces one answer rather than two
/// that can drift.
pub const DEPTH: u64 = 200;
/// **The trail, as deep as [`DEPTH`]** — newest last, every action that
/// crossed the boundary.
/// **The operator's watermark.** It names no workspace either, so it fans on
/// exactly the read's terms — and that is the whole of its reading: the pane
/// is the union across channels, so an acknowledgement made while looking at
/// the union is an acknowledgement of the union.
pub const ACK: Verb = Verb ;
/// **The truncation.** The one destructive act on this surface.
pub const CLEAR_TRAIL: Verb = Verb ;
/// The watermark, typed.
/// The truncation, typed.