forked from syndicate-lang/preserves
More on autodetection
This commit is contained in:
parent
af7c523513
commit
3eeaab375a
20
preserves.md
20
preserves.md
|
@ -945,6 +945,26 @@ syntax being used. In a network protocol supporting this kind of
|
||||||
autodetection, clients may transmit LF or `0xFF` to select text or
|
autodetection, clients may transmit LF or `0xFF` to select text or
|
||||||
binary syntax, respectively.
|
binary syntax, respectively.
|
||||||
|
|
||||||
|
Furthermore, if an application consistently uses `Record`s for its
|
||||||
|
top-level messages,[^records-and-nonatoms] eschewing `Atom`s in
|
||||||
|
particular, then autodetection of the encoding used for a given input
|
||||||
|
can be done as follows:
|
||||||
|
|
||||||
|
| First byte of encoded input | Encoding | Other conclusions |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| `0x80`--`0x8F` | binary | `Record` (format B) |
|
||||||
|
| `0x28` | binary | `Record` (format C) |
|
||||||
|
| `0x05` | binary | annotated value (presumably a `Record`) |
|
||||||
|
| `0xFF` | binary | no-op; value will follow |
|
||||||
|
| --- | --- | --- |
|
||||||
|
| `0x7B` ("<") | text | `Record` |
|
||||||
|
| `0x40` ("@") | text | annotated value (presumably a `Record`) |
|
||||||
|
| `0x09`, `0x0A`, `0x0D`, `0x20` or `0x2C` | text | whitespace; value will follow |
|
||||||
|
|
||||||
|
[^records-and-nonatoms]: Similar reasoning can be used to permit
|
||||||
|
unambiguous detection of encoding when `Collection`s are allowed
|
||||||
|
as top-level messages as well as `Record`s.
|
||||||
|
|
||||||
## Appendix. Table of lead byte values
|
## Appendix. Table of lead byte values
|
||||||
|
|
||||||
00 - False
|
00 - False
|
||||||
|
|
Loading…
Reference in New Issue