Initialize repository
This commit is contained in:
commit
bae7344890
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
/target
|
8
Cargo.toml
Normal file
8
Cargo.toml
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
[package]
|
||||||
|
name = "PronounsToday"
|
||||||
|
version = "0.1.0"
|
||||||
|
edition = "2018"
|
||||||
|
|
||||||
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
|
|
||||||
|
[dependencies]
|
56
doc/User-Preference-String-Spec.txt
Normal file
56
doc/User-Preference-String-Spec.txt
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
User preferences are an unpadded base64 string, whose contents are defined in this
|
||||||
|
document. Because the pref string is passed through the page URL, a small size is a top
|
||||||
|
priority.
|
||||||
|
|
||||||
|
user-preferences := [spec-version spec-variant contents]
|
||||||
|
spec-version := 5 bits
|
||||||
|
spec-variant := 3 bits
|
||||||
|
contents := version-0 | ...
|
||||||
|
|
||||||
|
If user-preferences is not present (i.e. is zero-length), then the default preferences
|
||||||
|
should be assumed. Default preferences will be set by the instance operator
|
||||||
|
|
||||||
|
version-1 := variant-0-0
|
||||||
|
|
||||||
|
variant-0-0 := default-enabled default-weight *command
|
||||||
|
default-enabled := 1 bit
|
||||||
|
default-weight := weight
|
||||||
|
|
||||||
|
Variant zero works with a series of commands. The version starts off with one byte. The
|
||||||
|
first bit defines whether pronoun sets are enabled or disabled by default. A 1 indicates
|
||||||
|
that all pronoun sets are enabled by default. The next 7 bits are the default weight of
|
||||||
|
any enabled pronoun set. Disabled pronoun sets have a weight of zero.
|
||||||
|
|
||||||
|
Following these defaults are a series of commands. The resolution of this algorithm
|
||||||
|
assumes a cursor that moves over the list of pronoun sets. The cursor starts at the first
|
||||||
|
pronoun set. After the execution of each command, the cursor moves forward by one pronoun
|
||||||
|
set.
|
||||||
|
|
||||||
|
Every pronoun set is either enabled or disabled. Enabled pronoun sets have the default
|
||||||
|
weight, unless overridden. Each command is exactly one byte
|
||||||
|
|
||||||
|
command := set-weight | skip
|
||||||
|
|
||||||
|
set-weight := "0b" weight
|
||||||
|
weight := 7 bits
|
||||||
|
|
||||||
|
The set weight command sets the weight of the pronoun set under the cursor, and implicitly
|
||||||
|
enables it, if it wasn't already enabled. The cursor moves forward by one pronoun set
|
||||||
|
after executing the command, so several set-weight commands can be chained together in
|
||||||
|
order to set several pronoun sets in a row.
|
||||||
|
|
||||||
|
skip := "1b" toggle-enabled distance
|
||||||
|
toggle-enabled := 1 bit
|
||||||
|
distance := 6 bits
|
||||||
|
|
||||||
|
The skip command moves the cursor ahead by a certain number of pronoun sets, and then
|
||||||
|
optionally enables or disables the pronoun set under the cursor. If toggle-enabled is set
|
||||||
|
to 1, then the "enabled" state of the pronoun set is toggled. Otherwise, it is left as
|
||||||
|
the default. If a pronoun set is moved into the enabled state, it's weight is set to the
|
||||||
|
default pronoun set weight. To set it to a different weight, move the cursor to one
|
||||||
|
before the target pronoun set (without toggling state) and then issue a set-weight
|
||||||
|
command.
|
||||||
|
|
||||||
|
Remember that the cursor moves forward after EVERY command, including the skip command.
|
||||||
|
This means that to set a weight other than the default weight, you must move the cursor to
|
||||||
|
one before the pronoun set you want to change, and then issue a set-weight command.
|
3
src/main.rs
Normal file
3
src/main.rs
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
fn main() {
|
||||||
|
println!("Hello, world!");
|
||||||
|
}
|
Loading…
Reference in a new issue