aboutsummaryrefslogtreecommitdiff
path: root/api/bytes.md
diff options
context:
space:
mode:
authorBruce Hill <bruce@bruce-hill.com>2025-04-19 14:35:34 -0400
committerBruce Hill <bruce@bruce-hill.com>2025-04-19 14:35:34 -0400
commit67fd3c725e6511adf70345f0733ec0b948477a11 (patch)
tree913d9f30d8ce3614a9ae3715281f8804323b24ff /api/bytes.md
parent0974d632c3dda7874f01c58bfc342b73cd1634a4 (diff)
Make API documentation into YAML files and autogenerate markdown files
and manpages from those.
Diffstat (limited to 'api/bytes.md')
-rw-r--r--api/bytes.md108
1 files changed, 108 insertions, 0 deletions
diff --git a/api/bytes.md b/api/bytes.md
new file mode 100644
index 00000000..1b61f166
--- /dev/null
+++ b/api/bytes.md
@@ -0,0 +1,108 @@
+% API
+
+# Builtins
+
+# Byte
+## Byte.hex
+
+```tomo
+Byte.hex : func(byte: Byte, uppercase: Bool = yes, prefix: Bool = no -> Text)
+```
+
+Convert a byte to a hexidecimal text representation.
+
+Argument | Type | Description | Default
+---------|------|-------------|---------
+byte | `Byte` | The byte to convert to hex. |
+uppercase | `Bool` | Whether or not to use uppercase hexidecimal letters. | **Default:** `yes`
+prefix | `Bool` | Whether or not to prepend a `0x` prefix. | **Default:** `no`
+
+**Return:** The byte as a hexidecimal text.
+
+
+**Example:**
+```tomo
+>> Byte(18).hex()
+= "0x12"
+
+```
+## Byte.is_between
+
+```tomo
+Byte.is_between : func(x: Byte, low: Byte, high: Byte -> Bool)
+```
+
+Determines if an integer is between two numbers (inclusive).
+
+Argument | Type | Description | Default
+---------|------|-------------|---------
+x | `Byte` | The integer to be checked. |
+low | `Byte` | The lower bound to check (inclusive). |
+high | `Byte` | The upper bound to check (inclusive). |
+
+**Return:** `yes` if `low <= x and x <= high`, otherwise `no`
+
+
+**Example:**
+```tomo
+>> Byte(7).is_between(1, 10)
+= yes
+>> Byte(7).is_between(100, 200)
+= no
+>> Byte(7).is_between(1, 7)
+= yes
+
+```
+## Byte.parse
+
+```tomo
+Byte.parse : func(text: Text -> Byte?)
+```
+
+Parse a byte literal from text.
+
+Argument | Type | Description | Default
+---------|------|-------------|---------
+text | `Text` | The text to parse. |
+
+**Return:** The byte parsed from the text, if successful, otherwise `none`.
+
+
+**Example:**
+```tomo
+>> Byte.parse("5")
+= Byte(5)?
+>> Byte.parse("asdf")
+= none
+
+```
+## Byte.to
+
+```tomo
+Byte.to : func(first: Byte, last: Byte, step: Byte? = none -> func(->Byte?))
+```
+
+Returns an iterator function that iterates over the range of bytes specified.
+
+Argument | Type | Description | Default
+---------|------|-------------|---------
+first | `Byte` | The starting value of the range. |
+last | `Byte` | The ending value of the range. |
+step | `Byte?` | An optional step size to use. If unspecified or `none`, the step will be inferred to be `+1` if `last >= first`, otherwise `-1`. | **Default:** `none`
+
+**Return:** An iterator function that returns each byte in the given range (inclusive).
+
+
+**Example:**
+```tomo
+>> Byte(2).to(5)
+= func(->Byte?)
+>> [x for x in Byte(2).to(5)]
+= [Byte(2), Byte(3), Byte(4), Byte(5)]
+>> [x for x in Byte(5).to(2)]
+= [Byte(5), Byte(4), Byte(3), Byte(2)]
+
+>> [x for x in Byte(2).to(5, step=2)]
+= [Byte(2), Byte(4)]
+
+```