v0.3.0 tasks:
x verify (test) unsatisfied third party caveat
x docs: note that 'validate' does not check much/anything
x resolve base64 encoding situation
=> 'deserialize' can detect type of *raw* stuff; ok.
=> `deserialize` vs `deserialize_raw`
=> deserialize works on base64-encoded or JSON; make this generic so it works with &str?
=> deserialize_binary works on internal binary; only V1 or V2
x basic compat testing
x libmacaroons examples
all serialize/deserialize combinations (from pymacaroons)
some other pymacaroons examples
---
- sanity test bytestring length
https://github.com/rescrv/libmacaroons/blob/master/macaroons.h#L43
- sanity test caveat count
https://github.com/rescrv/libmacaroons/blob/master/macaroons.h#L45
- some more docs coverage (all types; notable functions)
=> particularly errors; also reference back from verify/parse functions
- a bit more test coverage, if easy? eg, of errors
- expand doc coverage (and doc tests?)
- main docs:
=> mention 'location' and 'identifier' in context of macaroon
=> third-party caveats in a sub-section (?)
=> use meaningful location and identifier in the example
=> "show" serializatino into base64 token in main docs
=> mention HMAC, libsodium, etc in the main docs
=> split in to simple example and full third-party caveat example?
nit picking:
- doc: Format variants, with brief description. maybe a recommendation about which to use?
- docs: hide 'Result'?
- rename 'initialize' to... 'initialize_thread'?
## bigger/later
- ensure full test coverage
- remove ByteString type (at least from public interface)
- consider tweetnacl instead of full libsodium?
https://crates.io/crates/sodalite
- more compat testing
libmacaroons test library (reading/writing vectors from disk)
macarooncompat stuff