aboutsummaryrefslogtreecommitdiff
path: root/crates/tor-netdoc
Commit message (Collapse)AuthorAgeFilesLines
...
* | tor-netdoc: impl NetdocEncodableFields for ProtoStatusesIan Jackson2026-04-212-1/+16
| | | | | | | | We don't need the helper struct for this.
* | tor-netdoc: Split out proto_statuses_parse2_encode moduleIan Jackson2026-04-211-9/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | We're going to want this macrology to generate a encoder implmeentation too. It's most convenient to make this its own module, separating it from parse2_impls. Enable the module if encoding is enabled, decorating its parsing-related contents with the appropriate cfg. Use pub(super) to export the encoding-related imports, so that we don't end up with endlessly duplicated import lists. Now there is place where we can put the encoder.
* | tor-netdoc: impl ItemValueEncodable for tor_protover::ProtocolsIan Jackson2026-04-212-0/+14
| |
* | tor-netdoc: impl ItemValueEncodable for NetParams<i32>Ian Jackson2026-04-212-0/+23
| | | | | | | | | | | | Start a new encode_impls module. The pub(super) will be used in a moment.
* | tor-netdoc: ns Lifetime: derive NetdocEncodableFieldsIan Jackson2026-04-212-0/+2
| |
* | tor-netdoc: ns Lifetime: Use ConstructorIan Jackson2026-04-212-5/+20
| |
* | tor-netdoc: ns Lifetime: use new deftly cfg approachIan Jackson2026-04-211-3/+5
| | | | | | | | This is what we did for authcert.rs and it worked well there.
* | tor-netdoc: ConsensusMethods: derive ItemValueEncodableIan Jackson2026-04-212-2/+4
| |
* | tor-netdoc: Fix type of NotPresent items in ns PreambleIan Jackson2026-04-214-6/+9
| |
* | tor-netdoc: Implement encoding traits for Arc<T>Ian Jackson2026-04-213-0/+35
| |
* | Merge branch 'parse2-more-debug' into 'main'Clara Engler2026-04-215-16/+154
|\ \ | | | | | | | | | | | | Add debugging support to ItemValueParseable derive See merge request tpo/core/arti!3881
| * | tor-netdoc: Add debugging to ItemValueParseable, demo in testIan Jackson2026-04-132-2/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With cargo test --all-features -p tor-netdoc -- --no-capture test2 the output now contains, amongst many other things: netdoc TestItem parse: item start, "test-item", "N", Some("TEST OBJECT") netdoc TestItem parse: field needed, normal, args=1, "N" netdoc TestItem parse: field optional, normal, args=Option<_>, "" netdoc TestItem parse: field rest, normal, args=Vec<_>, "" netdoc TestItem parse: field object, object, object=1, Some(("TEST OBJECT", Ok(5))) netdoc TestItem parse: item complete Ok
| * | tor-netdoc: Add debugging to ItemValueParseableIan Jackson2026-04-131-1/+16
| | |
| * | tor-netdoc: parse2 derives: use NetdocParseAnyCommon in ItemValueParseableIan Jackson2026-04-131-2/+1
| | | | | | | | | | | | So far this just abolishes a duplicate P.
| * | tor-netdoc: parse2 derives: Break out NetdocParseAnyCommonIan Jackson2026-04-131-13/+21
| | | | | | | | | | | | | | | | | | | | | We're going to want tio reuse dtrace from here in the ItemValueParseable derive (which doesn't use NetdocSomeItemsParseableCommon because it derives for one item type, not a document containing multiple items).
| * | tor-netdoc: parse2: with debug for items parsing, show multiplicityIan Jackson2026-04-131-0/+1
| | |
| * | tor-netdoc: parse2 multiplicity: Add debugging methods to traitsIan Jackson2026-04-132-0/+108
| | |
| * | tor-netdoc: derives debug: Add a missing trait importIan Jackson2026-04-131-0/+2
| | | | | | | | | | | | | | | | | | Without this adding `#[deftly(netdoc(debug))]` can fail to build, because the encoding module doesn't have `io::Write` in its `pub use`. (Unlike parse2, it doesn't have a separate macro prelude.)
* | | tor-netdoc: Support `#[deftly(netdoc(skip))]` in itemsIan Jackson2026-04-205-1/+18
| | | | | | | | | | | | Ie for "arguments" that don't actually appear.
* | | tor-netdoc: Test for IPv6-mapped IPv4 addressIan Jackson2026-04-201-0/+1
| | |
* | | tor-netdoc: Test for `::` host addressIan Jackson2026-04-201-0/+1
| | |
* | | tor-netdoc: Make Nickname have its own parsing error typeIan Jackson2026-04-206-17/+24
| | | | | | | | | | | | | | | | | | | | | | | | This will let us use it in more places, more sensibly. Sadly it means a lot of syntactic vinegar at many of the call sites in the old parser, which has very janky ideas about how errors should work.
* | | tor-netdoc: semver.md for InternetHost and HostnameIan Jackson2026-04-201-0/+1
| | |
* | | tor-netdoc: Tests for InternetHost and HostnameIan Jackson2026-04-201-0/+65
| | |
* | | tor-netdoc: Introduce InternetHost newtypeIan Jackson2026-04-202-1/+52
| | | | | | | | | | | | Tests will come in a moment.
* | | tor-netdoc: Introduce Hostname newtypeIan Jackson2026-04-203-0/+82
| | | | | | | | | | | | Tests will come in a moment.
* | | Merge branch 'p2-misc-exactly-1' into 'main'Clara Engler2026-04-202-3/+6
|\ \ \ | |_|/ |/| | | | | | | | tor-netdoc: derives: Three small improvements See merge request tpo/core/arti!3887
| * | tor-netdoc: derives: Expect an intro itemIan Jackson2026-04-141-0/+1
| | | | | | | | | | | | | | | | | | This can't trigger, but when messing about with some new features, I messed up and got a syntax error here. Let's try this feature out, here.
| * | tor-netdoc: derives: Reformat a long lineIan Jackson2026-04-141-2/+4
| | | | | | | | | | | | No functional change.
| * | tor-netdoc: derives: Remove an otiose testIan Jackson2026-04-141-1/+1
| |/ | | | | | | T_SIGNATURES is false, just above.
* | Merge branch 'parse2-fix-eh' into 'main'Ian Jackson2026-04-141-1/+1
|\ \ | | | | | | | | | | | | tor-netdoc: parse2: Fix error for invalid item argument See merge request tpo/core/arti!3879
| * | tor-netdoc: parse2: Fix error for invalid item argumentIan Jackson2026-04-141-1/+1
| |/ | | | | | | When we can't parse a NormalItemArgument, that's Invalid, not Missing.
* | tor-netdoc: impl NormalItemArgument for B16 and B16UIan Jackson2026-04-141-0/+3
| | | | | | | | | | I also searched this file for FromStr impls and these types were the only ones that ought to be NormalItemArgument but weren't.
* | tor-netdoc: Fix a slip in a doc commentIan Jackson2026-04-141-1/+1
| |
* | tor-netdoc: Explain why the macro doesn't use hex::encodeIan Jackson2026-04-141-0/+2
| |
* | tor-netdoc: Fix slip in semver.mdIan Jackson2026-04-141-1/+1
| |
* | tor-netdoc: Use Transparent and derive Hash for RsaIdentity wrappersIan Jackson2026-04-142-8/+9
| |
* | tor-netdoc: Use Transparent for SystemTime wrappersIan Jackson2026-04-142-4/+5
| |
* | tor-netdoc: Use Transparent for Curve25519PublicIan Jackson2026-04-142-1/+3
| |
* | tor-netdoc: types/misc.rs: Have Transparent do From and IntoIan Jackson2026-04-141-7/+19
| | | | | | | | | | Unfortunately one derive can't invoke another, so we must open-code them, just like the other traits.
* | tor-netdoc: types/misc.rs: Break out Transparent derive module/macroIan Jackson2026-04-141-31/+83
| | | | | | | | | | | | | | Nothing derives just Transparent yet. Mostly code motion, with some additional furniture and docs. Review with git show --color-moved.
* | tor-netdoc: types/misc.rs: Prepare message for Transparent deriveIan Jackson2026-04-141-2/+2
| | | | | | | | | | | | This error message is going to be used by both Transparent and BytesTransparent. Put it in the code that is going to be part of Transparent, and remove the macro name from it.
* | tor-netdoc: types/misc.rs: Remove a stray comma in a docIan Jackson2026-04-141-1/+1
| |
* | tor-netdoc: types/misc.rs: Use fmt and Display aliasesIan Jackson2026-04-141-12/+12
| | | | | | | | This reduces clutter some more.
* | tor-netdoc: types/misc.rs: Use FromStr aliasIan Jackson2026-04-141-16/+18
| | | | | | | | | | | | This is in the use's at the top of the file. If we `use super::*` (like we do in the newer modules): the code can get a lot more readable.
* | tor-netdoc: Provide B16U for printing hex uppercaseIan Jackson2026-04-142-3/+32
| | | | | | | | | | | | | | Test the parsing and printing success cases. Given that the parsing implementation is just a wrapper around B16's, we don't need explicit tests for that.
* | tor-netdoc: Make B16 pub and improve its APIIan Jackson2026-04-142-15/+8
| | | | | | | | | | Make this a public BytesTransparent newtype like B64, implementing all the same traits etc.
* | tor-netdoc: impl Display for B16, as lowercaseIan Jackson2026-04-141-1/+16
| | | | | | | | | | | | | | | | On reflection, and looking at the test cases, I think the name `B16` should refer to the lowercase version. I'll introduce a type for uppercase in a moment. Test the display implementation.
* | tor-netdoc: Clean up base16 testIan Jackson2026-04-141-4/+11
| | | | | | | | | | | | | | Replace the open-coded .parse() calls with a closure. This will let us test round trips, other types, etc., for each pairs of test values.
* | tor-netdoc: Adjust API of B64Ian Jackson2026-04-142-2/+5
| | | | | | | | | | | | | | | | Firstly, make its field pub. Secondly, make the into_array method crate-private. It has a crate-specific (albeit public) error type, The same basic effect can be achieved with methods from std on arrays and slices.