summary refs log tree commit diff stats
path: root/HACKING.md
diff options
context:
space:
mode:
authorSoniEx2 <endermoneymod@gmail.com>2021-02-07 22:19:21 -0300
committerSoniEx2 <endermoneymod@gmail.com>2021-02-07 22:20:34 -0300
commit69652efe8ad9738a94fef571c8b81e342f96e7b4 (patch)
tree9b02efcb139894ac3b5df2667be313f2a9df4319 /HACKING.md
parentd81ce99e0d1f1371ba9165a67280a810ee27bf82 (diff)
Finish porting parser
Diffstat (limited to 'HACKING.md')
-rw-r--r--HACKING.md22
1 files changed, 22 insertions, 0 deletions
diff --git a/HACKING.md b/HACKING.md
new file mode 100644
index 0000000..3d3b52e
--- /dev/null
+++ b/HACKING.md
@@ -0,0 +1,22 @@
+Developer notes
+===============
+
+This file documents some potentially-unfamiliar patterns contained within this
+codebase.
+
+`boolinator`
+------------
+
+This crate makes use of `boolinator` in places. Make sure you're familiar with
+it.
+
+`bool?` (or close enough)
+-------------------------
+
+Rust doesn't have `?` on `bool`. This crate uses an `&& { side_effects; true }`
+pattern sometimes. The PEG-like parser uses a `bry!` macro (`try!` for bools).
+
+`proptest`
+----------
+
+This crate makes extensive use of proptests, because they are awesome!