| Commit message (Collapse) | Author | Age | Files | Lines | ||
|---|---|---|---|---|---|---|
| ... | ||||||
| * | netdoc parse2: NetdocParseableFields: suppress errors for empty types | Ian Jackson | 2025-09-29 | 1 | -2/+10 | |
| | | ||||||
| * | netdoc parse2: support `with` for rest arguemnts, and test | Ian Jackson | 2025-09-29 | 1 | -2/+5 | |
| | | ||||||
| * | netdoc parse2: support `with` for normal arguemnts, and test | Ian Jackson | 2025-09-29 | 1 | -2/+5 | |
| | | ||||||
| * | netdoc parse2: ArgumentSetMethods: take a parser function | Ian Jackson | 2025-09-29 | 1 | -1/+6 | |
| | | | | | We need this to support `with`. | |||||
| * | netdoc parse2: Support with for Item parsing | Ian Jackson | 2025-09-29 | 1 | -2/+23 | |
| | | | | | Tests will come in a moment. | |||||
| * | netdoc parse2: New single_item attribute | Ian Jackson | 2025-09-29 | 1 | -2/+24 | |
| | | | | | | | Many of the existing netdoc structs have items that are just the single argument. We don't want to turn them all into singleton tuples. Provide a macro feature for this instead. | |||||
| * | netdoc parse2: Break out ITEM_VALUE_FROM_UNPARSED | Ian Jackson | 2025-09-29 | 1 | -2/+6 | |
| | | | | | This is going to get more complicated. | |||||
| * | netdoc parse2: NetdocParseableFields: Fix default, and test | Ian Jackson | 2025-09-29 | 1 | -2/+6 | |
| | | ||||||
| * | netdoc parse2: NetdocParseableFields: introduce use of $fpatname | Ian Jackson | 2025-09-29 | 1 | -5/+4 | |
| | | | | | We're going to want to do more complex things here. | |||||
| * | netdoc parse2: Run selector-based trait check for intro item too | Ian Jackson | 2025-09-29 | 1 | -2/+6 | |
| | | ||||||
| * | netdoc parse2: Fix Object handling | Ian Jackson | 2025-09-29 | 1 | -16/+44 | |
| | | | | | | | | | | | Use the standard multiplicity technique rather than the ad-hoc impl on Option. This allows us to support an ad-hoc parsing function for a field that's `Option`. Disentangle the `label` field attribute, which did both setting the label, and expecting a different parsing approach: replace it with `with`. | |||||
| * | netdoc parse2: Fix "rest" item arguments, and test | Ian Jackson | 2025-09-29 | 1 | -3/+12 | |
| | | | | | | The previous code didn't compile at all, and this went unnoticed because it wasn't used by the poc. | |||||
| * | netdoc parse2: Actually use ArgumentSetSelector, and test | Ian Jackson | 2025-09-29 | 1 | -3/+4 | |
| | | | | | Without this, parsing of Option and Vec argument fields doesn't work. | |||||
| * | netdoc parse2: Fix typo in todo comment | Ian Jackson | 2025-09-29 | 1 | -1/+1 | |
| | | ||||||
| * | netdoc parse2: Use $P::Result throughout | Ian Jackson | 2025-09-29 | 1 | -5/+5 | |
| | | | | | | This is needed when using these macros in a namespace with a local redefinition of `Result`. | |||||
| * | netdoc parse2: Fix a compile_error! invocation | Ian Jackson | 2025-09-29 | 1 | -1/+1 | |
| | | | | | I triggered this error and it didn't work right. | |||||
| * | Produce better error messages from bad field types (fmt) | Ian Jackson | 2025-09-02 | 1 | -1/+1 | |
| | | | | | Worsify formatting as demanded by rustfmt. | |||||
| * | Produce better error messages from bad field types | Ian Jackson | 2025-09-02 | 1 | -0/+15 | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With this change, this diff > --- a/crates/tor-netdoc/src/parse2/poc/netstatus.rs > +++ b/crates/tor-netdoc/src/parse2/poc/netstatus.rs > @@ -24,5 +24,4 @@ pub enum NdaNetworkStatusVersion { > /// `params` value > #[derive(Clone, Debug, Default, Deftly)] > -#[derive_deftly(ItemValueParseable)] > #[non_exhaustive] > pub struct NdiParams { gives the errors below. So the first reported error points to the errant field, albeit with the slightly mendacious phrasing "this call". Previously there was only the 2nd message. Disagnosing that requires hunting through the document struct looking for fields of the right type, which can be seriously awkward when there are type aliases involved as there often are in tor-netdoc. > error[E0277]: the trait bound `parse2::poc::netstatus::NdiParams: parse2::traits::ItemValueParseable` is not satisfied > --> crates/tor-netdoc/src/parse2/poc/netstatus/flavoured.rs:27:10 > | > 27 | #[derive(Deftly, Clone, Debug)] > | ^^^^^^ the trait `parse2::traits::ItemValueParseable` is not implemented for `parse2::poc::netstatus::NdiParams` > ... > 55 | pub params: NdiParams, > | ------ required by a bound introduced by this call > | > = help: the following other types implement trait `parse2::traits::ItemValueParseable`: > () > (T0, T1) > (T0, T1, T2) > (T0, T1, T2, T3) > (T0, T1, T2, T3, T4) > (T0, T1, T2, T3, T4, T5) > (T0, T1, T2, T3, T4, T5, T6) > (T0, T1, T2, T3, T4, T5, T6, T7) > and 16 others > note: required by a bound in `parse2::multiplicity::ItemSetMethods::check_item_value_parseable` > --> crates/tor-netdoc/src/parse2/multiplicity.rs:109:59 > | > 109 | fn check_item_value_parseable(self) where Self::Each: ItemValueParseable {} > | ^^^^^^^^^^^^^^^^^^ required by this bound in `ItemSetMethods::check_item_value_parseable` > > error[E0277]: the trait bound `parse2::poc::netstatus::NdiParams: parse2::traits::ItemValueParseable` is not satisfied > --> crates/tor-netdoc/src/parse2/derive.rs:438:34 > | > 438 | let item = ItemValueParseable::from_unparsed(item)?; > | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `parse2::traits::ItemValueParseable` is not implemented for `parse2::poc::netstatus::NdiParams` > | > ::: crates/tor-netdoc/src/parse2/poc/netstatus/flavoured.rs:27:10 > | > 27 | #[derive(Deftly, Clone, Debug)] > | ------ in this derive macro expansion > | > = help: the following other types implement trait `parse2::traits::ItemValueParseable`: > () > (T0, T1) > (T0, T1, T2) > (T0, T1, T2, T3) > (T0, T1, T2, T3, T4) > (T0, T1, T2, T3, T4, T5) > (T0, T1, T2, T3, T4, T5, T6) > (T0, T1, T2, T3, T4, T5, T6, T7) > and 16 others > = note: this error originates in the macro `derive_deftly_template_NetdocParseable` which comes from the expansion of the derive macro `Deftly` (in Nightly builds, run with -Z macro-backtrace for more info) | |||||
| * | tor-netdoc: parse2: Bind a `selector` local | Ian Jackson | 2025-09-02 | 1 | -1/+2 | |
| | | | | | We're going to reuse this. | |||||
| * | tor-netdoc: parse2: derive: Remove an unneeded nested ${concat } | Ian Jackson | 2025-09-02 | 1 | -1/+1 | |
| | | | | | As per https://gitlab.torproject.org/tpo/core/arti/-/merge_requests/3186#note_3249820 | |||||
| * | tor-netdoc: parse2: Speak of non-structural *items* rather than fields | Ian Jackson | 2025-09-02 | 1 | -1/+1 | |
| | | ||||||
| * | tor-netdoc: parse2: Report unexpected subdoc multiplicity at the intro item | Ian Jackson | 2025-09-02 | 1 | -0/+2 | |
| | | ||||||
| * | tor-netdoc: parse2: Provide flattening and NetdocParseableFields | Ian Jackson | 2025-09-02 | 1 | -6/+120 | |
| | | ||||||
| * | tor-netdoc: parse2: Preparatory rework for flattening | Ian Jackson | 2025-09-02 | 1 | -8/+10 | |
| | | | | | | Change from two loops over fields and two ${when}, to one loop with ${select1}. There will be another arm in a moment. | |||||
| * | tor-netdoc: parse2: Specify `for struct` in one of the derives | Ian Jackson | 2025-09-02 | 1 | -1/+1 | |
| | | | | | None of these things support enums or unions. | |||||
| * | tor-netdoc: parse2: Know that we always accumulate into Option<Field> | Ian Jackson | 2025-08-26 | 1 | -1/+1 | |
| | | ||||||
| * | tor-netdoc: parse2: Break out F_EFFECTIVE_TYPE | Ian Jackson | 2025-08-26 | 1 | -7/+13 | |
| | | | | | We're going to want to reuse this. | |||||
| * | tor-netdoc: parse2: Use selector_ rather than open-coding | Ian Jackson | 2025-08-26 | 1 | -1/+1 | |
| | | | | | We're going to make this depend on $ftype differently. | |||||
| * | tor-netdoc: parse2: Report subdoc intro item keyword for missing item | Ian Jackson | 2025-08-26 | 1 | -2/+8 | |
| | | | | | This corrects the error message. | |||||
| * | tor-netdoc: parse2: Fix doctype_for_error | Ian Jackson | 2025-08-26 | 1 | -3/+4 | |
| | | | | | Actually report the intro item, as the docs state. | |||||
| * | tor-netdoc: Introduce parse2, new parser | Ian Jackson | 2025-08-14 | 1 | -0/+701 | |
| This isn't used anywhere yet. We're going to demonstrate it, and test the demo, in a moment. | ||||||
