aboutsummaryrefslogtreecommitdiff
path: root/crates/tor-netdoc/src
Commit message (Collapse)AuthorAgeFilesLines
...
* | tor-netdoc: Rename RelayFlags elements for regularity vs specIan Jackson2025-11-183-7/+7
| | | | | | | | | | Add underscores so that the spec keywords and the flag constants correspond (according to `paste`'s case-changing rules).
* | tor-netdoc: Improve docs for RelayFlagsIan Jackson2025-11-181-1/+10
| | | | | | | | | | | | | | * Document the bizarre FromStr impl. That isn't in my way, so I don't intend to fix it. So I've documented it instead. * Mention the naming discrepancy.
* | tor-netdoc: Move RelayFlags into its own moduleIan Jackson2025-11-183-161/+185
| | | | | | | | | | We're going to do a lot more with this and it's less confusing to have it all together.
* | Merge branch 'p2-dedup' into 'main'Ian Jackson2025-11-111-123/+139
|\ \ | | | | | | | | | | | | tor-netdoc: parse2 More deduplication of the derive macro See merge request tpo/core/arti!3455
| * | tor-netdoc: parse2: Improve error message when using with=Ian Jackson2025-11-101-1/+1
| | | | | | | | | | | | | | | This can result in "trait not implemented" errors here. Use the `${paste_spanned}` trick.
| * | tor-netdoc: parse2 derive: deduplicate completionIan Jackson2025-11-101-35/+33
| | |
| * | tor-netdoc: parse2 derive: deduplicate item accumulationIan Jackson2025-11-101-31/+35
| | |
| * | tor-netdoc: parse2 derive: deduplicate item accumulation (prep)Ian Jackson2025-11-101-43/+54
| | | | | | | | | | | | | | | | | | | | | | | | | | | Move what is now IF_NONSTRUCTURAL_ACCUMULATE into the common module. It's not yet suitable for reuse. The docs for ACCUMULATE_ITEM_VALUE are still wrong. We'll fix that in a moment.
| * | tor-netdoc: parse2 derive: Provide dtrace in NetdocParseableFieldsIan Jackson2025-11-101-12/+21
| | | | | | | | | | | | | | | | | | This was previously only not done because of the need to c&p. Also, we're going to be expanding some common macros that will use it.
| * | tor-netdoc: parse2 derive: Get rid of $ITEM workaroundIan Jackson2025-11-101-10/+4
| | | | | | | | | | | | The hygiene is fixed in derive-deftly 1.5.x.
* | | Apply deferred rustfmt churnIan Jackson2025-11-103-4/+4
| | |
* | | tor-netdoc: Introduce "encode" feature for the like-named moduleIan Jackson2025-11-102-4/+4
| | | | | | | | | | | | | | | | | | | | | We're going to introduce facilities for encoding more generally, and we'll want a way to enable them. Instead, have a separate feature for *encoding* documents.
* | | tor-netdoc: Rename the `build` module to `encode`Ian Jackson2025-11-105-8/+8
|/ / | | | | | | | | The word "build" so often in Rust means builder pattern. This module contains functions for encoding.
* | tor-netdoc: Fix typoIan Jackson2025-11-101-1/+1
| |
* | tor-netdoc: parse2 derive: deduplicate item parsingIan Jackson2025-11-061-24/+23
| |
* | tor-netdoc: parse2 derive: deduplicate item set selectorsIan Jackson2025-11-061-47/+62
| |
* | tor-netdoc: parse2 derive: deduplicate F_EFFECTIVE_TYPEIan Jackson2025-11-061-24/+13
| |
* | tor-netdoc: parse2 derive: deduplication: field types and keywordsIan Jackson2025-11-061-36/+39
| | | | | | | | | | | | | | Have the module expect the use site to determine (mostly) the field kind. Document this expectation. Now NetdocParseableCommon can have the keyword-related definitions.
* | tor-netdoc: parse2 derive: deduplication: start a moduleIan Jackson2025-11-062-9/+13
| | | | | | | | Put one textually-identical define in it, to start with.
* | Fix name of clippy lint to unchecked_time_subtraction (2)Ian Jackson2025-11-0631-32/+32
| | | | | | | | Run maint/add_warning
* | Use a while let loop (to placate clippy)Ian Jackson2025-11-061-2/+1
|/
* tor-netdoc: impl ItemArgumentParseable for IgnoredIan Jackson2025-10-231-2/+10
| | | | Change our mind about the logic for encoding an Ignored.
* tor-netdoc: Abolish ArgumentNotPresent alias, completing the renameIan Jackson2025-10-233-9/+6
|
* tor-netdoc: Use NotPresent rather than Option<Ignored> to suppress fieldsIan Jackson2025-10-234-8/+8
|
* tor-netdoc: Add unit tests for NotPresent and Ignored objectsIan Jackson2025-10-231-1/+32
|
* tor-netdoc: Add unit tests for NotPresent itemsIan Jackson2025-10-233-2/+6
|
* tor-netcoc: Introduce NotPresent, for absent multiplicityIan Jackson2025-10-232-9/+86
| | | | | | | | | Currently this is mishandled: the current use sites (in rs/each_variety.rs) use Option<Ignored>, which would reject repeated items with that keyword, which is technically wrong. And encoing will become a problem. Vec<Ignored> would be wrong too. Instead, broaden NotPresent and give it multiplicity impls.
* tor-netdoc: Move parse2 impls on Ignored to types/misc.rsIan Jackson2025-10-232-23/+22
| | | | | | This seems to be where we're putting most of the parse2 impls on these types, now. That makes more sense as parse2 becomes more of a proper thing.
* tor-netdoc: NetdocParseableFields derive: support flatten (test)Ian Jackson2025-10-221-0/+11
|
* tor-netdoc: NetdocParseableFields derive: support flattenIan Jackson2025-10-221-2/+26
| | | | | | | | | This allows a NetdocParseableFields inside a NetdocParseableFields. The code is rather duplicative with the NetdocParseable implementation. This is due to limitations in derive-deftly; see https://gitlab.torproject.org/Diziet/rust-derive-deftly/-/merge_requests/525 where I'm trying to start to address them.
* tor-netdoc: NetdocParseableFields derive: break out kw variableIan Jackson2025-10-221-1/+3
| | | | We're going to reuse this.
* tor-netdoc: Preamble: Fix garbled doc commentIan Jackson2025-10-221-1/+1
| | | | | As per https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/3378#note_3277957
* tor-netdoc: Preamble: rename relay_version field to server_versionIan Jackson2025-10-223-8/+8
| | | | This makes it match the protocol and the spec.
* tor-netdoc: Say Preamble doesn't contain vote-status, in summary.Ian Jackson2025-10-221-1/+1
|
* tor-netdoc: Explain that Preamble doesn't contain vote-status either.Ian Jackson2025-10-221-1/+1
|
* tor-netdoc: netstatus: Preamble: Name the protocols fields in docIan Jackson2025-10-221-0/+2
|
* tor-netdoc: netstatus: Preamble: rename shared rand fields to match docIan Jackson2025-10-223-18/+18
| | | | | We should use the same name everywhere, even if the name in the spec is clumsy (as it is here).
* tor-netdoc: Move ConsensusFlavor into Consensus structIan Jackson2025-10-223-14/+22
| | | | | | We're going to want to apply the parse2 derive to Preamble, but this field is anomalous. Rather than trying to make it regular, simply move it to the old-parser-specific Consensus struct.
* tor-netdoc: Declare intent not to apply parse2 to ConsensusIan Jackson2025-10-221-4/+1
| | | | | | | Consensus is not going to be easy to square with parse2 - especially, signature handling is very different between the two parsers. Instead, we'll have a new NetworkStatus type.
* tor-netdoc: Rename consensus Header to PreambleIan Jackson2025-10-224-40/+42
| | | | | There is no such thing as the "header" according to the spec. We mean the preamble.
* Merge branch 'p2-shared-rand-status' into 'main'Ian Jackson2025-10-224-17/+27
|\ | | | | | | | | impl ItemValueParseable for SharedRandStatus See merge request tpo/core/arti!3380
| * tor-netdoc: impl ItemValueParseable for SharedRandStatusIan Jackson2025-10-211-0/+1
| |
| * tor-netdoc: impl Display, FromStr, NormalItemArgument for SharedRandValIan Jackson2025-10-211-2/+18
| |
| * tor-netdoc: derive From<Vec<u8>> and v-v for B64Ian Jackson2025-10-211-7/+1
| | | | | | | | | | | | | | | | This may not be the best utility type to use for lots of the fixed-length byte strings, but we *are* using it a lot in the old and now the new parser. Implement From and Into.
| * tor-netdoc: Change type of timestamp in SharedRandStatus (fmt)Ian Jackson2025-10-211-2/+1
| |
| * tor-netdoc: Change type of timestamp in SharedRandStatusIan Jackson2025-10-213-7/+7
| |
* | Merge branch 'p2-misc-fixes' into 'main'opara2025-10-212-2/+7
|\ \ | | | | | | | | | | | | tor-netdoc: parse2: Minor fixes See merge request tpo/core/arti!3376
| * | tor-netdoc: Reference `build::ItemArgument` from `NoramlItemArgument` docIan Jackson2025-10-211-1/+2
| | | | | | | | | | | | | | | | | | Since 9ce85acb3ab0d1a0b1be6ef0f10707983f4362a3 tor-netdoc: replace impl_item_argument_as_display with NormalItemArgument this trait impl has implications for encoding as well as parsing.
| * | tor-netdoc: NetdocParseable derive: use more explicit syntaxIan Jackson2025-10-211-1/+1
| | | | | | | | | | | | In principle some other trait might be in scope.
| * | tor-netdoc: parse2: Don't declare internal error on subdoc intro itemsIan Jackson2025-10-211-0/+4
| |/ | | | | | | | | subdoc intro items aren't inherently incoherent, but implementing them is nontrivial. Let's reject them with a bespoke error instead.