From 37539682d4fe3e21e7f5d2ab2bfeee1dc36a12ab Mon Sep 17 00:00:00 2001 From: alexion Date: Thu, 17 Sep 2026 14:13:23 -0400 Subject: [PATCH] chore(vendor): add anyhow crate --- Cargo.lock | 11 +- Cargo.toml | 1 + src/xatu/Cargo.toml | 1 + third_party/crates/BUILD.bazel | 30 +- .../anyhow-1.0.104/.cargo-checksum.json | 1 + .../anyhow-1.0.104/.cargo_vcs_info.json | 6 + .../.github/FUNDING.yml | 0 .../anyhow-1.0.104/.github/workflows/ci.yml | 146 +++ third_party/crates/anyhow-1.0.104/BUILD.bazel | 187 +++ third_party/crates/anyhow-1.0.104/Cargo.lock | 355 ++++++ third_party/crates/anyhow-1.0.104/Cargo.toml | 129 ++ .../crates/anyhow-1.0.104/Cargo.toml.orig | 36 + .../LICENSE-APACHE | 0 .../{syn-3.0.5 => anyhow-1.0.104}/LICENSE-MIT | 0 third_party/crates/anyhow-1.0.104/README.md | 179 +++ third_party/crates/anyhow-1.0.104/build.rs | 194 +++ .../crates/anyhow-1.0.104/rust-toolchain.toml | 2 + .../crates/anyhow-1.0.104/src/backtrace.rs | 48 + .../crates/anyhow-1.0.104/src/chain.rs | 102 ++ .../crates/anyhow-1.0.104/src/context.rs | 193 +++ .../crates/anyhow-1.0.104/src/ensure.rs | 935 +++++++++++++++ .../crates/anyhow-1.0.104/src/error.rs | 1060 +++++++++++++++++ third_party/crates/anyhow-1.0.104/src/fmt.rs | 158 +++ third_party/crates/anyhow-1.0.104/src/kind.rs | 121 ++ third_party/crates/anyhow-1.0.104/src/lib.rs | 728 +++++++++++ .../crates/anyhow-1.0.104/src/macros.rs | 245 ++++ .../crates/anyhow-1.0.104/src/nightly.rs | 58 + third_party/crates/anyhow-1.0.104/src/ptr.rs | 187 +++ .../crates/anyhow-1.0.104/src/wrapper.rs | 84 ++ .../crates/anyhow-1.0.104/tests/common/mod.rs | 14 + .../anyhow-1.0.104/tests/compiletest.rs | 7 + .../crates/anyhow-1.0.104/tests/drop/mod.rs | 53 + .../anyhow-1.0.104/tests/test_autotrait.rs | 34 + .../anyhow-1.0.104/tests/test_backtrace.rs | 15 + .../crates/anyhow-1.0.104/tests/test_boxed.rs | 45 + .../crates/anyhow-1.0.104/tests/test_chain.rs | 69 ++ .../anyhow-1.0.104/tests/test_context.rs | 195 +++ .../anyhow-1.0.104/tests/test_convert.rs | 46 + .../anyhow-1.0.104/tests/test_downcast.rs | 123 ++ .../anyhow-1.0.104/tests/test_ensure.rs | 756 ++++++++++++ .../crates/anyhow-1.0.104/tests/test_ffi.rs | 19 + .../crates/anyhow-1.0.104/tests/test_fmt.rs | 93 ++ .../anyhow-1.0.104/tests/test_macros.rs | 97 ++ .../crates/anyhow-1.0.104/tests/test_repr.rs | 30 + .../anyhow-1.0.104/tests/test_source.rs | 62 + .../tests/ui/chained-comparison.rs | 8 + .../tests/ui/chained-comparison.stderr | 10 + .../anyhow-1.0.104/tests/ui/empty-ensure.rs | 6 + .../tests/ui/empty-ensure.stderr | 12 + .../anyhow-1.0.104/tests/ui/ensure-nonbool.rs | 40 + .../tests/ui/ensure-nonbool.stderr | 113 ++ .../anyhow-1.0.104/tests/ui/must-use.rs | 11 + .../anyhow-1.0.104/tests/ui/must-use.stderr | 15 + .../crates/anyhow-1.0.104/tests/ui/no-impl.rs | 8 + .../anyhow-1.0.104/tests/ui/no-impl.stderr | 32 + .../tests/ui/temporary-value.rs | 5 + .../tests/ui/temporary-value.stderr | 15 + .../tests/ui/wrong-interpolation.rs | 5 + .../tests/ui/wrong-interpolation.stderr | 5 + .../crates/clap-4.6.6/.cargo_vcs_info.json | 6 - .../.cargo-checksum.json | 2 +- .../crates/clap-4.6.7/.cargo_vcs_info.json | 6 + .../{clap-4.6.6 => clap-4.6.7}/BUILD.bazel | 6 +- .../{clap-4.6.6 => clap-4.6.7}/Cargo.lock | 96 +- .../{clap-4.6.6 => clap-4.6.7}/Cargo.toml | 45 +- .../Cargo.toml.orig | 57 +- .../LICENSE-APACHE | 2 +- .../{clap-4.6.6 => clap-4.6.7}/LICENSE-MIT | 0 .../{clap-4.6.6 => clap-4.6.7}/README.md | 0 .../examples/README.md | 0 .../examples/cargo-example-derive.md | 0 .../examples/cargo-example-derive.rs | 0 .../examples/cargo-example.md | 0 .../examples/cargo-example.rs | 0 .../examples/demo.md | 0 .../examples/demo.rs | 0 .../examples/derive_ref/augment_args.rs | 0 .../derive_ref/augment_subcommands.rs | 0 .../examples/derive_ref/flatten_hand_args.rs | 0 .../examples/derive_ref/hand_subcommand.rs | 0 .../examples/derive_ref/interop_tests.md | 0 .../examples/escaped-positional-derive.md | 0 .../examples/escaped-positional-derive.rs | 0 .../examples/escaped-positional.md | 0 .../examples/escaped-positional.rs | 0 .../examples/find.md | 0 .../examples/find.rs | 2 +- .../examples/git-derive.md | 0 .../examples/git-derive.rs | 0 .../examples/git.md | 0 .../examples/git.rs | 0 .../examples/multicall-busybox.md | 0 .../examples/multicall-busybox.rs | 0 .../examples/multicall-hostname.md | 0 .../examples/multicall-hostname.rs | 0 .../examples/pacman.md | 0 .../examples/pacman.rs | 0 .../examples/repl-derive.rs | 0 .../examples/repl.rs | 0 .../examples/snapshots/pacman.txt | 0 .../examples/tutorial_builder/01_quick.md | 0 .../examples/tutorial_builder/01_quick.rs | 0 .../tutorial_builder/02_app_settings.md | 0 .../tutorial_builder/02_app_settings.rs | 0 .../examples/tutorial_builder/02_apps.md | 0 .../examples/tutorial_builder/02_apps.rs | 0 .../examples/tutorial_builder/02_crate.md | 0 .../examples/tutorial_builder/02_crate.rs | 0 .../tutorial_builder/03_01_flag_bool.md | 0 .../tutorial_builder/03_01_flag_bool.rs | 0 .../tutorial_builder/03_01_flag_count.md | 0 .../tutorial_builder/03_01_flag_count.rs | 0 .../examples/tutorial_builder/03_02_option.md | 0 .../examples/tutorial_builder/03_02_option.rs | 0 .../tutorial_builder/03_02_option_mult.md | 0 .../tutorial_builder/03_02_option_mult.rs | 0 .../tutorial_builder/03_03_positional.md | 0 .../tutorial_builder/03_03_positional.rs | 0 .../tutorial_builder/03_03_positional_mult.md | 0 .../tutorial_builder/03_03_positional_mult.rs | 0 .../tutorial_builder/03_04_subcommands.md | 0 .../tutorial_builder/03_04_subcommands.rs | 0 .../tutorial_builder/03_05_default_values.md | 0 .../tutorial_builder/03_05_default_values.rs | 0 .../tutorial_builder/03_06_required.md | 0 .../tutorial_builder/03_06_required.rs | 0 .../examples/tutorial_builder/04_01_enum.md | 0 .../examples/tutorial_builder/04_01_enum.rs | 6 +- .../tutorial_builder/04_01_possible.md | 0 .../tutorial_builder/04_01_possible.rs | 0 .../examples/tutorial_builder/04_02_parse.md | 0 .../examples/tutorial_builder/04_02_parse.rs | 0 .../tutorial_builder/04_02_validate.md | 0 .../tutorial_builder/04_02_validate.rs | 0 .../tutorial_builder/04_03_relations.md | 0 .../tutorial_builder/04_03_relations.rs | 0 .../examples/tutorial_builder/04_04_custom.md | 0 .../examples/tutorial_builder/04_04_custom.rs | 0 .../examples/tutorial_builder/05_01_assert.rs | 0 .../examples/tutorial_derive/01_quick.md | 0 .../examples/tutorial_derive/01_quick.rs | 0 .../tutorial_derive/02_app_settings.md | 0 .../tutorial_derive/02_app_settings.rs | 0 .../examples/tutorial_derive/02_apps.md | 0 .../examples/tutorial_derive/02_apps.rs | 0 .../examples/tutorial_derive/02_crate.md | 0 .../examples/tutorial_derive/02_crate.rs | 0 .../tutorial_derive/03_01_flag_bool.md | 0 .../tutorial_derive/03_01_flag_bool.rs | 0 .../tutorial_derive/03_01_flag_count.md | 0 .../tutorial_derive/03_01_flag_count.rs | 0 .../examples/tutorial_derive/03_02_option.md | 0 .../examples/tutorial_derive/03_02_option.rs | 0 .../tutorial_derive/03_02_option_mult.md | 0 .../tutorial_derive/03_02_option_mult.rs | 0 .../tutorial_derive/03_03_positional.md | 0 .../tutorial_derive/03_03_positional.rs | 0 .../tutorial_derive/03_03_positional_mult.md | 0 .../tutorial_derive/03_03_positional_mult.rs | 0 .../tutorial_derive/03_04_subcommands.md | 0 .../tutorial_derive/03_04_subcommands.rs | 0 .../tutorial_derive/03_04_subcommands_alt.rs | 0 .../tutorial_derive/03_05_default_values.md | 0 .../tutorial_derive/03_05_default_values.rs | 0 .../tutorial_derive/03_06_optional.md | 0 .../tutorial_derive/03_06_optional.rs | 0 .../examples/tutorial_derive/04_01_enum.md | 0 .../examples/tutorial_derive/04_01_enum.rs | 0 .../examples/tutorial_derive/04_02_parse.md | 0 .../examples/tutorial_derive/04_02_parse.rs | 0 .../tutorial_derive/04_02_validate.md | 0 .../tutorial_derive/04_02_validate.rs | 0 .../tutorial_derive/04_03_relations.md | 0 .../tutorial_derive/04_03_relations.rs | 0 .../examples/tutorial_derive/04_04_custom.md | 0 .../examples/tutorial_derive/04_04_custom.rs | 0 .../examples/tutorial_derive/05_01_assert.rs | 0 .../examples/typed-derive/builtin.md | 0 .../examples/typed-derive/builtin.rs | 0 .../examples/typed-derive/custom.md | 0 .../examples/typed-derive/custom.rs | 8 +- .../examples/typed-derive/fn_parser.md | 0 .../examples/typed-derive/fn_parser.rs | 0 .../examples/typed-derive/foreign_crate.rs | 0 .../examples/typed-derive/implicit.md | 0 .../examples/typed-derive/implicit.rs | 0 .../examples/typed-derive/main.rs | 0 .../src/_concepts.rs | 0 .../src/_cookbook/cargo_example.rs | 0 .../src/_cookbook/cargo_example_derive.rs | 0 .../src/_cookbook/escaped_positional.rs | 0 .../_cookbook/escaped_positional_derive.rs | 0 .../src/_cookbook/find.rs | 0 .../src/_cookbook/git.rs | 0 .../src/_cookbook/git_derive.rs | 0 .../src/_cookbook/mod.rs | 0 .../src/_cookbook/multicall_busybox.rs | 0 .../src/_cookbook/multicall_hostname.rs | 0 .../src/_cookbook/pacman.rs | 0 .../src/_cookbook/repl.rs | 0 .../src/_cookbook/repl_derive.rs | 0 .../src/_cookbook/typed_derive.rs | 0 .../src/_derive/_tutorial.rs | 0 .../src/_derive/mod.rs | 14 + .../{clap-4.6.6 => clap-4.6.7}/src/_faq.rs | 0 .../src/_features.rs | 0 .../src/_tutorial.rs | 0 .../src/bin/stdio-fixture.rs | 0 .../{clap-4.6.6 => clap-4.6.7}/src/lib.rs | 2 +- .../clap_builder-4.6.6/.cargo_vcs_info.json | 6 - .../.cargo-checksum.json | 2 +- .../clap_builder-4.6.7/.cargo_vcs_info.json | 6 + .../BUILD.bazel | 4 +- .../Cargo.lock | 21 +- .../Cargo.toml | 30 +- .../Cargo.toml.orig | 2 +- .../LICENSE-APACHE | 2 +- .../LICENSE-MIT | 0 .../README.md | 0 .../src/builder/action.rs | 0 .../src/builder/app_settings.rs | 0 .../src/builder/arg.rs | 10 +- .../src/builder/arg_group.rs | 6 +- .../src/builder/arg_predicate.rs | 0 .../src/builder/arg_settings.rs | 0 .../src/builder/command.rs | 39 +- .../src/builder/debug_asserts.rs | 0 .../src/builder/ext.rs | 0 .../src/builder/mod.rs | 0 .../src/builder/os_str.rs | 8 +- .../src/builder/possible_value.rs | 2 +- .../src/builder/range.rs | 0 .../src/builder/resettable.rs | 18 +- .../src/builder/str.rs | 8 +- .../src/builder/styled_str.rs | 12 +- .../src/builder/styling.rs | 0 .../src/builder/tests.rs | 0 .../src/builder/value_hint.rs | 26 +- .../src/builder/value_parser.rs | 63 +- .../src/derive.rs | 12 +- .../src/error/context.rs | 0 .../src/error/format.rs | 0 .../src/error/kind.rs | 0 .../src/error/mod.rs | 12 +- .../src/lib.rs | 0 .../src/macros.rs | 0 .../src/mkeymap.rs | 12 +- .../src/output/fmt.rs | 2 +- .../src/output/help.rs | 0 .../src/output/help_template.rs | 0 .../src/output/mod.rs | 0 .../src/output/textwrap/core.rs | 0 .../src/output/textwrap/mod.rs | 0 .../src/output/textwrap/word_separators.rs | 0 .../src/output/textwrap/wrap_algorithms.rs | 0 .../src/output/usage.rs | 0 .../src/parser/arg_matcher.rs | 4 +- .../src/parser/error.rs | 2 +- .../src/parser/features/mod.rs | 0 .../src/parser/features/suggestions.rs | 0 .../src/parser/matches/arg_matches.rs | 10 +- .../src/parser/matches/matched_arg.rs | 6 +- .../src/parser/matches/mod.rs | 0 .../src/parser/matches/value_source.rs | 0 .../src/parser/mod.rs | 0 .../src/parser/parser.rs | 0 .../src/parser/validator.rs | 0 .../src/util/any_value.rs | 0 .../src/util/color.rs | 0 .../src/util/escape.rs | 0 .../src/util/flat_map.rs | 0 .../src/util/flat_set.rs | 0 .../src/util/graph.rs | 4 +- .../src/util/id.rs | 4 +- .../src/util/mod.rs | 0 .../src/util/str_to_bool.rs | 0 .../clap_derive-4.6.4/.cargo-checksum.json | 1 - .../clap_derive-4.6.4/.cargo_vcs_info.json | 6 - .../clap_derive-4.6.7/.cargo-checksum.json | 1 + .../clap_derive-4.6.7/.cargo_vcs_info.json | 6 + .../BUILD.bazel | 4 +- .../Cargo.lock | 2 +- .../Cargo.toml | 30 +- .../Cargo.toml.orig | 2 +- .../LICENSE-APACHE | 2 +- .../LICENSE-MIT | 0 .../README.md | 0 .../src/attr.rs | 21 +- .../src/derives/args.rs | 15 +- .../src/derives/into_app.rs | 0 .../src/derives/mod.rs | 0 .../src/derives/parser.rs | 0 .../src/derives/subcommand.rs | 71 +- .../src/derives/value_enum.rs | 0 .../src/dummies.rs | 0 .../src/item.rs | 51 +- .../src/lib.rs | 0 .../src/macros.rs | 0 .../src/utils/doc_comments.rs | 0 .../src/utils/error.rs | 0 .../src/utils/mod.rs | 0 .../src/utils/spanned.rs | 8 +- .../src/utils/ty.rs | 0 .../clap_lex-1.1.0/.cargo-checksum.json | 1 - .../clap_lex-1.1.0/.cargo_vcs_info.json | 6 - .../clap_lex-1.1.1/.cargo-checksum.json | 1 + .../clap_lex-1.1.1/.cargo_vcs_info.json | 6 + .../BUILD.bazel | 2 +- .../Cargo.lock | 18 +- .../Cargo.toml | 32 +- .../Cargo.toml.orig | 2 +- .../LICENSE-APACHE | 2 +- .../LICENSE-MIT | 0 .../README.md | 8 +- .../src/ext.rs | 6 +- .../src/lib.rs | 0 third_party/crates/crates.bzl | 57 +- .../crates/proc-macro2-1.0.107/BUILD.bazel | 2 +- .../crates/serde_derive-1.0.229/BUILD.bazel | 2 +- .../crates/syn-3.0.5/.cargo_vcs_info.json | 6 - .../.cargo-checksum.json | 2 +- .../crates/syn-3.0.6/.cargo_vcs_info.json | 6 + .../{syn-3.0.5 => syn-3.0.6}/BUILD.bazel | 4 +- .../{syn-3.0.5 => syn-3.0.6}/Cargo.lock | 210 ++-- .../{syn-3.0.5 => syn-3.0.6}/Cargo.toml | 2 +- .../{syn-3.0.5 => syn-3.0.6}/Cargo.toml.orig | 2 +- .../LICENSE-APACHE | 0 .../LICENSE-MIT | 0 .../crates/{syn-3.0.5 => syn-3.0.6}/README.md | 0 .../{syn-3.0.5 => syn-3.0.6}/benches/file.rs | 0 .../{syn-3.0.5 => syn-3.0.6}/benches/rust.rs | 0 .../{syn-3.0.5 => syn-3.0.6}/src/attr.rs | 0 .../{syn-3.0.5 => syn-3.0.6}/src/bigint.rs | 0 .../{syn-3.0.5 => syn-3.0.6}/src/buffer.rs | 0 .../{syn-3.0.5 => syn-3.0.6}/src/classify.rs | 0 .../src/custom_keyword.rs | 0 .../src/custom_punctuation.rs | 0 .../{syn-3.0.5 => syn-3.0.6}/src/data.rs | 0 .../{syn-3.0.5 => syn-3.0.6}/src/derive.rs | 0 .../src/discouraged.rs | 0 .../{syn-3.0.5 => syn-3.0.6}/src/drops.rs | 0 .../{syn-3.0.5 => syn-3.0.6}/src/error.rs | 0 .../{syn-3.0.5 => syn-3.0.6}/src/export.rs | 0 .../{syn-3.0.5 => syn-3.0.6}/src/expr.rs | 18 +- .../{syn-3.0.5 => syn-3.0.6}/src/ext.rs | 0 .../{syn-3.0.5 => syn-3.0.6}/src/file.rs | 0 .../{syn-3.0.5 => syn-3.0.6}/src/fixup.rs | 0 .../{syn-3.0.5 => syn-3.0.6}/src/gen/clone.rs | 0 .../{syn-3.0.5 => syn-3.0.6}/src/gen/debug.rs | 0 .../{syn-3.0.5 => syn-3.0.6}/src/gen/eq.rs | 0 .../{syn-3.0.5 => syn-3.0.6}/src/gen/fold.rs | 0 .../{syn-3.0.5 => syn-3.0.6}/src/gen/hash.rs | 0 .../src/gen/token.css | 0 .../{syn-3.0.5 => syn-3.0.6}/src/gen/visit.rs | 0 .../src/gen/visit_mut.rs | 0 .../{syn-3.0.5 => syn-3.0.6}/src/generics.rs | 0 .../{syn-3.0.5 => syn-3.0.6}/src/group.rs | 0 .../{syn-3.0.5 => syn-3.0.6}/src/ident.rs | 0 .../{syn-3.0.5 => syn-3.0.6}/src/item.rs | 0 .../{syn-3.0.5 => syn-3.0.6}/src/lib.rs | 2 +- .../{syn-3.0.5 => syn-3.0.6}/src/lifetime.rs | 0 .../{syn-3.0.5 => syn-3.0.6}/src/lit.rs | 0 .../{syn-3.0.5 => syn-3.0.6}/src/lookahead.rs | 0 .../{syn-3.0.5 => syn-3.0.6}/src/mac.rs | 0 .../{syn-3.0.5 => syn-3.0.6}/src/macros.rs | 0 .../{syn-3.0.5 => syn-3.0.6}/src/meta.rs | 0 .../crates/{syn-3.0.5 => syn-3.0.6}/src/op.rs | 0 .../{syn-3.0.5 => syn-3.0.6}/src/parse.rs | 0 .../src/parse_macro_input.rs | 0 .../src/parse_quote.rs | 0 .../{syn-3.0.5 => syn-3.0.6}/src/pat.rs | 0 .../{syn-3.0.5 => syn-3.0.6}/src/path.rs | 0 .../src/precedence.rs | 0 .../{syn-3.0.5 => syn-3.0.6}/src/print.rs | 0 .../src/punctuated.rs | 0 .../src/restriction.rs | 0 .../{syn-3.0.5 => syn-3.0.6}/src/scan_expr.rs | 0 .../{syn-3.0.5 => syn-3.0.6}/src/sealed.rs | 0 .../{syn-3.0.5 => syn-3.0.6}/src/span.rs | 0 .../{syn-3.0.5 => syn-3.0.6}/src/spanned.rs | 0 .../{syn-3.0.5 => syn-3.0.6}/src/stmt.rs | 0 .../{syn-3.0.5 => syn-3.0.6}/src/thread.rs | 0 .../{syn-3.0.5 => syn-3.0.6}/src/token.rs | 0 .../crates/{syn-3.0.5 => syn-3.0.6}/src/tt.rs | 0 .../crates/{syn-3.0.5 => syn-3.0.6}/src/ty.rs | 0 .../{syn-3.0.5 => syn-3.0.6}/src/verbatim.rs | 0 .../src/whitespace.rs | 0 .../tests/common/eq.rs | 10 +- .../tests/common/mod.rs | 0 .../tests/common/parse.rs | 0 .../tests/common/visit.rs | 0 .../tests/debug/gen.rs | 0 .../tests/debug/mod.rs | 0 .../tests/macros/mod.rs | 0 .../tests/regression.rs | 0 .../tests/regression/issue1108.rs | 0 .../tests/regression/issue1235.rs | 0 .../tests/repo/mod.rs | 0 .../tests/repo/progress.rs | 0 .../tests/snapshot/mod.rs | 0 .../tests/test_attribute.rs | 0 .../tests/test_derive_input.rs | 0 .../tests/test_expr.rs | 0 .../tests/test_generics.rs | 0 .../tests/test_grouping.rs | 0 .../tests/test_ident.rs | 0 .../tests/test_item.rs | 0 .../tests/test_lit.rs | 0 .../tests/test_meta.rs | 0 .../tests/test_parse_buffer.rs | 0 .../tests/test_parse_quote.rs | 0 .../tests/test_parse_stream.rs | 0 .../tests/test_pat.rs | 0 .../tests/test_path.rs | 0 .../tests/test_precedence.rs | 0 .../tests/test_punctuated.rs | 0 .../tests/test_receiver.rs | 0 .../tests/test_round_trip.rs | 0 .../tests/test_shebang.rs | 0 .../tests/test_size.rs | 0 .../tests/test_stmt.rs | 35 +- .../tests/test_token_trees.rs | 0 .../{syn-3.0.5 => syn-3.0.6}/tests/test_ty.rs | 0 .../tests/test_unparenthesize.rs | 0 .../tests/test_visibility.rs | 0 .../tests/zzz_stable.rs | 0 .../unicode-ident-1.0.24/.cargo-checksum.json | 1 - .../unicode-ident-1.0.24/.cargo_vcs_info.json | 6 - .../tests/tables/tables.rs | 361 ------ .../unicode-ident-1.0.26/.cargo-checksum.json | 1 + .../unicode-ident-1.0.26/.cargo_vcs_info.json | 6 + .../unicode-ident-1.0.26/.github/FUNDING.yml | 1 + .../.github/workflows/ci.yml | 16 +- .../BUILD.bazel | 2 +- .../Cargo.lock | 398 ++----- .../Cargo.toml | 2 +- .../Cargo.toml.orig | 4 +- .../unicode-ident-1.0.26/LICENSE-APACHE | 176 +++ .../crates/unicode-ident-1.0.26/LICENSE-MIT | 23 + .../LICENSE-UNICODE | 0 .../README.md | 32 +- .../benches/xid.rs | 0 .../src/lib.rs | 43 +- .../src/tables.rs | 264 ++-- .../tests/compare.rs | 0 .../tests/fst/mod.rs | 0 .../tests/fst/xid_continue.fst | Bin 76143 -> 78779 bytes .../tests/fst/xid_start.fst | Bin 67370 -> 69927 bytes .../tests/roaring/mod.rs | 0 .../tests/static_size.rs | 8 +- .../tests/tables/mod.rs | 0 .../tests/tables/tables.rs | 367 ++++++ .../tests/trie/mod.rs | 0 .../tests/trie/trie.rs | 276 +++-- 454 files changed, 8906 insertions(+), 1468 deletions(-) create mode 100644 third_party/crates/anyhow-1.0.104/.cargo-checksum.json create mode 100644 third_party/crates/anyhow-1.0.104/.cargo_vcs_info.json rename third_party/crates/{unicode-ident-1.0.24 => anyhow-1.0.104}/.github/FUNDING.yml (100%) create mode 100644 third_party/crates/anyhow-1.0.104/.github/workflows/ci.yml create mode 100644 third_party/crates/anyhow-1.0.104/BUILD.bazel create mode 100644 third_party/crates/anyhow-1.0.104/Cargo.lock create mode 100644 third_party/crates/anyhow-1.0.104/Cargo.toml create mode 100644 third_party/crates/anyhow-1.0.104/Cargo.toml.orig rename third_party/crates/{syn-3.0.5 => anyhow-1.0.104}/LICENSE-APACHE (100%) rename third_party/crates/{syn-3.0.5 => anyhow-1.0.104}/LICENSE-MIT (100%) create mode 100644 third_party/crates/anyhow-1.0.104/README.md create mode 100644 third_party/crates/anyhow-1.0.104/build.rs create mode 100644 third_party/crates/anyhow-1.0.104/rust-toolchain.toml create mode 100644 third_party/crates/anyhow-1.0.104/src/backtrace.rs create mode 100644 third_party/crates/anyhow-1.0.104/src/chain.rs create mode 100644 third_party/crates/anyhow-1.0.104/src/context.rs create mode 100644 third_party/crates/anyhow-1.0.104/src/ensure.rs create mode 100644 third_party/crates/anyhow-1.0.104/src/error.rs create mode 100644 third_party/crates/anyhow-1.0.104/src/fmt.rs create mode 100644 third_party/crates/anyhow-1.0.104/src/kind.rs create mode 100644 third_party/crates/anyhow-1.0.104/src/lib.rs create mode 100644 third_party/crates/anyhow-1.0.104/src/macros.rs create mode 100644 third_party/crates/anyhow-1.0.104/src/nightly.rs create mode 100644 third_party/crates/anyhow-1.0.104/src/ptr.rs create mode 100644 third_party/crates/anyhow-1.0.104/src/wrapper.rs create mode 100644 third_party/crates/anyhow-1.0.104/tests/common/mod.rs create mode 100644 third_party/crates/anyhow-1.0.104/tests/compiletest.rs create mode 100644 third_party/crates/anyhow-1.0.104/tests/drop/mod.rs create mode 100644 third_party/crates/anyhow-1.0.104/tests/test_autotrait.rs create mode 100644 third_party/crates/anyhow-1.0.104/tests/test_backtrace.rs create mode 100644 third_party/crates/anyhow-1.0.104/tests/test_boxed.rs create mode 100644 third_party/crates/anyhow-1.0.104/tests/test_chain.rs create mode 100644 third_party/crates/anyhow-1.0.104/tests/test_context.rs create mode 100644 third_party/crates/anyhow-1.0.104/tests/test_convert.rs create mode 100644 third_party/crates/anyhow-1.0.104/tests/test_downcast.rs create mode 100644 third_party/crates/anyhow-1.0.104/tests/test_ensure.rs create mode 100644 third_party/crates/anyhow-1.0.104/tests/test_ffi.rs create mode 100644 third_party/crates/anyhow-1.0.104/tests/test_fmt.rs create mode 100644 third_party/crates/anyhow-1.0.104/tests/test_macros.rs create mode 100644 third_party/crates/anyhow-1.0.104/tests/test_repr.rs create mode 100644 third_party/crates/anyhow-1.0.104/tests/test_source.rs create mode 100644 third_party/crates/anyhow-1.0.104/tests/ui/chained-comparison.rs create mode 100644 third_party/crates/anyhow-1.0.104/tests/ui/chained-comparison.stderr create mode 100644 third_party/crates/anyhow-1.0.104/tests/ui/empty-ensure.rs create mode 100644 third_party/crates/anyhow-1.0.104/tests/ui/empty-ensure.stderr create mode 100644 third_party/crates/anyhow-1.0.104/tests/ui/ensure-nonbool.rs create mode 100644 third_party/crates/anyhow-1.0.104/tests/ui/ensure-nonbool.stderr create mode 100644 third_party/crates/anyhow-1.0.104/tests/ui/must-use.rs create mode 100644 third_party/crates/anyhow-1.0.104/tests/ui/must-use.stderr create mode 100644 third_party/crates/anyhow-1.0.104/tests/ui/no-impl.rs create mode 100644 third_party/crates/anyhow-1.0.104/tests/ui/no-impl.stderr create mode 100644 third_party/crates/anyhow-1.0.104/tests/ui/temporary-value.rs create mode 100644 third_party/crates/anyhow-1.0.104/tests/ui/temporary-value.stderr create mode 100644 third_party/crates/anyhow-1.0.104/tests/ui/wrong-interpolation.rs create mode 100644 third_party/crates/anyhow-1.0.104/tests/ui/wrong-interpolation.stderr delete mode 100644 third_party/crates/clap-4.6.6/.cargo_vcs_info.json rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/.cargo-checksum.json (92%) create mode 100644 third_party/crates/clap-4.6.7/.cargo_vcs_info.json rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/BUILD.bazel (97%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/Cargo.lock (91%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/Cargo.toml (95%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/Cargo.toml.orig (92%) rename third_party/crates/{clap_derive-4.6.4 => clap-4.6.7}/LICENSE-APACHE (99%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/LICENSE-MIT (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/README.md (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/README.md (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/cargo-example-derive.md (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/cargo-example-derive.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/cargo-example.md (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/cargo-example.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/demo.md (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/demo.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/derive_ref/augment_args.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/derive_ref/augment_subcommands.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/derive_ref/flatten_hand_args.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/derive_ref/hand_subcommand.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/derive_ref/interop_tests.md (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/escaped-positional-derive.md (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/escaped-positional-derive.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/escaped-positional.md (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/escaped-positional.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/find.md (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/find.rs (98%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/git-derive.md (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/git-derive.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/git.md (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/git.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/multicall-busybox.md (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/multicall-busybox.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/multicall-hostname.md (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/multicall-hostname.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/pacman.md (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/pacman.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/repl-derive.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/repl.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/snapshots/pacman.txt (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_builder/01_quick.md (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_builder/01_quick.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_builder/02_app_settings.md (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_builder/02_app_settings.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_builder/02_apps.md (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_builder/02_apps.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_builder/02_crate.md (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_builder/02_crate.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_builder/03_01_flag_bool.md (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_builder/03_01_flag_bool.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_builder/03_01_flag_count.md (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_builder/03_01_flag_count.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_builder/03_02_option.md (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_builder/03_02_option.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_builder/03_02_option_mult.md (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_builder/03_02_option_mult.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_builder/03_03_positional.md (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_builder/03_03_positional.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_builder/03_03_positional_mult.md (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_builder/03_03_positional_mult.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_builder/03_04_subcommands.md (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_builder/03_04_subcommands.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_builder/03_05_default_values.md (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_builder/03_05_default_values.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_builder/03_06_required.md (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_builder/03_06_required.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_builder/04_01_enum.md (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_builder/04_01_enum.rs (90%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_builder/04_01_possible.md (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_builder/04_01_possible.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_builder/04_02_parse.md (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_builder/04_02_parse.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_builder/04_02_validate.md (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_builder/04_02_validate.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_builder/04_03_relations.md (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_builder/04_03_relations.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_builder/04_04_custom.md (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_builder/04_04_custom.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_builder/05_01_assert.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_derive/01_quick.md (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_derive/01_quick.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_derive/02_app_settings.md (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_derive/02_app_settings.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_derive/02_apps.md (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_derive/02_apps.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_derive/02_crate.md (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_derive/02_crate.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_derive/03_01_flag_bool.md (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_derive/03_01_flag_bool.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_derive/03_01_flag_count.md (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_derive/03_01_flag_count.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_derive/03_02_option.md (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_derive/03_02_option.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_derive/03_02_option_mult.md (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_derive/03_02_option_mult.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_derive/03_03_positional.md (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_derive/03_03_positional.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_derive/03_03_positional_mult.md (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_derive/03_03_positional_mult.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_derive/03_04_subcommands.md (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_derive/03_04_subcommands.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_derive/03_04_subcommands_alt.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_derive/03_05_default_values.md (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_derive/03_05_default_values.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_derive/03_06_optional.md (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_derive/03_06_optional.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_derive/04_01_enum.md (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_derive/04_01_enum.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_derive/04_02_parse.md (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_derive/04_02_parse.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_derive/04_02_validate.md (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_derive/04_02_validate.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_derive/04_03_relations.md (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_derive/04_03_relations.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_derive/04_04_custom.md (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_derive/04_04_custom.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/tutorial_derive/05_01_assert.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/typed-derive/builtin.md (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/typed-derive/builtin.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/typed-derive/custom.md (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/typed-derive/custom.rs (91%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/typed-derive/fn_parser.md (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/typed-derive/fn_parser.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/typed-derive/foreign_crate.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/typed-derive/implicit.md (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/typed-derive/implicit.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/examples/typed-derive/main.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/src/_concepts.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/src/_cookbook/cargo_example.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/src/_cookbook/cargo_example_derive.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/src/_cookbook/escaped_positional.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/src/_cookbook/escaped_positional_derive.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/src/_cookbook/find.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/src/_cookbook/git.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/src/_cookbook/git_derive.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/src/_cookbook/mod.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/src/_cookbook/multicall_busybox.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/src/_cookbook/multicall_hostname.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/src/_cookbook/pacman.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/src/_cookbook/repl.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/src/_cookbook/repl_derive.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/src/_cookbook/typed_derive.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/src/_derive/_tutorial.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/src/_derive/mod.rs (95%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/src/_faq.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/src/_features.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/src/_tutorial.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/src/bin/stdio-fixture.rs (100%) rename third_party/crates/{clap-4.6.6 => clap-4.6.7}/src/lib.rs (98%) delete mode 100644 third_party/crates/clap_builder-4.6.6/.cargo_vcs_info.json rename third_party/crates/{clap_builder-4.6.6 => clap_builder-4.6.7}/.cargo-checksum.json (54%) create mode 100644 third_party/crates/clap_builder-4.6.7/.cargo_vcs_info.json rename third_party/crates/{clap_builder-4.6.6 => clap_builder-4.6.7}/BUILD.bazel (98%) rename third_party/crates/{clap_builder-4.6.6 => clap_builder-4.6.7}/Cargo.lock (97%) rename third_party/crates/{clap_builder-4.6.6 => clap_builder-4.6.7}/Cargo.toml (89%) rename third_party/crates/{clap_builder-4.6.6 => clap_builder-4.6.7}/Cargo.toml.orig (99%) rename third_party/crates/{clap_lex-1.1.0 => clap_builder-4.6.7}/LICENSE-APACHE (99%) rename third_party/crates/{clap_builder-4.6.6 => clap_builder-4.6.7}/LICENSE-MIT (100%) rename third_party/crates/{clap_builder-4.6.6 => clap_builder-4.6.7}/README.md (100%) rename third_party/crates/{clap_builder-4.6.6 => clap_builder-4.6.7}/src/builder/action.rs (100%) rename third_party/crates/{clap_builder-4.6.6 => clap_builder-4.6.7}/src/builder/app_settings.rs (100%) rename third_party/crates/{clap_builder-4.6.6 => clap_builder-4.6.7}/src/builder/arg.rs (99%) rename third_party/crates/{clap_builder-4.6.6 => clap_builder-4.6.7}/src/builder/arg_group.rs (99%) rename third_party/crates/{clap_builder-4.6.6 => clap_builder-4.6.7}/src/builder/arg_predicate.rs (100%) rename third_party/crates/{clap_builder-4.6.6 => clap_builder-4.6.7}/src/builder/arg_settings.rs (100%) rename third_party/crates/{clap_builder-4.6.6 => clap_builder-4.6.7}/src/builder/command.rs (99%) rename third_party/crates/{clap_builder-4.6.6 => clap_builder-4.6.7}/src/builder/debug_asserts.rs (100%) rename third_party/crates/{clap_builder-4.6.6 => clap_builder-4.6.7}/src/builder/ext.rs (100%) rename third_party/crates/{clap_builder-4.6.6 => clap_builder-4.6.7}/src/builder/mod.rs (100%) rename third_party/crates/{clap_builder-4.6.6 => clap_builder-4.6.7}/src/builder/os_str.rs (98%) rename third_party/crates/{clap_builder-4.6.6 => clap_builder-4.6.7}/src/builder/possible_value.rs (99%) rename third_party/crates/{clap_builder-4.6.6 => clap_builder-4.6.7}/src/builder/range.rs (100%) rename third_party/crates/{clap_builder-4.6.6 => clap_builder-4.6.7}/src/builder/resettable.rs (92%) rename third_party/crates/{clap_builder-4.6.6 => clap_builder-4.6.7}/src/builder/str.rs (97%) rename third_party/crates/{clap_builder-4.6.6 => clap_builder-4.6.7}/src/builder/styled_str.rs (96%) rename third_party/crates/{clap_builder-4.6.6 => clap_builder-4.6.7}/src/builder/styling.rs (100%) rename third_party/crates/{clap_builder-4.6.6 => clap_builder-4.6.7}/src/builder/tests.rs (100%) rename third_party/crates/{clap_builder-4.6.6 => clap_builder-4.6.7}/src/builder/value_hint.rs (83%) rename third_party/crates/{clap_builder-4.6.6 => clap_builder-4.6.7}/src/builder/value_parser.rs (98%) rename third_party/crates/{clap_builder-4.6.6 => clap_builder-4.6.7}/src/derive.rs (98%) rename third_party/crates/{clap_builder-4.6.6 => clap_builder-4.6.7}/src/error/context.rs (100%) rename third_party/crates/{clap_builder-4.6.6 => clap_builder-4.6.7}/src/error/format.rs (100%) rename third_party/crates/{clap_builder-4.6.6 => clap_builder-4.6.7}/src/error/kind.rs (100%) rename third_party/crates/{clap_builder-4.6.6 => clap_builder-4.6.7}/src/error/mod.rs (99%) rename third_party/crates/{clap_builder-4.6.6 => clap_builder-4.6.7}/src/lib.rs (100%) rename third_party/crates/{clap_builder-4.6.6 => clap_builder-4.6.7}/src/macros.rs (100%) rename third_party/crates/{clap_builder-4.6.6 => clap_builder-4.6.7}/src/mkeymap.rs (94%) rename third_party/crates/{clap_builder-4.6.6 => clap_builder-4.6.7}/src/output/fmt.rs (99%) rename third_party/crates/{clap_builder-4.6.6 => clap_builder-4.6.7}/src/output/help.rs (100%) rename third_party/crates/{clap_builder-4.6.6 => clap_builder-4.6.7}/src/output/help_template.rs (100%) rename third_party/crates/{clap_builder-4.6.6 => clap_builder-4.6.7}/src/output/mod.rs (100%) rename third_party/crates/{clap_builder-4.6.6 => clap_builder-4.6.7}/src/output/textwrap/core.rs (100%) rename third_party/crates/{clap_builder-4.6.6 => clap_builder-4.6.7}/src/output/textwrap/mod.rs (100%) rename third_party/crates/{clap_builder-4.6.6 => clap_builder-4.6.7}/src/output/textwrap/word_separators.rs (100%) rename third_party/crates/{clap_builder-4.6.6 => clap_builder-4.6.7}/src/output/textwrap/wrap_algorithms.rs (100%) rename third_party/crates/{clap_builder-4.6.6 => clap_builder-4.6.7}/src/output/usage.rs (100%) rename third_party/crates/{clap_builder-4.6.6 => clap_builder-4.6.7}/src/parser/arg_matcher.rs (99%) rename third_party/crates/{clap_builder-4.6.6 => clap_builder-4.6.7}/src/parser/error.rs (96%) rename third_party/crates/{clap_builder-4.6.6 => clap_builder-4.6.7}/src/parser/features/mod.rs (100%) rename third_party/crates/{clap_builder-4.6.6 => clap_builder-4.6.7}/src/parser/features/suggestions.rs (100%) rename third_party/crates/{clap_builder-4.6.6 => clap_builder-4.6.7}/src/parser/matches/arg_matches.rs (99%) rename third_party/crates/{clap_builder-4.6.6 => clap_builder-4.6.7}/src/parser/matches/matched_arg.rs (98%) rename third_party/crates/{clap_builder-4.6.6 => clap_builder-4.6.7}/src/parser/matches/mod.rs (100%) rename third_party/crates/{clap_builder-4.6.6 => clap_builder-4.6.7}/src/parser/matches/value_source.rs (100%) rename third_party/crates/{clap_builder-4.6.6 => clap_builder-4.6.7}/src/parser/mod.rs (100%) rename third_party/crates/{clap_builder-4.6.6 => clap_builder-4.6.7}/src/parser/parser.rs (100%) rename third_party/crates/{clap_builder-4.6.6 => clap_builder-4.6.7}/src/parser/validator.rs (100%) rename third_party/crates/{clap_builder-4.6.6 => clap_builder-4.6.7}/src/util/any_value.rs (100%) rename third_party/crates/{clap_builder-4.6.6 => clap_builder-4.6.7}/src/util/color.rs (100%) rename third_party/crates/{clap_builder-4.6.6 => clap_builder-4.6.7}/src/util/escape.rs (100%) rename third_party/crates/{clap_builder-4.6.6 => clap_builder-4.6.7}/src/util/flat_map.rs (100%) rename third_party/crates/{clap_builder-4.6.6 => clap_builder-4.6.7}/src/util/flat_set.rs (100%) rename third_party/crates/{clap_builder-4.6.6 => clap_builder-4.6.7}/src/util/graph.rs (94%) rename third_party/crates/{clap_builder-4.6.6 => clap_builder-4.6.7}/src/util/id.rs (98%) rename third_party/crates/{clap_builder-4.6.6 => clap_builder-4.6.7}/src/util/mod.rs (100%) rename third_party/crates/{clap_builder-4.6.6 => clap_builder-4.6.7}/src/util/str_to_bool.rs (100%) delete mode 100644 third_party/crates/clap_derive-4.6.4/.cargo-checksum.json delete mode 100644 third_party/crates/clap_derive-4.6.4/.cargo_vcs_info.json create mode 100644 third_party/crates/clap_derive-4.6.7/.cargo-checksum.json create mode 100644 third_party/crates/clap_derive-4.6.7/.cargo_vcs_info.json rename third_party/crates/{clap_derive-4.6.4 => clap_derive-4.6.7}/BUILD.bazel (98%) rename third_party/crates/{clap_derive-4.6.4 => clap_derive-4.6.7}/Cargo.lock (99%) rename third_party/crates/{clap_derive-4.6.4 => clap_derive-4.6.7}/Cargo.toml (87%) rename third_party/crates/{clap_derive-4.6.4 => clap_derive-4.6.7}/Cargo.toml.orig (98%) rename third_party/crates/{clap_builder-4.6.6 => clap_derive-4.6.7}/LICENSE-APACHE (99%) rename third_party/crates/{clap_derive-4.6.4 => clap_derive-4.6.7}/LICENSE-MIT (100%) rename third_party/crates/{clap_derive-4.6.4 => clap_derive-4.6.7}/README.md (100%) rename third_party/crates/{clap_derive-4.6.4 => clap_derive-4.6.7}/src/attr.rs (91%) rename third_party/crates/{clap_derive-4.6.4 => clap_derive-4.6.7}/src/derives/args.rs (98%) rename third_party/crates/{clap_derive-4.6.4 => clap_derive-4.6.7}/src/derives/into_app.rs (100%) rename third_party/crates/{clap_derive-4.6.4 => clap_derive-4.6.7}/src/derives/mod.rs (100%) rename third_party/crates/{clap_derive-4.6.4 => clap_derive-4.6.7}/src/derives/parser.rs (100%) rename third_party/crates/{clap_derive-4.6.4 => clap_derive-4.6.7}/src/derives/subcommand.rs (93%) rename third_party/crates/{clap_derive-4.6.4 => clap_derive-4.6.7}/src/derives/value_enum.rs (100%) rename third_party/crates/{clap_derive-4.6.4 => clap_derive-4.6.7}/src/dummies.rs (100%) rename third_party/crates/{clap_derive-4.6.4 => clap_derive-4.6.7}/src/item.rs (97%) rename third_party/crates/{clap_derive-4.6.4 => clap_derive-4.6.7}/src/lib.rs (100%) rename third_party/crates/{clap_derive-4.6.4 => clap_derive-4.6.7}/src/macros.rs (100%) rename third_party/crates/{clap_derive-4.6.4 => clap_derive-4.6.7}/src/utils/doc_comments.rs (100%) rename third_party/crates/{clap_derive-4.6.4 => clap_derive-4.6.7}/src/utils/error.rs (100%) rename third_party/crates/{clap_derive-4.6.4 => clap_derive-4.6.7}/src/utils/mod.rs (100%) rename third_party/crates/{clap_derive-4.6.4 => clap_derive-4.6.7}/src/utils/spanned.rs (94%) rename third_party/crates/{clap_derive-4.6.4 => clap_derive-4.6.7}/src/utils/ty.rs (100%) delete mode 100644 third_party/crates/clap_lex-1.1.0/.cargo-checksum.json delete mode 100644 third_party/crates/clap_lex-1.1.0/.cargo_vcs_info.json create mode 100644 third_party/crates/clap_lex-1.1.1/.cargo-checksum.json create mode 100644 third_party/crates/clap_lex-1.1.1/.cargo_vcs_info.json rename third_party/crates/{clap_lex-1.1.0 => clap_lex-1.1.1}/BUILD.bazel (99%) rename third_party/crates/{clap_lex-1.1.0 => clap_lex-1.1.1}/Cargo.lock (69%) rename third_party/crates/{clap_lex-1.1.0 => clap_lex-1.1.1}/Cargo.toml (87%) rename third_party/crates/{clap_lex-1.1.0 => clap_lex-1.1.1}/Cargo.toml.orig (98%) rename third_party/crates/{clap-4.6.6 => clap_lex-1.1.1}/LICENSE-APACHE (99%) rename third_party/crates/{clap_lex-1.1.0 => clap_lex-1.1.1}/LICENSE-MIT (100%) rename third_party/crates/{clap_lex-1.1.0 => clap_lex-1.1.1}/README.md (90%) rename third_party/crates/{clap_lex-1.1.0 => clap_lex-1.1.1}/src/ext.rs (98%) rename third_party/crates/{clap_lex-1.1.0 => clap_lex-1.1.1}/src/lib.rs (100%) delete mode 100644 third_party/crates/syn-3.0.5/.cargo_vcs_info.json rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/.cargo-checksum.json (89%) create mode 100644 third_party/crates/syn-3.0.6/.cargo_vcs_info.json rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/BUILD.bazel (98%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/Cargo.lock (91%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/Cargo.toml (99%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/Cargo.toml.orig (99%) rename third_party/crates/{unicode-ident-1.0.24 => syn-3.0.6}/LICENSE-APACHE (100%) rename third_party/crates/{unicode-ident-1.0.24 => syn-3.0.6}/LICENSE-MIT (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/README.md (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/benches/file.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/benches/rust.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/src/attr.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/src/bigint.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/src/buffer.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/src/classify.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/src/custom_keyword.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/src/custom_punctuation.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/src/data.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/src/derive.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/src/discouraged.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/src/drops.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/src/error.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/src/export.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/src/expr.rs (99%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/src/ext.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/src/file.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/src/fixup.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/src/gen/clone.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/src/gen/debug.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/src/gen/eq.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/src/gen/fold.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/src/gen/hash.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/src/gen/token.css (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/src/gen/visit.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/src/gen/visit_mut.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/src/generics.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/src/group.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/src/ident.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/src/item.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/src/lib.rs (99%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/src/lifetime.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/src/lit.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/src/lookahead.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/src/mac.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/src/macros.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/src/meta.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/src/op.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/src/parse.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/src/parse_macro_input.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/src/parse_quote.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/src/pat.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/src/path.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/src/precedence.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/src/print.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/src/punctuated.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/src/restriction.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/src/scan_expr.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/src/sealed.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/src/span.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/src/spanned.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/src/stmt.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/src/thread.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/src/token.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/src/tt.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/src/ty.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/src/verbatim.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/src/whitespace.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/tests/common/eq.rs (99%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/tests/common/mod.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/tests/common/parse.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/tests/common/visit.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/tests/debug/gen.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/tests/debug/mod.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/tests/macros/mod.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/tests/regression.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/tests/regression/issue1108.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/tests/regression/issue1235.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/tests/repo/mod.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/tests/repo/progress.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/tests/snapshot/mod.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/tests/test_attribute.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/tests/test_derive_input.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/tests/test_expr.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/tests/test_generics.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/tests/test_grouping.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/tests/test_ident.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/tests/test_item.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/tests/test_lit.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/tests/test_meta.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/tests/test_parse_buffer.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/tests/test_parse_quote.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/tests/test_parse_stream.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/tests/test_pat.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/tests/test_path.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/tests/test_precedence.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/tests/test_punctuated.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/tests/test_receiver.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/tests/test_round_trip.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/tests/test_shebang.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/tests/test_size.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/tests/test_stmt.rs (89%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/tests/test_token_trees.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/tests/test_ty.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/tests/test_unparenthesize.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/tests/test_visibility.rs (100%) rename third_party/crates/{syn-3.0.5 => syn-3.0.6}/tests/zzz_stable.rs (100%) delete mode 100644 third_party/crates/unicode-ident-1.0.24/.cargo-checksum.json delete mode 100644 third_party/crates/unicode-ident-1.0.24/.cargo_vcs_info.json delete mode 100644 third_party/crates/unicode-ident-1.0.24/tests/tables/tables.rs create mode 100644 third_party/crates/unicode-ident-1.0.26/.cargo-checksum.json create mode 100644 third_party/crates/unicode-ident-1.0.26/.cargo_vcs_info.json create mode 100644 third_party/crates/unicode-ident-1.0.26/.github/FUNDING.yml rename third_party/crates/{unicode-ident-1.0.24 => unicode-ident-1.0.26}/.github/workflows/ci.yml (91%) rename third_party/crates/{unicode-ident-1.0.24 => unicode-ident-1.0.26}/BUILD.bazel (99%) rename third_party/crates/{unicode-ident-1.0.24 => unicode-ident-1.0.26}/Cargo.lock (53%) rename third_party/crates/{unicode-ident-1.0.24 => unicode-ident-1.0.26}/Cargo.toml (99%) rename third_party/crates/{unicode-ident-1.0.24 => unicode-ident-1.0.26}/Cargo.toml.orig (95%) create mode 100644 third_party/crates/unicode-ident-1.0.26/LICENSE-APACHE create mode 100644 third_party/crates/unicode-ident-1.0.26/LICENSE-MIT rename third_party/crates/{unicode-ident-1.0.24 => unicode-ident-1.0.26}/LICENSE-UNICODE (100%) rename third_party/crates/{unicode-ident-1.0.24 => unicode-ident-1.0.26}/README.md (91%) rename third_party/crates/{unicode-ident-1.0.24 => unicode-ident-1.0.26}/benches/xid.rs (100%) rename third_party/crates/{unicode-ident-1.0.24 => unicode-ident-1.0.26}/src/lib.rs (89%) rename third_party/crates/{unicode-ident-1.0.24 => unicode-ident-1.0.26}/src/tables.rs (88%) rename third_party/crates/{unicode-ident-1.0.24 => unicode-ident-1.0.26}/tests/compare.rs (100%) rename third_party/crates/{unicode-ident-1.0.24 => unicode-ident-1.0.26}/tests/fst/mod.rs (100%) rename third_party/crates/{unicode-ident-1.0.24 => unicode-ident-1.0.26}/tests/fst/xid_continue.fst (85%) rename third_party/crates/{unicode-ident-1.0.24 => unicode-ident-1.0.26}/tests/fst/xid_start.fst (87%) rename third_party/crates/{unicode-ident-1.0.24 => unicode-ident-1.0.26}/tests/roaring/mod.rs (100%) rename third_party/crates/{unicode-ident-1.0.24 => unicode-ident-1.0.26}/tests/static_size.rs (94%) rename third_party/crates/{unicode-ident-1.0.24 => unicode-ident-1.0.26}/tests/tables/mod.rs (100%) create mode 100644 third_party/crates/unicode-ident-1.0.26/tests/tables/tables.rs rename third_party/crates/{unicode-ident-1.0.24 => unicode-ident-1.0.26}/tests/trie/mod.rs (100%) rename third_party/crates/{unicode-ident-1.0.24 => unicode-ident-1.0.26}/tests/trie/trie.rs (74%) diff --git a/Cargo.lock b/Cargo.lock index 7db0b5b..73e6e7b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -52,6 +52,12 @@ dependencies = [ "windows-sys", ] +[[package]] +name = "anyhow" +version = "1.0.104" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "330a5ed07fa54e4702c9d6c4174f74427fc0ef6e214bbd677ae50a5099946470" + [[package]] name = "ariadne" version = "0.1.0" @@ -226,9 +232,9 @@ dependencies = [ [[package]] name = "unicode-ident" -version = "1.0.25" +version = "1.0.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab72a15cf68d77cb0987d3684aa8a45c5ef827e8cb49ee2f30bfd7ba2feb519f" +checksum = "d245f478577f809a851594d02313b640fb437e0bb33866753cff937863096954" [[package]] name = "utf8parse" @@ -255,6 +261,7 @@ dependencies = [ name = "xatu" version = "0.1.0" dependencies = [ + "anyhow", "clap", "monorepo", ] diff --git a/Cargo.toml b/Cargo.toml index 9bdfe2d..776d0a4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -8,6 +8,7 @@ members = [ resolver = "3" [workspace.dependencies] +anyhow = "1.0" clap = "4" monorepo = { path = "src/monorepo" } serde = "1.0" diff --git a/src/xatu/Cargo.toml b/src/xatu/Cargo.toml index aa1d37b..0cb65af 100644 --- a/src/xatu/Cargo.toml +++ b/src/xatu/Cargo.toml @@ -11,5 +11,6 @@ name = "xatu" path = "xatu_main.rs" [dependencies] +anyhow = { workspace = true } clap = { workspace = true, features = ["derive"] } monorepo = { workspace = true } diff --git a/third_party/crates/BUILD.bazel b/third_party/crates/BUILD.bazel index 660512f..e2cae57 100644 --- a/third_party/crates/BUILD.bazel +++ b/third_party/crates/BUILD.bazel @@ -32,14 +32,26 @@ filegroup( # Workspace Member Dependencies alias( - name = "clap-4.6.6", - actual = "//third_party/crates/clap-4.6.6:clap", + name = "anyhow-1.0.104", + actual = "//third_party/crates/anyhow-1.0.104:anyhow", + tags = ["manual"], +) + +alias( + name = "anyhow", + actual = "//third_party/crates/anyhow-1.0.104:anyhow", + tags = ["manual"], +) + +alias( + name = "clap-4.6.7", + actual = "//third_party/crates/clap-4.6.7:clap", tags = ["manual"], ) alias( name = "clap", - actual = "//third_party/crates/clap-4.6.6:clap", + actual = "//third_party/crates/clap-4.6.7:clap", tags = ["manual"], ) @@ -55,18 +67,6 @@ alias( tags = ["manual"], ) -alias( - name = "rowan-0.16.1", - actual = "//third_party/crates/rowan-0.16.1:rowan", - tags = ["manual"], -) - -alias( - name = "rowan", - actual = "//third_party/crates/rowan-0.16.1:rowan", - tags = ["manual"], -) - alias( name = "serde-1.0.229", actual = "//third_party/crates/serde-1.0.229:serde", diff --git a/third_party/crates/anyhow-1.0.104/.cargo-checksum.json b/third_party/crates/anyhow-1.0.104/.cargo-checksum.json new file mode 100644 index 0000000..51b4065 --- /dev/null +++ b/third_party/crates/anyhow-1.0.104/.cargo-checksum.json @@ -0,0 +1 @@ +{"$comment":"This file only protects against accidental modifications. It is not a security mechanism and does not protect against malicious changes.","files":{".cargo_vcs_info.json":"9f5691d9965b8418415cfe8872a667089542a23a1d746bad08476ccda5e6269c",".github/FUNDING.yml":"b017158736b3c9751a2d21edfce7fe61c8954e2fced8da8dd3013c2f3e295bd9",".github/workflows/ci.yml":"40e9434834e8ba84207ef6a401da6b154fa4220a4847230284d6aae63d8a39ac","Cargo.lock":"c7b6dd9adcad0b26ce812afdb8539e1d93994a0735a90eb0dd7ce8535e3e7ffa","Cargo.toml":"249789761ff37004dda628765f0c9e60a61fa43cbbd2d364789dca0c789eeb59","Cargo.toml.orig":"1b03bd9d21f63835f0449cf1456e6143a15efd6b7803bc5b7787643db62b6f53","LICENSE-APACHE":"62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a","LICENSE-MIT":"23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3","README.md":"86f5b88c45b2b9b7eefa0ad66c11918a607319cad683f01123ff38db68b4a49b","build.rs":"89d1baedcff59822ed692d3a33f131c211a213bdec33c83f68b54110d9c64223","rust-toolchain.toml":"6bbb61302978c736b2da03e4fb40e3beab908f85d533ab46fd541e637b5f3e0f","src/backtrace.rs":"621ec5d9e2f31883d0384ae00fc536d1ea359da989d2e0d1be1ba03482c8f920","src/chain.rs":"85af447405f075633fab186b7f1c94d7f33a36474f239c50a961b2d6197d5426","src/context.rs":"8b106e43df7a66fbc3e85b87a4d7f8a780d43d3ee0cd1ae86c571950ecf07d13","src/ensure.rs":"709524741c8f9365e01cb36fc2349a8724513de02cf9e253809a93af8d6a7b6e","src/error.rs":"2a78ee4e5f8d6b4476c761f77473362b9ed12f5402e4701001e7d04d628ba030","src/fmt.rs":"2cca8c7f3cab636fdb17433ca2b1fda0e8d28bb20d4647b87c991dacd8f06cdf","src/kind.rs":"ddcabf15b3b47a4ef16ed361c45cc0cc82e7be90622995ff6c04b3fec78bb04f","src/lib.rs":"ea7f436f6bf4b356ff30ec922b50b40ead0ade28b123341a8de7f310311fd44c","src/macros.rs":"696e6a8aac614525a29697aedc7561e98beccf3d43aed3ada1cc93daa99da8ba","src/nightly.rs":"1c0aeadfcdbe22f8f807b185dec1a7448c378bddb37689714944b60473b58049","src/ptr.rs":"a114639d26f4feca7e186106342334cdf2e2176f892149aa331ace72e5d81410","src/wrapper.rs":"079218e1d8c9374f52311b1c7971f7fbdeba4d7af1b0749c0d535010f1232697","tests/common/mod.rs":"f9088c2d7afafa64ff730b629272045b776bfafc2f5957508242da630635f2e1","tests/compiletest.rs":"4e381aa8ca3eabb7ac14d1e0c3700b3223e47640547a6988cfa13ad68255f60f","tests/drop/mod.rs":"08c3e553c1cc0d2dbd936fc45f4b5b1105057186affd6865e8d261e05f0f0646","tests/test_autotrait.rs":"ba9bc18416115cb48fd08675a3e7fc89584de7926dad6b2be6645dc13d5931df","tests/test_backtrace.rs":"60afdd7ee5850dc22625ff486fe41c47fd322db874a93c4871ddfed2bf603930","tests/test_boxed.rs":"6b26db0e2eb72afe9af7352ea820837aab90f8d486294616dd5dc34c1b94038c","tests/test_chain.rs":"3a8a8d7569913bd98c0e27c69d0bda35101e7fde7c056ed57cdd8ed018e4cbcb","tests/test_context.rs":"a4cb7d9a6d488d902eb5ac516d2b5e4135f46caaa2d151580ed9ba83c2a90b57","tests/test_convert.rs":"7e7a8b4772a427a911014ac4d1083f9519000e786177f898808980dd9bdfde61","tests/test_downcast.rs":"797e69a72d125758c4c4897e5dc776d549d52cc9a6a633e0a33193f588a62b88","tests/test_ensure.rs":"6ef8823153d6aba31dda8438b9e51984e6b7377d585addbaf87162b39d733cd9","tests/test_ffi.rs":"c6e6bf39e6b2cf9aacea12e3e4da4e1e1edb7fc906d231e5baf45812a08de3c4","tests/test_fmt.rs":"0e49b48f08e4faaf03e2f202e1efc5250018876c4e1b01b8379d7a38ae8df870","tests/test_macros.rs":"3eb6ec9024cf8812da48de35b733d5a69ed942907fb4e6c67ec471cd4bcef562","tests/test_repr.rs":"034dee888abd08741e11ac2e95ef4fcb2ab3943d0a76e8e976db404658e1a252","tests/test_source.rs":"b80723cf635a4f8c4df21891b34bfab9ed2b2aa407e7a2f826d24e334cd5f88e","tests/ui/chained-comparison.rs":"6504b03d95b5acc232a7f4defc9f343b2be6733bf475fa0992e8e6545b912bd4","tests/ui/chained-comparison.stderr":"7f1d0a8c251b0ede2d30b3087ec157fc660945c97a642c4a5acf5a14ec58de34","tests/ui/empty-ensure.rs":"ab5bf37c846a0d689f26ce9257a27228411ed64154f9c950f1602d88a355d94b","tests/ui/empty-ensure.stderr":"315782f5f4246290fe190e3767b22c3dcaffaabc19c5ace0373537d53e765278","tests/ui/ensure-nonbool.rs":"7e57cb93fbcd82959b36586ed6bd2ad978b051fe5facd5274651fde6b1600905","tests/ui/ensure-nonbool.stderr":"e3dfbaedd66fdfc524f8462305760c7978c4268ca7e1cd872d7ecde5d3b455bd","tests/ui/must-use.rs":"fb59860b43f673bf4a430a6036ba463e95028844d8dd4243cfe5ebc7f2be582f","tests/ui/must-use.stderr":"8b1cb7fca632396a22bb3a642f2df3ab62b3e9a87951e20fa40bdd548d002162","tests/ui/no-impl.rs":"fab6cbf2f6ea510b86f567dfb3b7c31250a9fd71ae5d110dbb9188be569ec593","tests/ui/no-impl.stderr":"c472de95483aa234728c7f57039c88fc3456892838329976a75cd167c3c172c9","tests/ui/temporary-value.rs":"4dcc96271b2403e6372cf4cfc813445e5ce4365fc6e156b6bc38274098499a70","tests/ui/temporary-value.stderr":"7f99cd914d2d423d77274e1b859b5ad151cde8224e42687e50622c26118fd47f","tests/ui/wrong-interpolation.rs":"9c44d4674c2dccd27b9dedd03341346ec02d993b41793ee89b5755202e7e367e","tests/ui/wrong-interpolation.stderr":"301e60e2eb9401782c7dc0b3580613a4cb2aafd4cc8065734a630a62e1161aa5"},"package":"330a5ed07fa54e4702c9d6c4174f74427fc0ef6e214bbd677ae50a5099946470"} \ No newline at end of file diff --git a/third_party/crates/anyhow-1.0.104/.cargo_vcs_info.json b/third_party/crates/anyhow-1.0.104/.cargo_vcs_info.json new file mode 100644 index 0000000..6d990c1 --- /dev/null +++ b/third_party/crates/anyhow-1.0.104/.cargo_vcs_info.json @@ -0,0 +1,6 @@ +{ + "git": { + "sha1": "1dbe1862aae650423e3361fbd20b7d17c5109cc3" + }, + "path_in_vcs": "" +} \ No newline at end of file diff --git a/third_party/crates/unicode-ident-1.0.24/.github/FUNDING.yml b/third_party/crates/anyhow-1.0.104/.github/FUNDING.yml similarity index 100% rename from third_party/crates/unicode-ident-1.0.24/.github/FUNDING.yml rename to third_party/crates/anyhow-1.0.104/.github/FUNDING.yml diff --git a/third_party/crates/anyhow-1.0.104/.github/workflows/ci.yml b/third_party/crates/anyhow-1.0.104/.github/workflows/ci.yml new file mode 100644 index 0000000..d4e05d2 --- /dev/null +++ b/third_party/crates/anyhow-1.0.104/.github/workflows/ci.yml @@ -0,0 +1,146 @@ +name: CI + +on: + push: + pull_request: + workflow_dispatch: + schedule: [cron: "40 1 * * *"] + +permissions: + contents: read + +env: + RUSTFLAGS: -Dwarnings + +jobs: + pre_ci: + uses: dtolnay/.github/.github/workflows/pre_ci.yml@master + + test: + name: Rust ${{matrix.rust}} + needs: pre_ci + if: needs.pre_ci.outputs.continue + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + rust: [nightly, beta, stable, 1.85.0] + timeout-minutes: 45 + steps: + - uses: actions/checkout@v7 + - uses: dtolnay/rust-toolchain@master + with: + toolchain: ${{matrix.rust}} + components: rust-src + - name: Enable type layout randomization + run: echo RUSTFLAGS=${RUSTFLAGS}\ -Zrandomize-layout >> $GITHUB_ENV + if: matrix.rust == 'nightly' + - name: Enable nightly-only tests + run: echo RUSTFLAGS=${RUSTFLAGS}\ --cfg=anyhow_nightly_testing >> $GITHUB_ENV + if: matrix.rust == 'nightly' + - run: cargo test + - run: cargo check --no-default-features + - run: cargo check + - uses: actions/upload-artifact@v7 + if: matrix.rust == 'nightly' && always() + with: + name: Cargo.lock + path: Cargo.lock + continue-on-error: true + + build: + name: Rust ${{matrix.rust}} + needs: pre_ci + if: needs.pre_ci.outputs.continue + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + rust: [1.68.0] + timeout-minutes: 45 + steps: + - uses: actions/checkout@v7 + - uses: dtolnay/rust-toolchain@master + with: + toolchain: ${{matrix.rust}} + components: rust-src + - run: cargo check --manifest-path tests/crate/Cargo.toml + - run: cargo check --manifest-path tests/crate/Cargo.toml --no-default-features + + minimal: + name: Minimal versions + needs: pre_ci + if: needs.pre_ci.outputs.continue + runs-on: ubuntu-latest + timeout-minutes: 45 + steps: + - uses: actions/checkout@v7 + - uses: dtolnay/rust-toolchain@nightly + - run: cargo generate-lockfile -Z minimal-versions + - run: cargo check --locked + + windows: + name: Windows + needs: pre_ci + if: needs.pre_ci.outputs.continue + runs-on: windows-latest + timeout-minutes: 45 + steps: + - uses: actions/checkout@v7 + - uses: dtolnay/rust-toolchain@stable + with: + components: rust-src + - run: cargo check + + doc: + name: Documentation + needs: pre_ci + if: needs.pre_ci.outputs.continue + runs-on: ubuntu-latest + timeout-minutes: 45 + env: + RUSTDOCFLAGS: -Dwarnings + steps: + - uses: actions/checkout@v7 + - uses: dtolnay/rust-toolchain@nightly + with: + components: rust-src + - uses: dtolnay/install@cargo-docs-rs + - run: cargo docs-rs + + clippy: + name: Clippy + runs-on: ubuntu-latest + if: github.event_name != 'pull_request' + timeout-minutes: 45 + steps: + - uses: actions/checkout@v7 + - uses: dtolnay/rust-toolchain@nightly + with: + components: clippy, rust-src + - run: cargo clippy --tests -- -Dclippy::all -Dclippy::pedantic + + miri: + name: Miri + needs: pre_ci + if: needs.pre_ci.outputs.continue + runs-on: ubuntu-latest + timeout-minutes: 45 + steps: + - uses: actions/checkout@v7 + - uses: dtolnay/rust-toolchain@miri + - run: cargo miri setup + - run: cargo miri test + env: + MIRIFLAGS: -Zmiri-strict-provenance + + outdated: + name: Outdated + runs-on: ubuntu-latest + if: github.event_name != 'pull_request' + timeout-minutes: 45 + steps: + - uses: actions/checkout@v7 + - uses: dtolnay/rust-toolchain@stable + - uses: dtolnay/install@cargo-outdated + - run: cargo outdated --workspace --exit-code 1 diff --git a/third_party/crates/anyhow-1.0.104/BUILD.bazel b/third_party/crates/anyhow-1.0.104/BUILD.bazel new file mode 100644 index 0000000..3b4d8af --- /dev/null +++ b/third_party/crates/anyhow-1.0.104/BUILD.bazel @@ -0,0 +1,187 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//third_party:vendor_crates +############################################################################### + +load( + "@rules_rust//cargo:defs.bzl", + "cargo_build_script", + "cargo_toml_env_vars", +) +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +cargo_toml_env_vars( + name = "cargo_toml_env_vars", + src = "Cargo.toml", +) + +rust_library( + name = "anyhow", + srcs = glob( + include = ["**/*.rs"], + allow_empty = False, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_features = [ + "default", + "std", + ], + crate_root = "src/lib.rs", + edition = "2021", + rustc_env_files = [ + ":cargo_toml_env_vars", + ], + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=anyhow", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-macabi": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-none": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:arm-unknown-linux-musleabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:loongarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:mips-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imac-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:sparc64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:sparc64-unknown-netbsd": [], + "@rules_rust//rust/platform:sparc64-unknown-openbsd": [], + "@rules_rust//rust/platform:thumbv6m-none-eabi": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv7em-none-eabihf": [], + "@rules_rust//rust/platform:thumbv7m-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabihf": [], + "@rules_rust//rust/platform:wasm32-unknown-emscripten": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:wasm32-wasip1-threads": [], + "@rules_rust//rust/platform:wasm32-wasip2": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-apple-ios-macabi": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "1.0.104", + deps = [ + ":build_script_build", + ], +) + +cargo_build_script( + name = "_bs", + srcs = glob( + include = ["**/*.rs"], + allow_empty = False, + ), + build_script_env_files = [ + ":cargo_toml_env_vars", + ], + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + "**/*.rs", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_features = [ + "default", + "std", + ], + crate_name = "build_script_build", + crate_root = "build.rs", + data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + edition = "2021", + emit_warnings = False, + pkg_name = "anyhow", + rustc_env_files = [ + ":cargo_toml_env_vars", + ], + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=anyhow", + "manual", + "noclippy", + "norustfmt", + ], + version = "1.0.104", + visibility = ["//visibility:private"], +) + +alias( + name = "build_script_build", + actual = ":_bs", + tags = ["manual"], +) diff --git a/third_party/crates/anyhow-1.0.104/Cargo.lock b/third_party/crates/anyhow-1.0.104/Cargo.lock new file mode 100644 index 0000000..e0d301e --- /dev/null +++ b/third_party/crates/anyhow-1.0.104/Cargo.lock @@ -0,0 +1,355 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "anyhow" +version = "1.0.104" +dependencies = [ + "futures", + "rustversion", + "syn 3.0.0", + "thiserror", + "trybuild", +] + +[[package]] +name = "dissimilar" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aeda16ab4059c5fd2a83f2b9c9e9c981327b18aa8e3b313f7e6563799d4f093e" + +[[package]] +name = "equivalent" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" + +[[package]] +name = "futures" +version = "0.3.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a88cf1f829d945f548cf8fec32c61b1f202b6d93b45848602fc02af4b12ad218" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "262590f4fe6afeb0bc83be1daa64e52657fe185690a958af7f3ad0e92085c5ae" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2cd50c473c80f6d7c3670a752354b8e569b1a7cbfdc0419ec88e5edad85e0dc7" + +[[package]] +name = "futures-io" +version = "0.3.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4577ecaa3c4f96589d473f679a71b596316f6641bc350038b962a5daf0085d7a" + +[[package]] +name = "futures-sink" +version = "0.3.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e34418ac499d6305c2fb5ad0ed2f6ac998c5f8ca209b4510f7f94242c647e307" + +[[package]] +name = "futures-task" +version = "0.3.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b231ed28831efb4a61a08580c4bc233ec56bc009f4cd8f52da2c3cb97df0c109" + +[[package]] +name = "futures-util" +version = "0.3.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a77a90a256fce34da66415271e30f94ee91c57b04b8a2c042d9cf3220179deaa" +dependencies = [ + "futures-core", + "futures-sink", + "futures-task", + "pin-project-lite", +] + +[[package]] +name = "glob" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" + +[[package]] +name = "hashbrown" +version = "0.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a" + +[[package]] +name = "indexmap" +version = "2.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d466e9454f08e4a911e14806c24e16fba1b4c121d1ea474396f396069cf949d9" +dependencies = [ + "equivalent", + "hashbrown", +] + +[[package]] +name = "itoa" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" + +[[package]] +name = "memchr" +version = "2.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98" + +[[package]] +name = "pin-project-lite" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" + +[[package]] +name = "proc-macro2" +version = "1.0.106" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfbc457d0c7a0759a614551b11a6409e5951f6c7537be1f1b7682b9ae9230368" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rustversion" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f" + +[[package]] +name = "serde" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" +dependencies = [ + "serde_core", +] + +[[package]] +name = "serde_core" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.228" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "serde_json" +version = "1.0.150" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8014e44b4736ed0538adeecded0fce2a272f22dc9578a7eb6b2d9993c74cfb9" +dependencies = [ + "itoa", + "memchr", + "serde", + "serde_core", + "zmij", +] + +[[package]] +name = "serde_spanned" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6662b5879511e06e8999a8a235d848113e942c9124f211511b16466ee2995f26" +dependencies = [ + "serde_core", +] + +[[package]] +name = "syn" +version = "2.0.119" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2fac314a64dc9a36e61a9eb4261a5e9bbfbc922b27e518af97bc32b926cf967" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "target-triple" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3a6bfce3d99adfa72d24750a61f782f3036a81e7f86d8841ee1326deaebd171" + +[[package]] +name = "termcolor" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "thiserror" +version = "2.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.119", +] + +[[package]] +name = "toml" +version = "1.1.3+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53c96ecdfa941c8fc4fcaed14f99ada8ebed502eef533015095a07e3301d4c3c" +dependencies = [ + "indexmap", + "serde_core", + "serde_spanned", + "toml_datetime", + "toml_parser", + "toml_writer", + "winnow", +] + +[[package]] +name = "toml_datetime" +version = "1.1.1+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3165f65f62e28e0115a00b2ebdd37eb6f3b641855f9d636d3cd4103767159ad7" +dependencies = [ + "serde_core", +] + +[[package]] +name = "toml_parser" +version = "1.1.2+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526" +dependencies = [ + "winnow", +] + +[[package]] +name = "toml_writer" +version = "1.1.2+spec-1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d56353a2a665ad0f41a421187180aab746c8c325620617ad883a99a1cbe66d2" + +[[package]] +name = "trybuild" +version = "1.0.118" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06649c6f63d86604ba0c8950d5a1829fc9a17afd70fc6629f481d75b6a624c78" +dependencies = [ + "dissimilar", + "glob", + "serde", + "serde_derive", + "serde_json", + "target-triple", + "termcolor", + "toml", +] + +[[package]] +name = "unicode-ident" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" + +[[package]] +name = "winapi-util" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" +dependencies = [ + "windows-sys", +] + +[[package]] +name = "windows-link" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" + +[[package]] +name = "windows-sys" +version = "0.61.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" +dependencies = [ + "windows-link", +] + +[[package]] +name = "winnow" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23b97319f7b8343df12cc98938e5c3eb436064524c8d2b4e30a1d3a36eecdf81" + +[[package]] +name = "zmij" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b" diff --git a/third_party/crates/anyhow-1.0.104/Cargo.toml b/third_party/crates/anyhow-1.0.104/Cargo.toml new file mode 100644 index 0000000..d0b23cc --- /dev/null +++ b/third_party/crates/anyhow-1.0.104/Cargo.toml @@ -0,0 +1,129 @@ +# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO +# +# When uploading crates to the registry Cargo will automatically +# "normalize" Cargo.toml files for maximal compatibility +# with all versions of Cargo and also rewrite `path` dependencies +# to registry (e.g., crates.io) dependencies. +# +# If you are reading this file be aware that the original Cargo.toml +# will likely look very different (and much more reasonable). +# See Cargo.toml.orig for the original contents. + +[package] +edition = "2021" +rust-version = "1.68" +name = "anyhow" +version = "1.0.104" +authors = ["David Tolnay "] +build = "build.rs" +autolib = false +autobins = false +autoexamples = false +autotests = false +autobenches = false +description = "Flexible concrete Error type built on std::error::Error" +documentation = "https://docs.rs/anyhow" +readme = "README.md" +keywords = [ + "error", + "error-handling", +] +categories = [ + "rust-patterns", + "no-std", +] +license = "MIT OR Apache-2.0" +repository = "https://github.com/dtolnay/anyhow" + +[package.metadata.docs.rs] +targets = ["x86_64-unknown-linux-gnu"] +rustdoc-args = [ + "--generate-link-to-definition", + "--generate-macro-expansion", + "--extern-html-root-url=core=https://doc.rust-lang.org", + "--extern-html-root-url=alloc=https://doc.rust-lang.org", + "--extern-html-root-url=std=https://doc.rust-lang.org", +] + +[features] +backtrace = [] +default = ["std"] +std = [] + +[lib] +name = "anyhow" +path = "src/lib.rs" + +[[test]] +name = "compiletest" +path = "tests/compiletest.rs" + +[[test]] +name = "test_autotrait" +path = "tests/test_autotrait.rs" + +[[test]] +name = "test_backtrace" +path = "tests/test_backtrace.rs" + +[[test]] +name = "test_boxed" +path = "tests/test_boxed.rs" + +[[test]] +name = "test_chain" +path = "tests/test_chain.rs" + +[[test]] +name = "test_context" +path = "tests/test_context.rs" + +[[test]] +name = "test_convert" +path = "tests/test_convert.rs" + +[[test]] +name = "test_downcast" +path = "tests/test_downcast.rs" + +[[test]] +name = "test_ensure" +path = "tests/test_ensure.rs" + +[[test]] +name = "test_ffi" +path = "tests/test_ffi.rs" + +[[test]] +name = "test_fmt" +path = "tests/test_fmt.rs" + +[[test]] +name = "test_macros" +path = "tests/test_macros.rs" + +[[test]] +name = "test_repr" +path = "tests/test_repr.rs" + +[[test]] +name = "test_source" +path = "tests/test_source.rs" + +[dev-dependencies.futures] +version = "0.3" +default-features = false + +[dev-dependencies.rustversion] +version = "1.0.6" + +[dev-dependencies.syn] +version = "3" +features = ["full"] + +[dev-dependencies.thiserror] +version = "2" + +[dev-dependencies.trybuild] +version = "1.0.108" +features = ["diff"] diff --git a/third_party/crates/anyhow-1.0.104/Cargo.toml.orig b/third_party/crates/anyhow-1.0.104/Cargo.toml.orig new file mode 100644 index 0000000..37cdeb7 --- /dev/null +++ b/third_party/crates/anyhow-1.0.104/Cargo.toml.orig @@ -0,0 +1,36 @@ +[package] +name = "anyhow" +version = "1.0.104" +authors = ["David Tolnay "] +categories = ["rust-patterns", "no-std"] +description = "Flexible concrete Error type built on std::error::Error" +documentation = "https://docs.rs/anyhow" +edition = "2021" +keywords = ["error", "error-handling"] +license = "MIT OR Apache-2.0" +repository = "https://github.com/dtolnay/anyhow" +rust-version = "1.68" + +[features] +default = ["std"] +std = [] +# THIS HAS NO EFFECT. This feature remains to preserve compatibility with the +# old `backtrace` optional dependency that this crate used to have. +backtrace = [] + +[dev-dependencies] +futures = { version = "0.3", default-features = false } +rustversion = "1.0.6" +syn = { version = "3", features = ["full"] } +thiserror = "2" +trybuild = { version = "1.0.108", features = ["diff"] } + +[package.metadata.docs.rs] +targets = ["x86_64-unknown-linux-gnu"] +rustdoc-args = [ + "--generate-link-to-definition", + "--generate-macro-expansion", + "--extern-html-root-url=core=https://doc.rust-lang.org", + "--extern-html-root-url=alloc=https://doc.rust-lang.org", + "--extern-html-root-url=std=https://doc.rust-lang.org", +] diff --git a/third_party/crates/syn-3.0.5/LICENSE-APACHE b/third_party/crates/anyhow-1.0.104/LICENSE-APACHE similarity index 100% rename from third_party/crates/syn-3.0.5/LICENSE-APACHE rename to third_party/crates/anyhow-1.0.104/LICENSE-APACHE diff --git a/third_party/crates/syn-3.0.5/LICENSE-MIT b/third_party/crates/anyhow-1.0.104/LICENSE-MIT similarity index 100% rename from third_party/crates/syn-3.0.5/LICENSE-MIT rename to third_party/crates/anyhow-1.0.104/LICENSE-MIT diff --git a/third_party/crates/anyhow-1.0.104/README.md b/third_party/crates/anyhow-1.0.104/README.md new file mode 100644 index 0000000..78225bb --- /dev/null +++ b/third_party/crates/anyhow-1.0.104/README.md @@ -0,0 +1,179 @@ +Anyhow ¯\\\_(°ペ)\_/¯ +========================== + +[github](https://github.com/dtolnay/anyhow) +[crates.io](https://crates.io/crates/anyhow) +[docs.rs](https://docs.rs/anyhow) +[build status](https://github.com/dtolnay/anyhow/actions?query=branch%3Amaster) + +This library provides [`anyhow::Error`][Error], a trait object based error type +for easy idiomatic error handling in Rust applications. + +[Error]: https://docs.rs/anyhow/1.0/anyhow/struct.Error.html + +```toml +[dependencies] +anyhow = "1.0" +``` + +
+ +## Details + +- Use `Result`, or equivalently `anyhow::Result`, as the + return type of any fallible function. + + Within the function, use `?` to easily propagate any error that implements the + [`std::error::Error`] trait. + + ```rust + use anyhow::Result; + + fn get_cluster_info() -> Result { + let config = std::fs::read_to_string("cluster.json")?; + let map: ClusterMap = serde_json::from_str(&config)?; + Ok(map) + } + ``` + + [`std::error::Error`]: https://doc.rust-lang.org/std/error/trait.Error.html + +- Attach context to help the person troubleshooting the error understand where + things went wrong. A low-level error like "No such file or directory" can be + annoying to debug without more context about what higher level step the + application was in the middle of. + + ```rust + use anyhow::{Context, Result}; + + fn main() -> Result<()> { + ... + it.detach().context("Failed to detach the important thing")?; + + let content = std::fs::read(path) + .with_context(|| format!("Failed to read instrs from {}", path))?; + ... + } + ``` + + ```console + Error: Failed to read instrs from ./path/to/instrs.json + + Caused by: + No such file or directory (os error 2) + ``` + +- Downcasting is supported and can be by value, by shared reference, or by + mutable reference as needed. + + ```rust + // If the error was caused by redaction, then return a + // tombstone instead of the content. + match root_cause.downcast_ref::() { + Some(DataStoreError::Censored(_)) => Ok(Poll::Ready(REDACTED_CONTENT)), + None => Err(error), + } + ``` + +- If using Rust ≥ 1.65, a backtrace is captured and printed with the error if + the underlying error type does not already provide its own. In order to see + backtraces, they must be enabled through the environment variables described + in [`std::backtrace`]: + + - If you want panics and errors to both have backtraces, set + `RUST_BACKTRACE=1`; + - If you want only errors to have backtraces, set `RUST_LIB_BACKTRACE=1`; + - If you want only panics to have backtraces, set `RUST_BACKTRACE=1` and + `RUST_LIB_BACKTRACE=0`. + + [`std::backtrace`]: https://doc.rust-lang.org/std/backtrace/index.html#environment-variables + +- Anyhow works with any error type that has an impl of `std::error::Error`, + including ones defined in your crate. We do not bundle a `derive(Error)` macro + but you can write the impls yourself or use a standalone macro like + [thiserror]. + + ```rust + use thiserror::Error; + + #[derive(Error, Debug)] + pub enum FormatError { + #[error("Invalid header (expected {expected:?}, got {found:?})")] + InvalidHeader { + expected: String, + found: String, + }, + #[error("Missing attribute: {0}")] + MissingAttribute(String), + } + ``` + +- One-off error messages can be constructed using the `anyhow!` macro, which + supports string interpolation and produces an `anyhow::Error`. + + ```rust + return Err(anyhow!("Missing attribute: {}", missing)); + ``` + + A `bail!` macro is provided as a shorthand for the same early return. + + ```rust + bail!("Missing attribute: {}", missing); + ``` + +
+ +## No-std support + +In no_std mode, almost all of the same API is available and works the same way. +To depend on Anyhow in no_std mode, disable our default enabled "std" feature in +Cargo.toml. A global allocator is required. + +```toml +[dependencies] +anyhow = { version = "1.0", default-features = false } +``` + +With versions of Rust older than 1.81, no_std mode may require an additional +`.map_err(Error::msg)` when working with a non-Anyhow error type inside a +function that returns Anyhow's error type, as the trait that `?`-based error +conversions are defined by is only available in std in those old versions. + +
+ +## Comparison to failure + +The `anyhow::Error` type works something like `failure::Error`, but unlike +failure ours is built around the standard library's `std::error::Error` trait +rather than a separate trait `failure::Fail`. The standard library has adopted +the necessary improvements for this to be possible as part of [RFC 2504]. + +[RFC 2504]: https://github.com/rust-lang/rfcs/blob/master/text/2504-fix-error.md + +
+ +## Comparison to thiserror + +Use Anyhow if you don't care what error type your functions return, you just +want it to be easy. This is common in application code. Use [thiserror] if you +are a library that wants to design your own dedicated error type(s) so that on +failures the caller gets exactly the information that you choose. + +[thiserror]: https://github.com/dtolnay/thiserror + +
+ +#### License + + +Licensed under either of Apache License, Version +2.0 or MIT license at your option. + + +
+ + +Unless you explicitly state otherwise, any contribution intentionally submitted +for inclusion in this crate by you, as defined in the Apache-2.0 license, shall +be dual licensed as above, without any additional terms or conditions. + diff --git a/third_party/crates/anyhow-1.0.104/build.rs b/third_party/crates/anyhow-1.0.104/build.rs new file mode 100644 index 0000000..f4fbc94 --- /dev/null +++ b/third_party/crates/anyhow-1.0.104/build.rs @@ -0,0 +1,194 @@ +#![allow(clippy::uninlined_format_args)] + +use std::env; +use std::ffi::OsString; +use std::fs; +use std::io::ErrorKind; +use std::iter; +use std::path::Path; +use std::process::{self, Command, Stdio}; +use std::str; + +fn main() { + if cfg!(feature = "std") { + println!("cargo:rerun-if-changed=src/nightly.rs"); + + let error_generic_member_access; + let consider_rustc_bootstrap; + if compile_probe(false) { + // This is a nightly or dev compiler, so it supports unstable + // features regardless of RUSTC_BOOTSTRAP. No need to rerun build + // script if RUSTC_BOOTSTRAP is changed. + error_generic_member_access = true; + consider_rustc_bootstrap = false; + } else if let Some(rustc_bootstrap) = env::var_os("RUSTC_BOOTSTRAP") { + if compile_probe(true) { + // This is a stable or beta compiler for which the user has set + // RUSTC_BOOTSTRAP to turn on unstable features. Rerun build + // script if they change it. + error_generic_member_access = true; + consider_rustc_bootstrap = true; + } else if rustc_bootstrap == "1" { + // This compiler does not support the generic member access API + // in the form that anyhow expects. No need to pay attention to + // RUSTC_BOOTSTRAP. + error_generic_member_access = false; + consider_rustc_bootstrap = false; + } else { + // This is a stable or beta compiler for which RUSTC_BOOTSTRAP + // is set to restrict the use of unstable features by this + // crate. + error_generic_member_access = false; + consider_rustc_bootstrap = true; + } + } else { + // Without RUSTC_BOOTSTRAP, this compiler does not support the + // generic member access API in the form that anyhow expects, but + // try again if the user turns on unstable features. + error_generic_member_access = false; + consider_rustc_bootstrap = true; + } + + if error_generic_member_access { + println!("cargo:rustc-cfg=error_generic_member_access"); + } + + if consider_rustc_bootstrap { + println!("cargo:rerun-if-env-changed=RUSTC_BOOTSTRAP"); + } + } + + let Some(rustc) = rustc_minor_version() else { + return; + }; + + if rustc >= 80 { + println!("cargo:rustc-check-cfg=cfg(anyhow_build_probe)"); + println!("cargo:rustc-check-cfg=cfg(anyhow_nightly_testing)"); + println!("cargo:rustc-check-cfg=cfg(anyhow_no_clippy_format_args)"); + println!("cargo:rustc-check-cfg=cfg(anyhow_no_core_error)"); + println!("cargo:rustc-check-cfg=cfg(error_generic_member_access)"); + } + + if rustc < 81 { + // core::error::Error + // https://blog.rust-lang.org/2024/09/05/Rust-1.81.0.html#coreerrorerror + println!("cargo:rustc-cfg=anyhow_no_core_error"); + } + + if rustc < 85 { + // #[clippy::format_args] + // https://doc.rust-lang.org/1.85.1/clippy/attribs.html#clippyformat_args + println!("cargo:rustc-cfg=anyhow_no_clippy_format_args"); + } +} + +fn compile_probe(rustc_bootstrap: bool) -> bool { + if env::var_os("RUSTC_STAGE").is_some() { + // We are running inside rustc bootstrap. This is a highly non-standard + // environment with issues such as: + // + // https://github.com/rust-lang/cargo/issues/11138 + // https://github.com/rust-lang/rust/issues/114839 + // + // Let's just not use nightly features here. + return false; + } + + let rustc = cargo_env_var("RUSTC"); + let out_dir = cargo_env_var("OUT_DIR"); + let out_subdir = Path::new(&out_dir).join("probe"); + let probefile = Path::new("src").join("nightly.rs"); + + if let Err(err) = fs::create_dir(&out_subdir) { + if err.kind() != ErrorKind::AlreadyExists { + eprintln!("Failed to create {}: {}", out_subdir.display(), err); + process::exit(1); + } + } + + let rustc_wrapper = env::var_os("RUSTC_WRAPPER").filter(|wrapper| !wrapper.is_empty()); + let rustc_workspace_wrapper = + env::var_os("RUSTC_WORKSPACE_WRAPPER").filter(|wrapper| !wrapper.is_empty()); + let mut rustc = rustc_wrapper + .into_iter() + .chain(rustc_workspace_wrapper) + .chain(iter::once(rustc)); + let mut cmd = Command::new(rustc.next().unwrap()); + cmd.args(rustc); + + if !rustc_bootstrap { + cmd.env_remove("RUSTC_BOOTSTRAP"); + } + + cmd.stderr(Stdio::null()) + .arg("--cfg=anyhow_build_probe") + .arg("--edition=2018") + .arg("--crate-name=anyhow") + .arg("--crate-type=lib") + .arg("--cap-lints=allow") + .arg("--emit=dep-info,metadata") + .arg("--out-dir") + .arg(&out_subdir) + .arg(probefile); + + if let Some(target) = env::var_os("TARGET") { + cmd.arg("--target").arg(target); + } + + // If Cargo wants to set RUSTFLAGS, use that. + if let Ok(rustflags) = env::var("CARGO_ENCODED_RUSTFLAGS") { + if !rustflags.is_empty() { + for arg in rustflags.split('\x1f') { + cmd.arg(arg); + } + } + } + + let success = match cmd.status() { + Ok(status) => status.success(), + Err(_) => false, + }; + + // Clean up to avoid leaving nondeterministic absolute paths in the dep-info + // file in OUT_DIR, which causes nonreproducible builds in build systems + // that treat the entire OUT_DIR as an artifact. + if let Err(err) = fs::remove_dir_all(&out_subdir) { + // libc::ENOTEMPTY + // Some filesystems (NFSv3) have timing issues under load where '.nfs*' + // dummy files can continue to get created for a short period after the + // probe command completes, breaking remove_dir_all. + // To be replaced with ErrorKind::DirectoryNotEmpty (Rust 1.83+). + const ENOTEMPTY: i32 = 39; + + if !(err.kind() == ErrorKind::NotFound + || (cfg!(target_os = "linux") && err.raw_os_error() == Some(ENOTEMPTY))) + { + eprintln!("Failed to clean up {}: {}", out_subdir.display(), err); + process::exit(1); + } + } + + success +} + +fn rustc_minor_version() -> Option { + let rustc = cargo_env_var("RUSTC"); + let output = Command::new(rustc).arg("--version").output().ok()?; + let version = str::from_utf8(&output.stdout).ok()?; + let mut pieces = version.split('.'); + if pieces.next() != Some("rustc 1") { + return None; + } + pieces.next()?.parse().ok() +} + +fn cargo_env_var(key: &str) -> OsString { + env::var_os(key).unwrap_or_else(|| { + eprintln!( + "Environment variable ${} is not set during execution of build script", + key, + ); + process::exit(1); + }) +} diff --git a/third_party/crates/anyhow-1.0.104/rust-toolchain.toml b/third_party/crates/anyhow-1.0.104/rust-toolchain.toml new file mode 100644 index 0000000..20fe888 --- /dev/null +++ b/third_party/crates/anyhow-1.0.104/rust-toolchain.toml @@ -0,0 +1,2 @@ +[toolchain] +components = ["rust-src"] diff --git a/third_party/crates/anyhow-1.0.104/src/backtrace.rs b/third_party/crates/anyhow-1.0.104/src/backtrace.rs new file mode 100644 index 0000000..d9ae520 --- /dev/null +++ b/third_party/crates/anyhow-1.0.104/src/backtrace.rs @@ -0,0 +1,48 @@ +#[cfg(feature = "std")] +pub(crate) use std::backtrace::Backtrace; + +#[cfg(not(feature = "std"))] +pub(crate) enum Backtrace {} + +#[cfg(feature = "std")] +macro_rules! backtrace { + () => { + Some(std::backtrace::Backtrace::capture()) + }; +} + +#[cfg(not(feature = "std"))] +macro_rules! backtrace { + () => { + None + }; +} + +#[cfg(error_generic_member_access)] +macro_rules! backtrace_if_absent { + ($err:expr) => { + match $crate::nightly::request_ref_backtrace($err as &dyn core::error::Error) { + Some(_) => None, + None => backtrace!(), + } + }; +} + +#[cfg(all(not(error_generic_member_access), feature = "std"))] +macro_rules! backtrace_if_absent { + ($err:expr) => { + backtrace!() + }; +} + +#[cfg(all(not(anyhow_no_core_error), not(feature = "std")))] +macro_rules! backtrace_if_absent { + ($err:expr) => { + None + }; +} + +fn _assert_send_sync() { + fn assert() {} + assert::(); +} diff --git a/third_party/crates/anyhow-1.0.104/src/chain.rs b/third_party/crates/anyhow-1.0.104/src/chain.rs new file mode 100644 index 0000000..e56bc66 --- /dev/null +++ b/third_party/crates/anyhow-1.0.104/src/chain.rs @@ -0,0 +1,102 @@ +use self::ChainState::*; +use crate::StdError; + +#[cfg(any(feature = "std", not(anyhow_no_core_error)))] +use alloc::vec::{self, Vec}; + +#[cfg(any(feature = "std", not(anyhow_no_core_error)))] +pub(crate) use crate::Chain; + +#[cfg(all(not(feature = "std"), anyhow_no_core_error))] +pub(crate) struct Chain<'a> { + state: ChainState<'a>, +} + +#[derive(Clone)] +pub(crate) enum ChainState<'a> { + Linked { + next: Option<&'a (dyn StdError + 'static)>, + }, + #[cfg(any(feature = "std", not(anyhow_no_core_error)))] + Buffered { + rest: vec::IntoIter<&'a (dyn StdError + 'static)>, + }, +} + +impl<'a> Chain<'a> { + #[cold] + pub fn new(head: &'a (dyn StdError + 'static)) -> Self { + Chain { + state: ChainState::Linked { next: Some(head) }, + } + } +} + +impl<'a> Iterator for Chain<'a> { + type Item = &'a (dyn StdError + 'static); + + fn next(&mut self) -> Option { + match &mut self.state { + Linked { next } => { + let error = (*next)?; + *next = error.source(); + Some(error) + } + #[cfg(any(feature = "std", not(anyhow_no_core_error)))] + Buffered { rest } => rest.next(), + } + } + + fn size_hint(&self) -> (usize, Option) { + let len = self.len(); + (len, Some(len)) + } +} + +#[cfg(any(feature = "std", not(anyhow_no_core_error)))] +impl DoubleEndedIterator for Chain<'_> { + fn next_back(&mut self) -> Option { + match &mut self.state { + Linked { mut next } => { + let mut rest = Vec::new(); + while let Some(cause) = next { + next = cause.source(); + rest.push(cause); + } + let mut rest = rest.into_iter(); + let last = rest.next_back(); + self.state = Buffered { rest }; + last + } + Buffered { rest } => rest.next_back(), + } + } +} + +impl ExactSizeIterator for Chain<'_> { + fn len(&self) -> usize { + match &self.state { + Linked { mut next } => { + let mut len = 0; + while let Some(cause) = next { + next = cause.source(); + len += 1; + } + len + } + #[cfg(any(feature = "std", not(anyhow_no_core_error)))] + Buffered { rest } => rest.len(), + } + } +} + +#[cfg(any(feature = "std", not(anyhow_no_core_error)))] +impl Default for Chain<'_> { + fn default() -> Self { + Chain { + state: ChainState::Buffered { + rest: Vec::new().into_iter(), + }, + } + } +} diff --git a/third_party/crates/anyhow-1.0.104/src/context.rs b/third_party/crates/anyhow-1.0.104/src/context.rs new file mode 100644 index 0000000..52e6ab6 --- /dev/null +++ b/third_party/crates/anyhow-1.0.104/src/context.rs @@ -0,0 +1,193 @@ +use crate::error::ContextError; +use crate::{Context, Error, StdError}; +use core::convert::Infallible; +use core::fmt::{self, Debug, Display, Write}; + +#[cfg(error_generic_member_access)] +use crate::nightly::{self, Request}; + +mod ext { + use super::*; + + pub trait StdError { + fn ext_context(self, context: C) -> Error + where + C: Display + Send + Sync + 'static; + } + + #[cfg(any(feature = "std", not(anyhow_no_core_error)))] + impl StdError for E + where + E: crate::StdError + Send + Sync + 'static, + { + fn ext_context(self, context: C) -> Error + where + C: Display + Send + Sync + 'static, + { + let backtrace = backtrace_if_absent!(&self); + Error::construct_from_context(context, self, backtrace) + } + } + + impl StdError for Error { + fn ext_context(self, context: C) -> Error + where + C: Display + Send + Sync + 'static, + { + self.context(context) + } + } +} + +impl Context for Result +where + E: ext::StdError + Send + Sync + 'static, +{ + fn context(self, context: C) -> Result + where + C: Display + Send + Sync + 'static, + { + // Not using map_err to save 2 useless frames off the captured backtrace + // in ext_context. + match self { + Ok(ok) => Ok(ok), + Err(error) => Err(error.ext_context(context)), + } + } + + fn with_context(self, context: F) -> Result + where + C: Display + Send + Sync + 'static, + F: FnOnce() -> C, + { + match self { + Ok(ok) => Ok(ok), + Err(error) => Err(error.ext_context(context())), + } + } +} + +/// ``` +/// # type T = (); +/// # +/// use anyhow::{Context, Result}; +/// +/// fn maybe_get() -> Option { +/// # const IGNORE: &str = stringify! { +/// ... +/// # }; +/// # unimplemented!() +/// } +/// +/// fn demo() -> Result<()> { +/// let t = maybe_get().context("there is no T")?; +/// # const IGNORE: &str = stringify! { +/// ... +/// # }; +/// # unimplemented!() +/// } +/// ``` +impl Context for Option { + fn context(self, context: C) -> Result + where + C: Display + Send + Sync + 'static, + { + // Not using ok_or_else to save 2 useless frames off the captured + // backtrace. + match self { + Some(ok) => Ok(ok), + None => Err(Error::construct_from_display(context, backtrace!())), + } + } + + fn with_context(self, context: F) -> Result + where + C: Display + Send + Sync + 'static, + F: FnOnce() -> C, + { + match self { + Some(ok) => Ok(ok), + None => Err(Error::construct_from_display(context(), backtrace!())), + } + } +} + +impl Debug for ContextError +where + C: Display, + E: Debug, +{ + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + f.debug_struct("Error") + .field("context", &Quoted(&self.context)) + .field("source", &self.error) + .finish() + } +} + +impl Display for ContextError +where + C: Display, +{ + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + Display::fmt(&self.context, f) + } +} + +impl StdError for ContextError +where + C: Display, + E: StdError + 'static, +{ + fn source(&self) -> Option<&(dyn StdError + 'static)> { + Some(&self.error) + } + + #[cfg(error_generic_member_access)] + fn provide<'a>(&'a self, request: &mut Request<'a>) { + nightly::provide(&self.error, request); + } +} + +impl StdError for ContextError +where + C: Display, +{ + fn source(&self) -> Option<&(dyn StdError + 'static)> { + Some(unsafe { crate::ErrorImpl::error(self.error.inner.by_ref()) }) + } + + #[cfg(error_generic_member_access)] + fn provide<'a>(&'a self, request: &mut Request<'a>) { + Error::provide(&self.error, request); + } +} + +struct Quoted(C); + +impl Debug for Quoted +where + C: Display, +{ + fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result { + formatter.write_char('"')?; + Quoted(&mut *formatter).write_fmt(format_args!("{}", self.0))?; + formatter.write_char('"')?; + Ok(()) + } +} + +impl Write for Quoted<&mut fmt::Formatter<'_>> { + fn write_str(&mut self, s: &str) -> fmt::Result { + Display::fmt(&s.escape_debug(), self.0) + } +} + +pub(crate) mod private { + use super::*; + + pub trait Sealed {} + + impl Sealed for Result where E: ext::StdError {} + impl Sealed for Option {} +} diff --git a/third_party/crates/anyhow-1.0.104/src/ensure.rs b/third_party/crates/anyhow-1.0.104/src/ensure.rs new file mode 100644 index 0000000..795757d --- /dev/null +++ b/third_party/crates/anyhow-1.0.104/src/ensure.rs @@ -0,0 +1,935 @@ +use crate::Error; +use alloc::string::String; +use core::fmt::{self, Debug, Write}; +use core::mem::MaybeUninit; +use core::ptr; +use core::slice; +use core::str; + +#[doc(hidden)] +pub trait BothDebug { + fn __dispatch_ensure(self, msg: &'static str) -> Error; +} + +impl BothDebug for (A, B) +where + A: Debug, + B: Debug, +{ + fn __dispatch_ensure(self, msg: &'static str) -> Error { + render(msg, &self.0, &self.1) + } +} + +#[doc(hidden)] +pub trait NotBothDebug { + fn __dispatch_ensure(self, msg: &'static str) -> Error; +} + +impl NotBothDebug for &(A, B) { + fn __dispatch_ensure(self, msg: &'static str) -> Error { + Error::msg(msg) + } +} + +struct Buf { + bytes: [MaybeUninit; 40], + written: usize, +} + +impl Buf { + fn new() -> Self { + Buf { + bytes: [MaybeUninit::uninit(); 40], + written: 0, + } + } + + fn as_str(&self) -> &str { + unsafe { + str::from_utf8_unchecked(slice::from_raw_parts( + self.bytes.as_ptr().cast::(), + self.written, + )) + } + } +} + +impl Write for Buf { + fn write_str(&mut self, s: &str) -> fmt::Result { + if s.bytes().any(|b| b == b' ' || b == b'\n') { + return Err(fmt::Error); + } + + let remaining = self.bytes.len() - self.written; + if s.len() > remaining { + return Err(fmt::Error); + } + + unsafe { + ptr::copy_nonoverlapping( + s.as_ptr(), + self.bytes.as_mut_ptr().add(self.written).cast::(), + s.len(), + ); + } + self.written += s.len(); + Ok(()) + } +} + +fn render(msg: &'static str, lhs: &dyn Debug, rhs: &dyn Debug) -> Error { + let mut lhs_buf = Buf::new(); + if fmt::write(&mut lhs_buf, format_args!("{:?}", lhs)).is_ok() { + let mut rhs_buf = Buf::new(); + if fmt::write(&mut rhs_buf, format_args!("{:?}", rhs)).is_ok() { + let lhs_str = lhs_buf.as_str(); + let rhs_str = rhs_buf.as_str(); + // "{msg} ({lhs} vs {rhs})" + let len = msg.len() + 2 + lhs_str.len() + 4 + rhs_str.len() + 1; + let mut string = String::with_capacity(len); + string.push_str(msg); + string.push_str(" ("); + string.push_str(lhs_str); + string.push_str(" vs "); + string.push_str(rhs_str); + string.push(')'); + return Error::msg(string); + } + } + Error::msg(msg) +} + +#[doc(hidden)] +#[macro_export] +macro_rules! __parse_ensure { + (atom () $bail:tt $fuel:tt {($($rhs:tt)+) ($($lhs:tt)+) $op:tt} $dup:tt $(,)?) => { + $crate::__fancy_ensure!($($lhs)+, $op, $($rhs)+) + }; + + // low precedence control flow constructs + + (0 $stack:tt ($($bail:tt)*) $fuel:tt $parse:tt $dup:tt return $($rest:tt)*) => { + $crate::__fallback_ensure!($($bail)*) + }; + + (0 $stack:tt ($($bail:tt)*) $fuel:tt $parse:tt $dup:tt break $($rest:tt)*) => { + $crate::__fallback_ensure!($($bail)*) + }; + + (0 $stack:tt ($($bail:tt)*) $fuel:tt $parse:tt $dup:tt continue $($rest:tt)*) => { + $crate::__fallback_ensure!($($bail)*) + }; + + (0 $stack:tt ($($bail:tt)*) $fuel:tt $parse:tt $dup:tt yield $($rest:tt)*) => { + $crate::__fallback_ensure!($($bail)*) + }; + + (0 $stack:tt ($($bail:tt)*) $fuel:tt $parse:tt $dup:tt move $($rest:tt)*) => { + $crate::__fallback_ensure!($($bail)*) + }; + + // unary operators + + (0 $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($deref:tt $($dup:tt)*) * $($rest:tt)*) => { + $crate::__parse_ensure!(0 $stack $bail ($($fuel)*) {($($buf)* $deref) $($parse)*} ($($rest)*) $($rest)*) + }; + + (0 $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($not:tt $($dup:tt)*) ! $($rest:tt)*) => { + $crate::__parse_ensure!(0 $stack $bail ($($fuel)*) {($($buf)* $not) $($parse)*} ($($rest)*) $($rest)*) + }; + + (0 $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($neg:tt $($dup:tt)*) - $($rest:tt)*) => { + $crate::__parse_ensure!(0 $stack $bail ($($fuel)*) {($($buf)* $neg) $($parse)*} ($($rest)*) $($rest)*) + }; + + (0 $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($let:tt $($dup:tt)*) let $($rest:tt)*) => { + $crate::__parse_ensure!(pat $stack $bail ($($fuel)*) {($($buf)* $let) $($parse)*} ($($rest)*) $($rest)*) + }; + + (0 $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($lifetime:tt $colon:tt $($dup:tt)*) $label:lifetime : $($rest:tt)*) => { + $crate::__parse_ensure!(0 $stack $bail ($($fuel)*) {($($buf)* $lifetime $colon) $($parse)*} ($($rest)*) $($rest)*) + }; + + (0 $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($and:tt $mut:tt $($dup:tt)*) &mut $($rest:tt)*) => { + $crate::__parse_ensure!(0 $stack $bail ($($fuel)*) {($($buf)* $and $mut) $($parse)*} ($($rest)*) $($rest)*) + }; + + (0 $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($and:tt $raw:tt $mut:tt $($dup:tt)*) &raw mut $($rest:tt)*) => { + $crate::__parse_ensure!(0 $stack $bail ($($fuel)*) {($($buf)* $and $raw $mut) $($parse)*} ($($rest)*) $($rest)*) + }; + + (0 $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($and:tt $raw:tt $const:tt $($dup:tt)*) &raw const $($rest:tt)*) => { + $crate::__parse_ensure!(0 $stack $bail ($($fuel)*) {($($buf)* $and $raw $const) $($parse)*} ($($rest)*) $($rest)*) + }; + + (0 $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($and:tt $($dup:tt)*) & $($rest:tt)*) => { + $crate::__parse_ensure!(0 $stack $bail ($($fuel)*) {($($buf)* $and) $($parse)*} ($($rest)*) $($rest)*) + }; + + (0 $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($andand:tt $mut:tt $($dup:tt)*) &&mut $($rest:tt)*) => { + $crate::__parse_ensure!(0 $stack $bail ($($fuel)*) {($($buf)* $andand $mut) $($parse)*} ($($rest)*) $($rest)*) + }; + + (0 $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($andand:tt $raw:tt $mut:tt $($dup:tt)*) &&raw mut $($rest:tt)*) => { + $crate::__parse_ensure!(0 $stack $bail ($($fuel)*) {($($buf)* $andand $raw $mut) $($parse)*} ($($rest)*) $($rest)*) + }; + + (0 $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($andand:tt $raw:tt $const:tt $($dup:tt)*) &&raw const $($rest:tt)*) => { + $crate::__parse_ensure!(0 $stack $bail ($($fuel)*) {($($buf)* $andand $raw $const) $($parse)*} ($($rest)*) $($rest)*) + }; + + (0 $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($andand:tt $($dup:tt)*) && $($rest:tt)*) => { + $crate::__parse_ensure!(0 $stack $bail ($($fuel)*) {($($buf)* $andand) $($parse)*} ($($rest)*) $($rest)*) + }; + + // control flow constructs + + (0 $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($if:tt $($dup:tt)*) if $($rest:tt)*) => { + $crate::__parse_ensure!(0 (cond $stack) $bail ($($fuel)*) {($($buf)* $if) $($parse)*} ($($rest)*) $($rest)*) + }; + + (0 $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($match:tt $($dup:tt)*) match $($rest:tt)*) => { + $crate::__parse_ensure!(0 (cond $stack) $bail ($($fuel)*) {($($buf)* $match) $($parse)*} ($($rest)*) $($rest)*) + }; + + (0 $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($while:tt $($dup:tt)*) while $($rest:tt)*) => { + $crate::__parse_ensure!(0 (cond $stack) $bail ($($fuel)*) {($($buf)* $while) $($parse)*} ($($rest)*) $($rest)*) + }; + + (0 $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($for:tt $($dup:tt)*) for $($rest:tt)*) => { + $crate::__parse_ensure!(pat (cond $stack) $bail ($($fuel)*) {($($buf)* $for) $($parse)*} ($($rest)*) $($rest)*) + }; + + (atom (cond $stack:tt) $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($brace:tt $($dup:tt)*) {$($block:tt)*} $($rest:tt)*) => { + $crate::__parse_ensure!(cond $stack $bail ($($fuel)*) {($($buf)* $brace) $($parse)*} ($($rest)*) $($rest)*) + }; + + (cond $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($else:tt $if:tt $($dup:tt)*) else if $($rest:tt)*) => { + $crate::__parse_ensure!(0 (cond $stack) $bail ($($fuel)*) {($($buf)* $else $if) $($parse)*} ($($rest)*) $($rest)*) + }; + + (cond $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($else:tt $brace:tt $($dup:tt)*) else {$($block:tt)*} $($rest:tt)*) => { + $crate::__parse_ensure!(atom $stack $bail ($($fuel)*) {($($buf)* $else $brace) $($parse)*} ($($rest)*) $($rest)*) + }; + + (cond $stack:tt $bail:tt (~$($fuel:tt)*) $parse:tt $dup:tt $($rest:tt)*) => { + $crate::__parse_ensure!(atom $stack $bail ($($fuel)*) $parse $dup $($rest)*) + }; + + // atomic expressions + + (0 $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($paren:tt $($dup:tt)*) ($($content:tt)*) $($rest:tt)*) => { + $crate::__parse_ensure!(atom $stack $bail ($($fuel)*) {($($buf)* $paren) $($parse)*} ($($rest)*) $($rest)*) + }; + + (0 $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($bracket:tt $($dup:tt)*) [$($array:tt)*] $($rest:tt)*) => { + $crate::__parse_ensure!(atom $stack $bail ($($fuel)*) {($($buf)* $bracket) $($parse)*} ($($rest)*) $($rest)*) + }; + + (0 $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($brace:tt $($dup:tt)*) {$($block:tt)*} $($rest:tt)*) => { + $crate::__parse_ensure!(atom $stack $bail ($($fuel)*) {($($buf)* $brace) $($parse)*} ($($rest)*) $($rest)*) + }; + + (0 $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($loop:tt $block:tt $($dup:tt)*) loop {$($body:tt)*} $($rest:tt)*) => { + $crate::__parse_ensure!(atom $stack $bail ($($fuel)*) {($($buf)* $loop $block) $($parse)*} ($($rest)*) $($rest)*) + }; + + (0 $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($async:tt $block:tt $($dup:tt)*) async {$($body:tt)*} $($rest:tt)*) => { + $crate::__parse_ensure!(atom $stack $bail ($($fuel)*) {($($buf)* $async $block) $($parse)*} ($($rest)*) $($rest)*) + }; + + (0 $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($async:tt $move:tt $block:tt $($dup:tt)*) async move {$($body:tt)*} $($rest:tt)*) => { + $crate::__parse_ensure!(atom $stack $bail ($($fuel)*) {($($buf)* $async $move $block) $($parse)*} ($($rest)*) $($rest)*) + }; + + (0 $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($unsafe:tt $block:tt $($dup:tt)*) unsafe {$($body:tt)*} $($rest:tt)*) => { + $crate::__parse_ensure!(atom $stack $bail ($($fuel)*) {($($buf)* $unsafe $block) $($parse)*} ($($rest)*) $($rest)*) + }; + + (0 $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($const:tt $block:tt $($dup:tt)*) const {$($body:tt)*} $($rest:tt)*) => { + // TODO: this is mostly useless due to https://github.com/rust-lang/rust/issues/86730 + $crate::__parse_ensure!(atom $stack $bail ($($fuel)*) {($($buf)* $const $block) $($parse)*} ($($rest)*) $($rest)*) + }; + + (0 $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($literal:tt $($dup:tt)*) $lit:literal $($rest:tt)*) => { + $crate::__parse_ensure!(atom $stack $bail ($($fuel)*) {($($buf)* $literal) $($parse)*} ($($rest)*) $($rest)*) + }; + + // path expressions + + (0 $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($colons:tt $ident:tt $($dup:tt)*) :: $i:ident $($rest:tt)*) => { + $crate::__parse_ensure!(epath (atom $stack) $bail ($($fuel)*) {($($buf)* $colons $ident) $($parse)*} ($($rest)*) $($rest)*) + }; + + (0 $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($ident:tt $($dup:tt)*) $i:ident $($rest:tt)*) => { + $crate::__parse_ensure!(epath (atom $stack) $bail ($($fuel)*) {($($buf)* $ident) $($parse)*} ($($rest)*) $($rest)*) + }; + + (0 $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($langle:tt $($dup:tt)*) < $($rest:tt)*) => { + $crate::__parse_ensure!(type (qpath (epath (atom $stack))) $bail ($($fuel)*) {($($buf)* $langle) $($parse)*} ($($rest)*) $($rest)*) + }; + + (epath $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($colons:tt $langle:tt $($dup:tt)*) :: < $($rest:tt)*) => { + $crate::__parse_ensure!(generic (epath $stack) $bail ($($fuel)*) {($($buf)* $colons $langle) $($parse)*} ($($rest)*) $($rest)*) + }; + + (epath $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($colons:tt $langle:tt $($dup:tt)*) :: << $($rest:tt)*) => { + $crate::__parse_ensure!(type (qpath (tpath (arglist (epath $stack)))) $bail ($($fuel)*) {($($buf)* $colons $langle) $($parse)*} ($($rest)*) $($rest)*) + }; + + (epath $stack:tt ($($bail:tt)*) (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} $dup:tt :: <- - $($rest:tt)*) => { + $crate::__fallback_ensure!($($bail)*) + }; + + (epath $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($colons:tt $larrow:tt $($dup:tt)*) :: <- $lit:literal $($rest:tt)*) => { + $crate::__parse_ensure!(generic (epath $stack) $bail ($($fuel)*) {($($buf)* $colons $larrow) $($parse)*} ($($dup)*) $($dup)*) + }; + + (epath $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($colons:tt $ident:tt $($dup:tt)*) :: $i:ident $($rest:tt)*) => { + $crate::__parse_ensure!(epath $stack $bail ($($fuel)*) {($($buf)* $colons $ident) $($parse)*} ($($rest)*) $($rest)*) + }; + + (epath ($pop:ident $stack:tt) $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($bang:tt $args:tt $($dup:tt)*) ! ($($mac:tt)*) $($rest:tt)*) => { + $crate::__parse_ensure!($pop $stack $bail ($($fuel)*) {($($buf)* $bang $args) $($parse)*} ($($rest)*) $($rest)*) + }; + + (epath ($pop:ident $stack:tt) $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($bang:tt $args:tt $($dup:tt)*) ! [$($mac:tt)*] $($rest:tt)*) => { + $crate::__parse_ensure!($pop $stack $bail ($($fuel)*) {($($buf)* $bang $args) $($parse)*} ($($rest)*) $($rest)*) + }; + + (epath ($pop:ident $stack:tt) $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($bang:tt $args:tt $($dup:tt)*) ! {$($mac:tt)*} $($rest:tt)*) => { + $crate::__parse_ensure!($pop $stack $bail ($($fuel)*) {($($buf)* $bang $args) $($parse)*} ($($rest)*) $($rest)*) + }; + + (epath (split ($pop:ident $stack:tt)) $bail:tt (~$($fuel:tt)*) $parse:tt $dup:tt $($rest:tt)*) => { + $crate::__parse_ensure!($pop (split $stack) $bail ($($fuel)*) $parse $dup $($rest)*) + }; + + (epath ($pop:ident $stack:tt) $bail:tt (~$($fuel:tt)*) $parse:tt $dup:tt $($rest:tt)*) => { + $crate::__parse_ensure!($pop $stack $bail ($($fuel)*) $parse $dup $($rest)*) + }; + + // trailer expressions + + (atom $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($paren:tt $($dup:tt)*) ($($call:tt)*) $($rest:tt)*) => { + $crate::__parse_ensure!(atom $stack $bail ($($fuel)*) {($($buf)* $paren) $($parse)*} ($($rest)*) $($rest)*) + }; + + (atom $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($bracket:tt $($dup:tt)*) [$($index:tt)*] $($rest:tt)*) => { + $crate::__parse_ensure!(atom $stack $bail ($($fuel)*) {($($buf)* $bracket) $($parse)*} ($($rest)*) $($rest)*) + }; + + (atom $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($brace:tt $($dup:tt)*) {$($init:tt)*} $($rest:tt)*) => { + $crate::__parse_ensure!(atom $stack $bail ($($fuel)*) {($($buf)* $brace) $($parse)*} ($($rest)*) $($rest)*) + }; + + (atom $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($question:tt $($dup:tt)*) ? $($rest:tt)*) => { + $crate::__parse_ensure!(atom $stack $bail ($($fuel)*) {($($buf)* $question) $($parse)*} ($($rest)*) $($rest)*) + }; + + (atom $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($dot:tt $ident:tt $colons:tt $langle:tt $($dup:tt)*) . $i:ident :: < $($rest:tt)*) => { + $crate::__parse_ensure!(generic (atom $stack) $bail ($($fuel)*) {($($buf)* $dot $ident $colons $langle) $($parse)*} ($($rest)*) $($rest)*) + }; + + (atom $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($dot:tt $ident:tt $colons:tt $langle:tt $($dup:tt)*) . $i:ident :: << $($rest:tt)*) => { + $crate::__parse_ensure!(type (qpath (tpath (arglist (atom $stack)))) $bail ($($fuel)*) {($($buf)* $dot $ident $colons $langle) $($parse)*} ($($rest)*) $($rest)*) + }; + + (atom $stack:tt ($($bail:tt)*) (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} $dup:tt . $i:ident :: <- - $($rest:tt)*) => { + $crate::__fallback_ensure!($($bail)*) + }; + + (atom $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($dot:tt $ident:tt $colons:tt $larrow:tt $($dup:tt)*) . $i:ident :: <- $lit:literal $($rest:tt)*) => { + $crate::__parse_ensure!(generic (atom $stack) $bail ($($fuel)*) {($($buf)* $dot $ident $colons $larrow) $($parse)*} ($($dup)*) $($dup)*) + }; + + (atom $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($dot:tt $field:tt $($dup:tt)*) . $i:ident $($rest:tt)*) => { + $crate::__parse_ensure!(atom $stack $bail ($($fuel)*) {($($buf)* $dot $field) $($parse)*} ($($rest)*) $($rest)*) + }; + + (atom $stack:tt ($($bail:tt)*) (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} $dup:tt . - $($rest:tt)*) => { + $crate::__fallback_ensure!($($bail)*) + }; + + (atom $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($dot:tt $index:tt $($dup:tt)*) . $lit:literal $($rest:tt)*) => { + $crate::__parse_ensure!(atom $stack $bail ($($fuel)*) {($($buf)* $dot $index) $($parse)*} ($($rest)*) $($rest)*) + }; + + (atom $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($as:tt $($dup:tt)*) as $($rest:tt)*) => { + $crate::__parse_ensure!(type (atom $stack) $bail ($($fuel)*) {($($buf)* $as) $($parse)*} ($($rest)*) $($rest)*) + }; + + // types + + (type ($pop:ident $stack:tt) $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($bracket:tt $($dup:tt)*) [$($content:tt)*] $($rest:tt)*) => { + $crate::__parse_ensure!($pop $stack $bail ($($fuel)*) {($($buf)* $bracket) $($parse)*} ($($rest)*) $($rest)*) + }; + + (type ($pop:ident $stack:tt) $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($paren:tt $($dup:tt)*) ($($content:tt)*) $($rest:tt)*) => { + $crate::__parse_ensure!($pop $stack $bail ($($fuel)*) {($($buf)* $paren) $($parse)*} ($($rest)*) $($rest)*) + }; + + (type $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($star:tt $const:tt $($dup:tt)*) *const $($rest:tt)*) => { + $crate::__parse_ensure!(type $stack $bail ($($fuel)*) {($($buf)* $star $const) $($parse)*} ($($rest)*) $($rest)*) + }; + + (type $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($star:tt $mut:tt $($dup:tt)*) *mut $($rest:tt)*) => { + $crate::__parse_ensure!(type $stack $bail ($($fuel)*) {($($buf)* $star $mut) $($parse)*} ($($rest)*) $($rest)*) + }; + + (type $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($and:tt $lifetime:tt $mut:tt $($dup:tt)*) & $l:lifetime mut $($rest:tt)*) => { + $crate::__parse_ensure!(type $stack $bail ($($fuel)*) {($($buf)* $and $lifetime $mut) $($parse)*} ($($rest)*) $($rest)*) + }; + + (type $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($and:tt $mut:tt $($dup:tt)*) & mut $($rest:tt)*) => { + $crate::__parse_ensure!(type $stack $bail ($($fuel)*) {($($buf)* $and $mut) $($parse)*} ($($rest)*) $($rest)*) + }; + + (type $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($and:tt $lifetime:tt $($dup:tt)*) & $l:lifetime $($rest:tt)*) => { + $crate::__parse_ensure!(type $stack $bail ($($fuel)*) {($($buf)* $and $lifetime) $($parse)*} ($($rest)*) $($rest)*) + }; + + (type $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($and:tt $($dup:tt)*) & $($rest:tt)*) => { + $crate::__parse_ensure!(type $stack $bail ($($fuel)*) {($($buf)* $and) $($parse)*} ($($rest)*) $($rest)*) + }; + + (type $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($and:tt $lifetime:tt $mut:tt $($dup:tt)*) && $l:lifetime mut $($rest:tt)*) => { + $crate::__parse_ensure!(type $stack $bail ($($fuel)*) {($($buf)* $and $lifetime $mut) $($parse)*} ($($rest)*) $($rest)*) + }; + + (type $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($and:tt $mut:tt $($dup:tt)*) && mut $($rest:tt)*) => { + $crate::__parse_ensure!(type $stack $bail ($($fuel)*) {($($buf)* $and $mut) $($parse)*} ($($rest)*) $($rest)*) + }; + + (type $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($and:tt $lifetime:tt $($dup:tt)*) && $l:lifetime $($rest:tt)*) => { + $crate::__parse_ensure!(type $stack $bail ($($fuel)*) {($($buf)* $and $lifetime) $($parse)*} ($($rest)*) $($rest)*) + }; + + (type $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($and:tt $($dup:tt)*) && $($rest:tt)*) => { + $crate::__parse_ensure!(type $stack $bail ($($fuel)*) {($($buf)* $and) $($parse)*} ($($rest)*) $($rest)*) + }; + + (type $stack:tt ($($bail:tt)*) (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} $dup:tt unsafe extern - $($rest:tt)*) => { + $crate::__fallback_ensure!($($bail)*) + }; + + (type $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($unsafe:tt $(extern $($abi:literal)?)? fn $($dup:tt)*) unsafe $($rest:tt)*) => { + $crate::__parse_ensure!(type $stack $bail ($($fuel)*) {($($buf)* $unsafe) $($parse)*} ($($rest)*) $($rest)*) + }; + + (type $stack:tt ($($bail:tt)*) (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} $dup:tt extern - $($rest:tt)*) => { + $crate::__fallback_ensure!($($bail)*) + }; + + (type $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($extern:tt $abi:tt fn $($dup:tt)*) extern $lit:literal $($rest:tt)*) => { + $crate::__parse_ensure!(type $stack $bail ($($fuel)*) {($($buf)* $extern $abi) $($parse)*} ($($rest)*) $($rest)*) + }; + + (type $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($extern:tt fn $($dup:tt)*) extern $($rest:tt)*) => { + $crate::__parse_ensure!(type $stack $bail ($($fuel)*) {($($buf)* $extern) $($parse)*} ($($rest)*) $($rest)*) + }; + + (type $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($fn:tt $paren:tt $arrow:tt $($dup:tt)*) fn ($($args:tt)*) -> $($rest:tt)*) => { + $crate::__parse_ensure!(type $stack $bail ($($fuel)*) {($($buf)* $fn $paren $arrow) $($parse)*} ($($rest)*) $($rest)*) + }; + + (type ($pop:ident $stack:tt) $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($fn:tt $paren:tt $($dup:tt)*) fn ($($args:tt)*) $($rest:tt)*) => { + $crate::__parse_ensure!($pop $stack $bail ($($fuel)*) {($($buf)* $fn $paren) $($parse)*} ($($rest)*) $($rest)*) + }; + + (type $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($impl:tt $($dup:tt)*) impl $($rest:tt)*) => { + $crate::__parse_ensure!(type $stack $bail ($($fuel)*) {($($buf)* $impl) $($parse)*} ($($rest)*) $($rest)*) + }; + + (type $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($dyn:tt $($dup:tt)*) dyn $($rest:tt)*) => { + $crate::__parse_ensure!(type $stack $bail ($($fuel)*) {($($buf)* $dyn) $($parse)*} ($($rest)*) $($rest)*) + }; + + (type ($pop:ident $stack:tt) $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($wild:tt $($dup:tt)*) _ $($rest:tt)*) => { + $crate::__parse_ensure!($pop $stack $bail ($($fuel)*) {($($buf)* $wild) $($parse)*} ($($rest)*) $($rest)*) + }; + + (type ($pop:ident $stack:tt) $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($never:tt $($dup:tt)*) ! $($rest:tt)*) => { + $crate::__parse_ensure!($pop $stack $bail ($($fuel)*) {($($buf)* $never) $($parse)*} ($($rest)*) $($rest)*) + }; + + (type $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($for:tt $langle:tt $($dup:tt)*) for < $($rest:tt)*) => { + $crate::__parse_ensure!(generic (type $stack) $bail ($($fuel)*) {($($buf)* $for $langle) $($parse)*} ($($rest)*) $($rest)*) + }; + + // path types + + (type $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($colons:tt $ident:tt $($dup:tt)*) :: $i:ident $($rest:tt)*) => { + $crate::__parse_ensure!(tpath $stack $bail ($($fuel)*) {($($buf)* $colons $ident) $($parse)*} ($($rest)*) $($rest)*) + }; + + (type $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($ident:tt $($dup:tt)*) $i:ident $($rest:tt)*) => { + $crate::__parse_ensure!(tpath $stack $bail ($($fuel)*) {($($buf)* $ident) $($parse)*} ($($rest)*) $($rest)*) + }; + + (type $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($langle:tt $($dup:tt)*) < $($rest:tt)*) => { + $crate::__parse_ensure!(type (qpath (tpath $stack)) $bail ($($fuel)*) {($($buf)* $langle) $($parse)*} ($($rest)*) $($rest)*) + }; + + (tpath $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($langle:tt $($dup:tt)*) < $($rest:tt)*) => { + $crate::__parse_ensure!(generic (tpath $stack) $bail ($($fuel)*) {($($buf)* $langle) $($parse)*} ($($rest)*) $($rest)*) + }; + + (tpath $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($langle:tt $($dup:tt)*) << $($rest:tt)*) => { + $crate::__parse_ensure!(type (qpath (tpath (arglist (tpath $stack)))) $bail ($($fuel)*) {($($buf)* $langle) $($parse)*} ($($rest)*) $($rest)*) + }; + + (tpath $stack:tt ($($bail:tt)*) (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} $dup:tt <- - $($rest:tt)*) => { + $crate::__fallback_ensure!($($bail)*) + }; + + (tpath $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($larrow:tt $($dup:tt)*) <- $lit:literal $($rest:tt)*) => { + $crate::__parse_ensure!(generic (tpath $stack) $bail ($($fuel)*) {($($buf)* $larrow) $($parse)*} ($($dup)*) $($dup)*) + }; + + (tpath $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($colons:tt $langle:tt $($dup:tt)*) :: < $($rest:tt)*) => { + $crate::__parse_ensure!(generic (tpath $stack) $bail ($($fuel)*) {($($buf)* $colons $langle) $($parse)*} ($($rest)*) $($rest)*) + }; + + (tpath $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($colons:tt $langle:tt $($dup:tt)*) :: << $($rest:tt)*) => { + $crate::__parse_ensure!(type (qpath (tpath (arglist (tpath $stack)))) $bail ($($fuel)*) {($($buf)* $colons $langle) $($parse)*} ($($rest)*) $($rest)*) + }; + + (tpath $stack:tt ($($bail:tt)*) (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} $dup:tt :: <- - $($rest:tt)*) => { + $crate::__fallback_ensure!($($bail)*) + }; + + (tpath $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($colons:tt $larrow:tt $($dup:tt)*) :: <- $lit:literal $($rest:tt)*) => { + $crate::__parse_ensure!(generic (tpath $stack) $bail ($($fuel)*) {($($buf)* $colons $larrow) $($parse)*} ($($dup)*) $($dup)*) + }; + + (tpath $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($colons:tt $ident:tt $($dup:tt)*) :: $i:ident $($rest:tt)*) => { + $crate::__parse_ensure!(tpath $stack $bail ($($fuel)*) {($($buf)* $colons $ident) $($parse)*} ($($rest)*) $($rest)*) + }; + + (tpath $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($paren:tt $arrow:tt $($dup:tt)*) ($($args:tt)*) -> $($rest:tt)*) => { + $crate::__parse_ensure!(type $stack $bail ($($fuel)*) {($($buf)* $paren $arrow) $($parse)*} ($($rest)*) $($rest)*) + }; + + (tpath $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($paren:tt $($dup:tt)*) ($($args:tt)*) $($rest:tt)*) => { + $crate::__parse_ensure!(object $stack $bail ($($fuel)*) {($($buf)* $paren) $($parse)*} ($($rest)*) $($rest)*) + }; + + (tpath $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($colons:tt $paren:tt $arrow:tt $($dup:tt)*) :: ($($args:tt)*) -> $($rest:tt)*) => { + $crate::__parse_ensure!(type $stack $bail ($($fuel)*) {($($buf)* $colons $paren $arrow) $($parse)*} ($($rest)*) $($rest)*) + }; + + (tpath $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($colons:tt $paren:tt $($dup:tt)*) :: ($($args:tt)*) $($rest:tt)*) => { + $crate::__parse_ensure!(object $stack $bail ($($fuel)*) {($($buf)* $colons $paren) $($parse)*} ($($rest)*) $($rest)*) + }; + + (tpath ($pop:ident $stack:tt) $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($bang:tt $args:tt $($dup:tt)*) ! ($($mac:tt)*) $($rest:tt)*) => { + $crate::__parse_ensure!($pop $stack $bail ($($fuel)*) {($($buf)* $bang $args) $($parse)*} ($($rest)*) $($rest)*) + }; + + (tpath ($pop:ident $stack:tt) $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($bang:tt $args:tt $($dup:tt)*) ! [$($mac:tt)*] $($rest:tt)*) => { + $crate::__parse_ensure!($pop $stack $bail ($($fuel)*) {($($buf)* $bang $args) $($parse)*} ($($rest)*) $($rest)*) + }; + + (tpath ($pop:ident $stack:tt) $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($bang:tt $args:tt $($dup:tt)*) ! {$($mac:tt)*} $($rest:tt)*) => { + $crate::__parse_ensure!($pop $stack $bail ($($fuel)*) {($($buf)* $bang $args) $($parse)*} ($($rest)*) $($rest)*) + }; + + (tpath $stack:tt $bail:tt (~$($fuel:tt)*) $parse:tt $dup:tt $($rest:tt)*) => { + $crate::__parse_ensure!(object $stack $bail ($($fuel)*) $parse $dup $($rest)*) + }; + + // qualified paths + + (qpath (split ($pop:ident $stack:tt)) $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($rangle:tt $colons:tt $ident:tt $($dup:tt)*) >> :: $i:ident $($rest:tt)*) => { + $crate::__parse_ensure!($pop $stack $bail ($($fuel)*) {($($buf)* $rangle $colons $ident) $($parse)*} ($($rest)*) $($rest)*) + }; + + (qpath ($pop:ident $stack:tt) $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($rangle:tt $colons:tt $ident:tt $($dup:tt)*) > :: $i:ident $($rest:tt)*) => { + $crate::__parse_ensure!($pop $stack $bail ($($fuel)*) {($($buf)* $rangle $colons $ident) $($parse)*} ($($rest)*) $($rest)*) + }; + + (qpath $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($as:tt $($dup:tt)*) as $($rest:tt)*) => { + $crate::__parse_ensure!(type (qpath $stack) $bail ($($fuel)*) {($($buf)* $as) $($parse)*} ($($rest)*) $($rest)*) + }; + + // trait objects + + (object (arglist $stack:tt) $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($plus:tt $colons:tt $ident:tt $($dup:tt)*) + :: $i:ident $($rest:tt)*) => { + $crate::__parse_ensure!(tpath (arglist $stack) $bail ($($fuel)*) {($($buf)* $plus $colons $ident) $($parse)*} ($($rest)*) $($rest)*) + }; + + (object (arglist $stack:tt) $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($plus:tt $ident:tt $($dup:tt)*) + $i:ident $($rest:tt)*) => { + $crate::__parse_ensure!(tpath (arglist $stack) $bail ($($fuel)*) {($($buf)* $plus $ident) $($parse)*} ($($rest)*) $($rest)*) + }; + + (object (split ($pop:ident $stack:tt)) $bail:tt (~$($fuel:tt)*) $parse:tt $dup:tt $($rest:tt)*) => { + $crate::__parse_ensure!($pop (split $stack) $bail ($($fuel)*) $parse $dup $($rest)*) + }; + + (object ($pop:ident $stack:tt) $bail:tt (~$($fuel:tt)*) $parse:tt $dup:tt $($rest:tt)*) => { + $crate::__parse_ensure!($pop $stack $bail ($($fuel)*) $parse $dup $($rest)*) + }; + + // angle bracketed generic arguments + + (generic (split ($pop:ident $stack:tt)) $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($rangle:tt $($dup:tt)*) >> $($rest:tt)*) => { + $crate::__parse_ensure!($pop $stack $bail ($($fuel)*) {($($buf)* $rangle) $($parse)*} ($($rest)*) $($rest)*) + }; + + (generic ($pop:ident $stack:tt) $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($rangle:tt $($dup:tt)*) > $($rest:tt)*) => { + $crate::__parse_ensure!($pop $stack $bail ($($fuel)*) {($($buf)* $rangle) $($parse)*} ($($rest)*) $($rest)*) + }; + + (generic ($pop:ident $stack:tt) $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($rangle:tt $($dup:tt)*) >> $($rest:tt)*) => { + $crate::__parse_ensure!($pop (split $stack) $bail ($($fuel)*) {($($buf)*) $($parse)*} ($rangle $($rest)*) $rangle $($rest)*) + }; + + (generic $stack:tt ($($bail:tt)*) (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} $dup:tt - - $($rest:tt)*) => { + $crate::__fallback_ensure!($($bail)*) + }; + + (generic $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($neg:tt $($dup:tt)*) - $lit:literal $($rest:tt)*) => { + $crate::__parse_ensure!(generic $stack $bail ($($fuel)*) {($($buf)* $neg) $($parse)*} ($($dup)*) $($dup)*) + }; + + (generic $stack:tt ($($bail:tt)*) (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} $dup:tt - $($rest:tt)*) => { + $crate::__fallback_ensure!($($bail)*) + }; + + (generic $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($literal:tt $($dup:tt)*) $lit:literal $($rest:tt)*) => { + $crate::__parse_ensure!(arglist $stack $bail ($($fuel)*) {($($buf)* $literal) $($parse)*} ($($rest)*) $($rest)*) + }; + + (generic $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($brace:tt $($dup:tt)*) {$($block:tt)*} $($rest:tt)*) => { + $crate::__parse_ensure!(arglist $stack $bail ($($fuel)*) {($($buf)* $brace) $($parse)*} ($($rest)*) $($rest)*) + }; + + (generic $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($lifetime:tt $($dup:tt)*) $l:lifetime $($rest:tt)*) => { + $crate::__parse_ensure!(arglist $stack $bail ($($fuel)*) {($($buf)* $lifetime) $($parse)*} ($($rest)*) $($rest)*) + }; + + (generic $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($assoc:tt $eq:tt $($dup:tt)*) $ident:ident = $($rest:tt)*) => { + $crate::__parse_ensure!(type (arglist $stack) $bail ($($fuel)*) {($($buf)* $assoc $eq) $($parse)*} ($($rest)*) $($rest)*) + }; + + (generic $stack:tt $bail:tt (~$($fuel:tt)*) $parse:tt $dup:tt $($rest:tt)*) => { + $crate::__parse_ensure!(type (arglist $stack) $bail ($($fuel)*) $parse $dup $($rest)*) + }; + + (arglist $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($comma:tt $($dup:tt)*) , $($rest:tt)*) => { + $crate::__parse_ensure!(generic $stack $bail ($($fuel)*) {($($buf)* $comma) $($parse)*} ($($rest)*) $($rest)*) + }; + + (arglist (split ($pop:ident $stack:tt)) $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($rangle:tt $($dup:tt)*) >> $($rest:tt)*) => { + $crate::__parse_ensure!($pop $stack $bail ($($fuel)*) {($($buf)*) $rangle $($parse)*} ($($rest)*) $($rest)*) + }; + + (arglist ($pop:ident $stack:tt) $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($rangle:tt $($dup:tt)*) > $($rest:tt)*) => { + $crate::__parse_ensure!($pop $stack $bail ($($fuel)*) {($($buf)* $rangle) $($parse)*} ($($rest)*) $($rest)*) + }; + + (arglist ($pop:ident $stack:tt) $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($rangle:tt $($dup:tt)*) >> $($rest:tt)*) => { + $crate::__parse_ensure!($pop (split $stack) $bail ($($fuel)*) {($($buf)*) $($parse)*} ($rangle $($rest)*) $rangle $($rest)*) + }; + + // patterns + + (pat $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($pipe:tt $($dup:tt)*) | $($rest:tt)*) => { + $crate::__parse_ensure!(pat $stack $bail ($($fuel)*) {($($buf)* $pipe) $($parse)*} ($($rest)*) $($rest)*) + }; + + (pat $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($eq:tt $($dup:tt)*) = $($rest:tt)*) => { + $crate::__parse_ensure!(0 $stack $bail ($($fuel)*) {($($buf)* $eq) $($parse)*} ($($rest)*) $($rest)*) + }; + + (pat $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($in:tt $($dup:tt)*) in $($rest:tt)*) => { + $crate::__parse_ensure!(0 $stack $bail ($($fuel)*) {($($buf)* $in) $($parse)*} ($($rest)*) $($rest)*) + }; + + (pat $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($ref:tt $($dup:tt)*) ref $($rest:tt)*) => { + $crate::__parse_ensure!(pat $stack $bail ($($fuel)*) {($($buf)* $ref) $($parse)*} ($($rest)*) $($rest)*) + }; + + (pat $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($mut:tt $($dup:tt)*) mut $($rest:tt)*) => { + $crate::__parse_ensure!(pat $stack $bail ($($fuel)*) {($($buf)* $mut) $($parse)*} ($($rest)*) $($rest)*) + }; + + (pat $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($at:tt $($dup:tt)*) @ $($rest:tt)*) => { + $crate::__parse_ensure!(pat $stack $bail ($($fuel)*) {($($buf)* $at) $($parse)*} ($($rest)*) $($rest)*) + }; + + (pat $stack:tt ($($bail:tt)*) (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} $dup:tt - - $($rest:tt)*) => { + $crate::__fallback_ensure!($($bail)*) + }; + + (pat $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($neg:tt $($dup:tt)*) - $lit:literal $($rest:tt)*) => { + $crate::__parse_ensure!(pat $stack $bail ($($fuel)*) {($($buf)* $neg) $($parse)*} ($($dup)*) $($dup)*) + }; + + (pat $stack:tt ($($bail:tt)*) (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} $dup:tt - $($rest:tt)*) => { + $crate::__fallback_ensure!($($bail)*) + }; + + (pat $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($literal:tt $($dup:tt)*) $lit:literal $($rest:tt)*) => { + $crate::__parse_ensure!(pat $stack $bail ($($fuel)*) {($($buf)* $literal) $($parse)*} ($($rest)*) $($rest)*) + }; + + (pat $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($range:tt $($dup:tt)*) .. $($rest:tt)*) => { + $crate::__parse_ensure!(pat $stack $bail ($($fuel)*) {($($buf)* $range) $($parse)*} ($($rest)*) $($rest)*) + }; + + (pat $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($range:tt $($dup:tt)*) ..= $($rest:tt)*) => { + $crate::__parse_ensure!(pat $stack $bail ($($fuel)*) {($($buf)* $range) $($parse)*} ($($rest)*) $($rest)*) + }; + + (pat $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($and:tt $($dup:tt)*) & $($rest:tt)*) => { + $crate::__parse_ensure!(pat $stack $bail ($($fuel)*) {($($buf)* $and) $($parse)*} ($($rest)*) $($rest)*) + }; + + (pat $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($andand:tt $($dup:tt)*) && $($rest:tt)*) => { + $crate::__parse_ensure!(pat $stack $bail ($($fuel)*) {($($buf)* $andand) $($parse)*} ($($rest)*) $($rest)*) + }; + + (pat $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($paren:tt $($dup:tt)*) ($($content:tt)*) $($rest:tt)*) => { + $crate::__parse_ensure!(pat $stack $bail ($($fuel)*) {($($buf)* $paren) $($parse)*} ($($rest)*) $($rest)*) + }; + + (pat $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($bracket:tt $($dup:tt)*) [$($content:tt)*] $($rest:tt)*) => { + $crate::__parse_ensure!(pat $stack $bail ($($fuel)*) {($($buf)* $bracket) $($parse)*} ($($rest)*) $($rest)*) + }; + + (pat $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($brace:tt $($dup:tt)*) {$($content:tt)*} $($rest:tt)*) => { + $crate::__parse_ensure!(pat $stack $bail ($($fuel)*) {($($buf)* $brace) $($parse)*} ($($rest)*) $($rest)*) + }; + + (pat $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($wild:tt $($dup:tt)*) _ $($rest:tt)*) => { + $crate::__parse_ensure!(pat $stack $bail ($($fuel)*) {($($buf)* $wild) $($parse)*} ($($rest)*) $($rest)*) + }; + + (pat $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($colons:tt $ident:tt $($dup:tt)*) :: $i:ident $($rest:tt)*) => { + $crate::__parse_ensure!(epath (pat $stack) $bail ($($fuel)*) {($($buf)* $colons $ident) $($parse)*} ($($rest)*) $($rest)*) + }; + + (pat $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($ident:tt $($dup:tt)*) $i:ident $($rest:tt)*) => { + $crate::__parse_ensure!(epath (pat $stack) $bail ($($fuel)*) {($($buf)* $ident) $($parse)*} ($($rest)*) $($rest)*) + }; + + (pat $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($langle:tt $($dup:tt)*) < $($rest:tt)*) => { + $crate::__parse_ensure!(type (qpath (epath (pat $stack))) $bail ($($fuel)*) {($($buf)* $langle) $($parse)*} ($($rest)*) $($rest)*) + }; + + // comparison binary operators + + (atom () $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($eq:tt $($dup:tt)*) == $($rest:tt)*) => { + $crate::__parse_ensure!(0 () $bail ($($fuel)*) {() $($parse)* ($($buf)*) $eq} ($($rest)*) $($rest)*) + }; + + (atom $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)+) $($parse:tt)*} ($eq:tt $($dup:tt)*) == $($rest:tt)*) => { + $crate::__parse_ensure!(0 $stack $bail ($($fuel)*) {($($buf)* $eq) $($parse)*} ($($rest)*) $($rest)*) + }; + + (atom () $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($le:tt $($dup:tt)*) <= $($rest:tt)*) => { + $crate::__parse_ensure!(0 () $bail ($($fuel)*) {() $($parse)* ($($buf)*) $le} ($($rest)*) $($rest)*) + }; + + (atom $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)+) $($parse:tt)*} ($le:tt $($dup:tt)*) <= $($rest:tt)*) => { + $crate::__parse_ensure!(0 $stack $bail ($($fuel)*) {($($buf)* $le) $($parse)*} ($($rest)*) $($rest)*) + }; + + (atom () $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($lt:tt $($dup:tt)*) < $($rest:tt)*) => { + $crate::__parse_ensure!(0 () $bail ($($fuel)*) {() $($parse)* ($($buf)*) $lt} ($($rest)*) $($rest)*) + }; + + (atom $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)+) $($parse:tt)*} ($lt:tt $($dup:tt)*) < $($rest:tt)*) => { + $crate::__parse_ensure!(0 $stack $bail ($($fuel)*) {($($buf)* $lt) $($parse)*} ($($rest)*) $($rest)*) + }; + + (atom () $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($ne:tt $($dup:tt)*) != $($rest:tt)*) => { + $crate::__parse_ensure!(0 () $bail ($($fuel)*) {() $($parse)* ($($buf)*) $ne} ($($rest)*) $($rest)*) + }; + + (atom $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)+) $($parse:tt)*} ($ne:tt $($dup:tt)*) != $($rest:tt)*) => { + $crate::__parse_ensure!(0 $stack $bail ($($fuel)*) {($($buf)* $ne) $($parse)*} ($($rest)*) $($rest)*) + }; + + (atom () $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($ge:tt $($dup:tt)*) >= $($rest:tt)*) => { + $crate::__parse_ensure!(0 () $bail ($($fuel)*) {() $($parse)* ($($buf)*) $ge} ($($rest)*) $($rest)*) + }; + + (atom $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)+) $($parse:tt)*} ($ge:tt $($dup:tt)*) >= $($rest:tt)*) => { + $crate::__parse_ensure!(0 $stack $bail ($($fuel)*) {($($buf)* $ge) $($parse)*} ($($rest)*) $($rest)*) + }; + + (atom (split ()) $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} $dup:tt >> $($rest:tt)*) => { + $crate::__parse_ensure!(0 () $bail ($($fuel)*) {() $($parse)* ($($buf)* > ) > } ($($rest)*) $($rest)*) + }; + + (atom () $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($gt:tt $($dup:tt)*) > $($rest:tt)*) => { + $crate::__parse_ensure!(0 () $bail ($($fuel)*) {() $($parse)* ($($buf)*) $gt} ($($rest)*) $($rest)*) + }; + + (atom (split $stack:tt) $bail:tt (~$($fuel:tt)*) {($($buf:tt)+) $($parse:tt)*} ($rangle:tt $($dup:tt)*) >> $($rest:tt)*) => { + $crate::__parse_ensure!(0 $stack $bail ($($fuel)*) {($($buf)* $rangle) $($parse)*} ($($rest)*) $($rest)*) + }; + + (atom $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)+) $($parse:tt)*} ($gt:tt $($dup:tt)*) > $($rest:tt)*) => { + $crate::__parse_ensure!(0 $stack $bail ($($fuel)*) {($($buf)* $gt) $($parse)*} ($($rest)*) $($rest)*) + }; + + // high precedence binary operators + + (atom $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($add:tt $($dup:tt)*) + $($rest:tt)*) => { + $crate::__parse_ensure!(0 $stack $bail ($($fuel)*) {($($buf)* $add) $($parse)*} ($($rest)*) $($rest)*) + }; + + (atom $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($sub:tt $($dup:tt)*) - $($rest:tt)*) => { + $crate::__parse_ensure!(0 $stack $bail ($($fuel)*) {($($buf)* $sub) $($parse)*} ($($rest)*) $($rest)*) + }; + + (atom $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($mul:tt $($dup:tt)*) * $($rest:tt)*) => { + $crate::__parse_ensure!(0 $stack $bail ($($fuel)*) {($($buf)* $mul) $($parse)*} ($($rest)*) $($rest)*) + }; + + (atom $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($div:tt $($dup:tt)*) / $($rest:tt)*) => { + $crate::__parse_ensure!(0 $stack $bail ($($fuel)*) {($($buf)* $div) $($parse)*} ($($rest)*) $($rest)*) + }; + + (atom $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($rem:tt $($dup:tt)*) % $($rest:tt)*) => { + $crate::__parse_ensure!(0 $stack $bail ($($fuel)*) {($($buf)* $rem) $($parse)*} ($($rest)*) $($rest)*) + }; + + (atom $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($bitxor:tt $($dup:tt)*) ^ $($rest:tt)*) => { + $crate::__parse_ensure!(0 $stack $bail ($($fuel)*) {($($buf)* $bitxor) $($parse)*} ($($rest)*) $($rest)*) + }; + + (atom $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($bitand:tt $($dup:tt)*) & $($rest:tt)*) => { + $crate::__parse_ensure!(0 $stack $bail ($($fuel)*) {($($buf)* $bitand) $($parse)*} ($($rest)*) $($rest)*) + }; + + (atom $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($bitor:tt $($dup:tt)*) | $($rest:tt)*) => { + $crate::__parse_ensure!(0 $stack $bail ($($fuel)*) {($($buf)* $bitor) $($parse)*} ($($rest)*) $($rest)*) + }; + + (atom $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($shl:tt $($dup:tt)*) << $($rest:tt)*) => { + $crate::__parse_ensure!(0 $stack $bail ($($fuel)*) {($($buf)* $shl) $($parse)*} ($($rest)*) $($rest)*) + }; + + (atom $stack:tt $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($shr:tt $($dup:tt)*) >> $($rest:tt)*) => { + $crate::__parse_ensure!(0 $stack $bail ($($fuel)*) {($($buf)* $shr) $($parse)*} ($($rest)*) $($rest)*) + }; + + // low precedence binary operators + + (atom ($($stack:tt)+) $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($and:tt $($dup:tt)*) && $($rest:tt)*) => { + $crate::__parse_ensure!(0 ($($stack)*) $bail ($($fuel)*) {($($buf)* $and) $($parse)*} ($($rest)*) $($rest)*) + }; + + (atom ($($stack:tt)+) $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($or:tt $($dup:tt)*) || $($rest:tt)*) => { + $crate::__parse_ensure!(0 ($($stack)*) $bail ($($fuel)*) {($($buf)* $or) $($parse)*} ($($rest)*) $($rest)*) + }; + + (atom ($($stack:tt)+) $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($assign:tt $($dup:tt)*) = $($rest:tt)*) => { + $crate::__parse_ensure!(0 ($($stack)*) $bail ($($fuel)*) {($($buf)* $assign) $($parse)*} ($($rest)*) $($rest)*) + }; + + (atom ($($stack:tt)+) $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($addeq:tt $($dup:tt)*) += $($rest:tt)*) => { + $crate::__parse_ensure!(0 ($($stack)*) $bail ($($fuel)*) {($($buf)* $addeq) $($parse)*} ($($rest)*) $($rest)*) + }; + + (atom ($($stack:tt)+) $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($subeq:tt $($dup:tt)*) -= $($rest:tt)*) => { + $crate::__parse_ensure!(0 ($($stack)*) $bail ($($fuel)*) {($($buf)* $subeq) $($parse)*} ($($rest)*) $($rest)*) + }; + + (atom ($($stack:tt)+) $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($muleq:tt $($dup:tt)*) *= $($rest:tt)*) => { + $crate::__parse_ensure!(0 ($($stack)*) $bail ($($fuel)*) {($($buf)* $muleq) $($parse)*} ($($rest)*) $($rest)*) + }; + + (atom ($($stack:tt)+) $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($diveq:tt $($dup:tt)*) /= $($rest:tt)*) => { + $crate::__parse_ensure!(0 ($($stack)*) $bail ($($fuel)*) {($($buf)* $diveq) $($parse)*} ($($rest)*) $($rest)*) + }; + + (atom ($($stack:tt)+) $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($remeq:tt $($dup:tt)*) %= $($rest:tt)*) => { + $crate::__parse_ensure!(0 ($($stack)*) $bail ($($fuel)*) {($($buf)* $remeq) $($parse)*} ($($rest)*) $($rest)*) + }; + + (atom ($($stack:tt)+) $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($bitxoreq:tt $($dup:tt)*) ^= $($rest:tt)*) => { + $crate::__parse_ensure!(0 ($($stack)*) $bail ($($fuel)*) {($($buf)* $bitxoreq) $($parse)*} ($($rest)*) $($rest)*) + }; + + (atom ($($stack:tt)+) $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($bitandeq:tt $($dup:tt)*) &= $($rest:tt)*) => { + $crate::__parse_ensure!(0 ($($stack)*) $bail ($($fuel)*) {($($buf)* $bitandeq) $($parse)*} ($($rest)*) $($rest)*) + }; + + (atom ($($stack:tt)+) $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($bitoreq:tt $($dup:tt)*) |= $($rest:tt)*) => { + $crate::__parse_ensure!(0 ($($stack)*) $bail ($($fuel)*) {($($buf)* $bitoreq) $($parse)*} ($($rest)*) $($rest)*) + }; + + (atom ($($stack:tt)+) $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($shleq:tt $($dup:tt)*) <<= $($rest:tt)*) => { + $crate::__parse_ensure!(0 ($($stack)*) $bail ($($fuel)*) {($($buf)* $shleq) $($parse)*} ($($rest)*) $($rest)*) + }; + + (atom ($($stack:tt)+) $bail:tt (~$($fuel:tt)*) {($($buf:tt)*) $($parse:tt)*} ($shreq:tt $($dup:tt)*) >>= $($rest:tt)*) => { + $crate::__parse_ensure!(0 ($($stack)*) $bail ($($fuel)*) {($($buf)* $shreq) $($parse)*} ($($rest)*) $($rest)*) + }; + + // unrecognized expression + + ($state:tt $stack:tt ($($bail:tt)*) $($rest:tt)*) => { + $crate::__fallback_ensure!($($bail)*) + }; +} + +#[doc(hidden)] +#[macro_export] +macro_rules! __fancy_ensure { + ($lhs:expr, $op:tt, $rhs:expr) => { + match (&$lhs, &$rhs) { + (lhs, rhs) => { + if !(lhs $op rhs) { + #[allow(unused_imports)] + use $crate::__private::{BothDebug, NotBothDebug}; + return Err((lhs, rhs).__dispatch_ensure( + $crate::__private::concat!( + "Condition failed: `", + $crate::__private::stringify!($lhs), + " ", + $crate::__private::stringify!($op), + " ", + $crate::__private::stringify!($rhs), + "`", + ), + )); + } + } + } + }; +} + +#[doc(hidden)] +#[macro_export] +macro_rules! __fallback_ensure { + ($cond:expr $(,)?) => { + if $crate::__private::not($cond) { + return $crate::__private::Err($crate::Error::msg( + $crate::__private::concat!("Condition failed: `", $crate::__private::stringify!($cond), "`") + )); + } + }; + ($cond:expr, $msg:literal $(,)?) => { + if $crate::__private::not($cond) { + return $crate::__private::Err($crate::__anyhow!($msg)); + } + }; + ($cond:expr, $err:expr $(,)?) => { + if $crate::__private::not($cond) { + return $crate::__private::Err($crate::__anyhow!($err)); + } + }; + ($cond:expr, $fmt:expr, $($arg:tt)*) => { + if $crate::__private::not($cond) { + return $crate::__private::Err($crate::__anyhow!($fmt, $($arg)*)); + } + }; +} diff --git a/third_party/crates/anyhow-1.0.104/src/error.rs b/third_party/crates/anyhow-1.0.104/src/error.rs new file mode 100644 index 0000000..d97df8c --- /dev/null +++ b/third_party/crates/anyhow-1.0.104/src/error.rs @@ -0,0 +1,1060 @@ +use crate::backtrace::Backtrace; +use crate::chain::Chain; +#[cfg(error_generic_member_access)] +use crate::nightly::{self, Request}; +#[cfg(any(feature = "std", not(anyhow_no_core_error)))] +use crate::ptr::Mut; +use crate::ptr::{Own, Ref}; +use crate::{Error, StdError}; +use alloc::boxed::Box; +use core::any::TypeId; +use core::fmt::{self, Debug, Display}; +use core::mem::ManuallyDrop; +#[cfg(any(feature = "std", not(anyhow_no_core_error)))] +use core::ops::{Deref, DerefMut}; +use core::panic::{RefUnwindSafe, UnwindSafe}; +use core::ptr; +use core::ptr::NonNull; + +impl Error { + /// Create a new error object from any error type. + /// + /// The error type must be threadsafe and `'static`, so that the `Error` + /// will be as well. + /// + /// If the error type does not provide a backtrace, a backtrace will be + /// created here to ensure that a backtrace exists. + #[cfg(any(feature = "std", not(anyhow_no_core_error)))] + #[cold] + #[must_use] + pub fn new(error: E) -> Self + where + E: StdError + Send + Sync + 'static, + { + let backtrace = backtrace_if_absent!(&error); + Error::construct_from_std(error, backtrace) + } + + /// Create a new error object from a printable error message. + /// + /// If the argument implements std::error::Error, prefer `Error::new` + /// instead which preserves the underlying error's cause chain and + /// backtrace. If the argument may or may not implement std::error::Error + /// now or in the future, use `anyhow!(err)` which handles either way + /// correctly. + /// + /// `Error::msg("...")` is equivalent to `anyhow!("...")` but occasionally + /// convenient in places where a function is preferable over a macro, such + /// as iterator or stream combinators: + /// + /// ``` + /// # mod ffi { + /// # pub struct Input; + /// # pub struct Output; + /// # pub async fn do_some_work(_: Input) -> Result { + /// # unimplemented!() + /// # } + /// # } + /// # + /// # use ffi::{Input, Output}; + /// # + /// use anyhow::{Error, Result}; + /// use futures::stream::{Stream, StreamExt, TryStreamExt}; + /// + /// async fn demo(stream: S) -> Result> + /// where + /// S: Stream, + /// { + /// stream + /// .then(ffi::do_some_work) // returns Result + /// .map_err(Error::msg) + /// .try_collect() + /// .await + /// } + /// ``` + #[cold] + #[must_use] + pub fn msg(message: M) -> Self + where + M: Display + Debug + Send + Sync + 'static, + { + Error::construct_from_adhoc(message, backtrace!()) + } + + /// Construct an error object from a type-erased standard library error. + /// + /// This is mostly useful for interop with other error libraries. + /// + /// # Example + /// + /// Here is a skeleton of a library that provides its own error abstraction. + /// The pair of `From` impls provide bidirectional support for `?` + /// conversion between `Report` and `anyhow::Error`. + /// + /// ``` + /// use std::error::Error as StdError; + /// + /// pub struct Report {/* ... */} + /// + /// impl From for Report + /// where + /// E: Into, + /// Result<(), E>: anyhow::Context<(), E>, + /// { + /// fn from(error: E) -> Self { + /// let anyhow_error: anyhow::Error = error.into(); + /// let boxed_error: Box = anyhow_error.into(); + /// Report::from_boxed(boxed_error) + /// } + /// } + /// + /// impl From for anyhow::Error { + /// fn from(report: Report) -> Self { + /// let boxed_error: Box = report.into_boxed(); + /// anyhow::Error::from_boxed(boxed_error) + /// } + /// } + /// + /// impl Report { + /// fn from_boxed(boxed_error: Box) -> Self { + /// todo!() + /// } + /// fn into_boxed(self) -> Box { + /// todo!() + /// } + /// } + /// + /// // Example usage: can use `?` in both directions. + /// fn a() -> anyhow::Result<()> { + /// b()?; + /// Ok(()) + /// } + /// fn b() -> Result<(), Report> { + /// a()?; + /// Ok(()) + /// } + /// ``` + #[cfg(any(feature = "std", not(anyhow_no_core_error)))] + #[cold] + #[must_use] + pub fn from_boxed(boxed_error: Box) -> Self { + let backtrace = backtrace_if_absent!(&*boxed_error); + Error::construct_from_boxed(boxed_error, backtrace) + } + + #[cfg(any(feature = "std", not(anyhow_no_core_error)))] + #[cold] + pub(crate) fn construct_from_std(error: E, backtrace: Option) -> Self + where + E: StdError + Send + Sync + 'static, + { + let vtable = &ErrorVTable { + object_drop: object_drop::, + object_ref: object_ref::, + object_boxed: object_boxed::, + object_reallocate_boxed: object_reallocate_boxed::, + object_downcast: object_downcast::, + object_drop_rest: object_drop_front::, + #[cfg(all(not(error_generic_member_access), feature = "std"))] + object_backtrace: no_backtrace, + }; + + // Safety: passing vtable that operates on the right type E. + unsafe { Error::construct(error, vtable, backtrace) } + } + + #[cold] + pub(crate) fn construct_from_adhoc(message: M, backtrace: Option) -> Self + where + M: Display + Debug + Send + Sync + 'static, + { + use crate::wrapper::MessageError; + let error: MessageError = MessageError(message); + let vtable = &ErrorVTable { + object_drop: object_drop::>, + object_ref: object_ref::>, + #[cfg(any(feature = "std", not(anyhow_no_core_error)))] + object_boxed: object_boxed::>, + #[cfg(any(feature = "std", not(anyhow_no_core_error)))] + object_reallocate_boxed: object_reallocate_boxed::>, + object_downcast: object_downcast::, + object_drop_rest: object_drop_front::, + #[cfg(all(not(error_generic_member_access), feature = "std"))] + object_backtrace: no_backtrace, + }; + + // Safety: MessageError is repr(transparent) so it is okay for the + // vtable to allow casting the MessageError to M. + unsafe { Error::construct(error, vtable, backtrace) } + } + + #[cold] + pub(crate) fn construct_from_display(message: M, backtrace: Option) -> Self + where + M: Display + Send + Sync + 'static, + { + use crate::wrapper::DisplayError; + let error: DisplayError = DisplayError(message); + let vtable = &ErrorVTable { + object_drop: object_drop::>, + object_ref: object_ref::>, + #[cfg(any(feature = "std", not(anyhow_no_core_error)))] + object_boxed: object_boxed::>, + #[cfg(any(feature = "std", not(anyhow_no_core_error)))] + object_reallocate_boxed: object_reallocate_boxed::>, + object_downcast: object_downcast::, + object_drop_rest: object_drop_front::, + #[cfg(all(not(error_generic_member_access), feature = "std"))] + object_backtrace: no_backtrace, + }; + + // Safety: DisplayError is repr(transparent) so it is okay for the + // vtable to allow casting the DisplayError to M. + unsafe { Error::construct(error, vtable, backtrace) } + } + + #[cfg(any(feature = "std", not(anyhow_no_core_error)))] + #[cold] + pub(crate) fn construct_from_context( + context: C, + error: E, + backtrace: Option, + ) -> Self + where + C: Display + Send + Sync + 'static, + E: StdError + Send + Sync + 'static, + { + let error: ContextError = ContextError { context, error }; + + let vtable = &ErrorVTable { + object_drop: object_drop::>, + object_ref: object_ref::>, + #[cfg(any(feature = "std", not(anyhow_no_core_error)))] + object_boxed: object_boxed::>, + #[cfg(any(feature = "std", not(anyhow_no_core_error)))] + object_reallocate_boxed: object_reallocate_boxed::>, + object_downcast: context_downcast::, + object_drop_rest: context_drop_rest::, + #[cfg(all(not(error_generic_member_access), feature = "std"))] + object_backtrace: no_backtrace, + }; + + // Safety: passing vtable that operates on the right type. + unsafe { Error::construct(error, vtable, backtrace) } + } + + #[cfg(any(feature = "std", not(anyhow_no_core_error)))] + #[cold] + pub(crate) fn construct_from_boxed( + error: Box, + backtrace: Option, + ) -> Self { + use crate::wrapper::BoxedError; + let error = BoxedError(error); + let vtable = &ErrorVTable { + object_drop: object_drop::, + object_ref: object_ref::, + #[cfg(any(feature = "std", not(anyhow_no_core_error)))] + object_boxed: object_boxed::, + #[cfg(any(feature = "std", not(anyhow_no_core_error)))] + object_reallocate_boxed: object_reallocate_boxed::, + object_downcast: object_downcast::>, + object_drop_rest: object_drop_front::>, + #[cfg(all(not(error_generic_member_access), feature = "std"))] + object_backtrace: no_backtrace, + }; + + // Safety: BoxedError is repr(transparent) so it is okay for the vtable + // to allow casting to Box. + unsafe { Error::construct(error, vtable, backtrace) } + } + + // Takes backtrace as argument rather than capturing it here so that the + // user sees one fewer layer of wrapping noise in the backtrace. + // + // Unsafe because the given vtable must have sensible behavior on the error + // value of type E. + #[cold] + unsafe fn construct( + error: E, + vtable: &'static ErrorVTable, + backtrace: Option, + ) -> Self + where + E: StdError + Send + Sync + 'static, + { + let inner: Box> = Box::new(ErrorImpl { + vtable, + backtrace, + _object: error, + }); + // Erase the concrete type of E from the compile-time type system. This + // is equivalent to the safe unsize coercion from Box> to + // Box> except that the + // result is a thin pointer. The necessary behavior for manipulating the + // underlying ErrorImpl is preserved in the vtable provided by the + // caller rather than a builtin fat pointer vtable. + let inner = Own::new(inner).cast::(); + Error { inner } + } + + /// Wrap the error value with additional context. + /// + /// For attaching context to a `Result` as it is propagated, the + /// [`Context`][crate::Context] extension trait may be more convenient than + /// this function. + /// + /// The primary reason to use `error.context(...)` instead of + /// `result.context(...)` via the `Context` trait would be if the context + /// needs to depend on some data held by the underlying error: + /// + /// ``` + /// # use std::fmt::{self, Debug, Display}; + /// # + /// # type T = (); + /// # + /// # impl std::error::Error for ParseError {} + /// # impl Debug for ParseError { + /// # fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result { + /// # unimplemented!() + /// # } + /// # } + /// # impl Display for ParseError { + /// # fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result { + /// # unimplemented!() + /// # } + /// # } + /// # + /// use anyhow::Result; + /// use std::fs::File; + /// use std::path::Path; + /// + /// struct ParseError { + /// line: usize, + /// column: usize, + /// } + /// + /// fn parse_impl(file: File) -> Result { + /// # const IGNORE: &str = stringify! { + /// ... + /// # }; + /// # unimplemented!() + /// } + /// + /// pub fn parse(path: impl AsRef) -> Result { + /// let file = File::open(&path)?; + /// parse_impl(file).map_err(|error| { + /// let context = format!( + /// "only the first {} lines of {} are valid", + /// error.line, path.as_ref().display(), + /// ); + /// anyhow::Error::new(error).context(context) + /// }) + /// } + /// ``` + #[cold] + #[must_use] + pub fn context(self, context: C) -> Self + where + C: Display + Send + Sync + 'static, + { + let error: ContextError = ContextError { + context, + error: self, + }; + + let vtable = &ErrorVTable { + object_drop: object_drop::>, + object_ref: object_ref::>, + #[cfg(any(feature = "std", not(anyhow_no_core_error)))] + object_boxed: object_boxed::>, + #[cfg(any(feature = "std", not(anyhow_no_core_error)))] + object_reallocate_boxed: object_reallocate_boxed::>, + object_downcast: context_chain_downcast::, + object_drop_rest: context_chain_drop_rest::, + #[cfg(all(not(error_generic_member_access), feature = "std"))] + object_backtrace: context_backtrace::, + }; + + // As the cause is anyhow::Error, we already have a backtrace for it. + let backtrace = None; + + // Safety: passing vtable that operates on the right type. + unsafe { Error::construct(error, vtable, backtrace) } + } + + /// Get the backtrace for this Error. + /// + /// In order for the backtrace to be meaningful, one of the two environment + /// variables `RUST_LIB_BACKTRACE=1` or `RUST_BACKTRACE=1` must be defined + /// and `RUST_LIB_BACKTRACE` must not be `0`. Backtraces are somewhat + /// expensive to capture in Rust, so we don't necessarily want to be + /// capturing them all over the place all the time. + /// + /// - If you want panics and errors to both have backtraces, set + /// `RUST_BACKTRACE=1`; + /// - If you want only errors to have backtraces, set + /// `RUST_LIB_BACKTRACE=1`; + /// - If you want only panics to have backtraces, set `RUST_BACKTRACE=1` and + /// `RUST_LIB_BACKTRACE=0`. + /// + /// # Stability + /// + /// Standard library backtraces are only available when using Rust ≥ + /// 1.65. On older compilers, this function is only available if the crate's + /// "backtrace" feature is enabled, and will use the `backtrace` crate as + /// the underlying backtrace implementation. The return type of this + /// function on old compilers is `&(impl Debug + Display)`. + /// + /// ```toml + /// [dependencies] + /// anyhow = { version = "1.0", features = ["backtrace"] } + /// ``` + #[cfg(feature = "std")] + pub fn backtrace(&self) -> &Backtrace { + unsafe { ErrorImpl::backtrace(self.inner.by_ref()) } + } + + /// An iterator of the chain of source errors contained by this Error. + /// + /// This iterator will visit every error in the cause chain of this error + /// object, beginning with the error that this error object was created + /// from. + /// + /// # Example + /// + /// ``` + /// use anyhow::Error; + /// use std::io; + /// + /// pub fn underlying_io_error_kind(error: &Error) -> Option { + /// for cause in error.chain() { + /// if let Some(io_error) = cause.downcast_ref::() { + /// return Some(io_error.kind()); + /// } + /// } + /// None + /// } + /// ``` + #[cfg(any(feature = "std", not(anyhow_no_core_error)))] + #[cold] + pub fn chain(&self) -> Chain { + unsafe { ErrorImpl::chain(self.inner.by_ref()) } + } + + /// The lowest level cause of this error — this error's cause's + /// cause's cause etc. + /// + /// The root cause is the last error in the iterator produced by + /// [`chain()`][Error::chain]. + #[cfg(any(feature = "std", not(anyhow_no_core_error)))] + #[allow(clippy::double_ended_iterator_last)] + pub fn root_cause(&self) -> &(dyn StdError + 'static) { + self.chain().last().unwrap() + } + + /// Returns true if `E` is the type held by this error object. + /// + /// For errors with context, this method returns true if `E` matches the + /// type of the context `C` **or** the type of the error on which the + /// context has been attached. For details about the interaction between + /// context and downcasting, [see here]. + /// + /// [see here]: crate::Context#effect-on-downcasting + pub fn is(&self) -> bool + where + E: Display + Debug + Send + Sync + 'static, + { + self.downcast_ref::().is_some() + } + + /// Attempt to downcast the error object to a concrete type. + pub fn downcast(mut self) -> Result + where + E: Display + Debug + Send + Sync + 'static, + { + let target = TypeId::of::(); + let inner = self.inner.by_mut(); + unsafe { + // Use vtable to find NonNull<()> which points to a value of type E + // somewhere inside the data structure. + let addr = match (vtable(inner.ptr).object_downcast)(inner.by_ref(), target) { + Some(addr) => addr.by_mut().extend(), + None => return Err(self), + }; + + // Prepare to read E out of the data structure. We'll drop the rest + // of the data structure separately so that E is not dropped. + let outer = ManuallyDrop::new(self); + + // Read E from where the vtable found it. + let error = addr.cast::().read(); + + // Drop rest of the data structure outside of E. + (vtable(outer.inner.ptr).object_drop_rest)(outer.inner, target); + + Ok(error) + } + } + + /// Downcast this error object by reference. + /// + /// # Example + /// + /// ``` + /// # use anyhow::anyhow; + /// # use std::fmt::{self, Display}; + /// # use std::task::Poll; + /// # + /// # #[derive(Debug)] + /// # enum DataStoreError { + /// # Censored(()), + /// # } + /// # + /// # impl Display for DataStoreError { + /// # fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result { + /// # unimplemented!() + /// # } + /// # } + /// # + /// # impl std::error::Error for DataStoreError {} + /// # + /// # const REDACTED_CONTENT: () = (); + /// # + /// # let error = anyhow!("..."); + /// # let root_cause = &error; + /// # + /// # let ret = + /// // If the error was caused by redaction, then return a tombstone instead + /// // of the content. + /// match root_cause.downcast_ref::() { + /// Some(DataStoreError::Censored(_)) => Ok(Poll::Ready(REDACTED_CONTENT)), + /// None => Err(error), + /// } + /// # ; + /// ``` + pub fn downcast_ref(&self) -> Option<&E> + where + E: Display + Debug + Send + Sync + 'static, + { + let target = TypeId::of::(); + unsafe { + // Use vtable to find NonNull<()> which points to a value of type E + // somewhere inside the data structure. + let addr = (vtable(self.inner.ptr).object_downcast)(self.inner.by_ref(), target)?; + Some(addr.cast::().deref()) + } + } + + /// Downcast this error object by mutable reference. + pub fn downcast_mut(&mut self) -> Option<&mut E> + where + E: Display + Debug + Send + Sync + 'static, + { + let target = TypeId::of::(); + unsafe { + // Use vtable to find NonNull<()> which points to a value of type E + // somewhere inside the data structure. + let addr = + (vtable(self.inner.ptr).object_downcast)(self.inner.by_ref(), target)?.by_mut(); + Some(addr.cast::().deref_mut()) + } + } + + /// Convert to a standard library error trait object. + /// + /// This is implemented as a cheap pointer cast that does not allocate or + /// deallocate memory. Like [`anyhow::Error::from_boxed`], it's useful for + /// interop with other error libraries. + /// + /// The same conversion is also available as + /// impl From<anyhow::Error> + /// for Box<dyn Error + Send + Sync + 'static>. + /// + /// If a backtrace was collected during construction of the `anyhow::Error`, + /// that backtrace remains accessible using the standard library `Error` + /// trait's provider API, but as a consequence, the resulting boxed error + /// can no longer be downcast to its original underlying type. + /// + /// ``` + #[cfg_attr(not(error_generic_member_access), doc = "# _ = stringify! {")] + /// #![feature(error_generic_member_access)] + /// + /// use anyhow::anyhow; + /// use std::backtrace::Backtrace; + /// use thiserror::Error; + /// + /// #[derive(Error, Debug)] + /// #[error("...")] + /// struct MyError; + /// + /// let anyhow_error = anyhow!(MyError); + /// println!("{}", anyhow_error.backtrace()); // has Backtrace + /// assert!(anyhow_error.downcast_ref::().is_some()); // can downcast + /// + /// let boxed_dyn_error = anyhow_error.into_boxed_dyn_error(); + /// assert!(std::error::request_ref::(&*boxed_dyn_error).is_some()); // has Backtrace + /// assert!(boxed_dyn_error.downcast_ref::().is_none()); // can no longer downcast + #[cfg_attr(not(error_generic_member_access), doc = "# };")] + /// ``` + /// + /// [`anyhow::Error::from_boxed`]: Self::from_boxed + #[cfg(any(feature = "std", not(anyhow_no_core_error)))] + #[must_use] + pub fn into_boxed_dyn_error(self) -> Box { + let outer = ManuallyDrop::new(self); + unsafe { + // Use vtable to attach ErrorImpl's native StdError vtable for + // the right original type E. + (vtable(outer.inner.ptr).object_boxed)(outer.inner) + } + } + + /// Convert to a standard library error trait object. + /// + /// Unlike `self.into_boxed_dyn_error()`, this method relocates the + /// underlying error into a new allocation in order to make it downcastable + /// to `&E` or `Box` for its original underlying error type. Any + /// backtrace collected during construction of the `anyhow::Error` is + /// discarded. + /// + /// ``` + #[cfg_attr(not(error_generic_member_access), doc = "# _ = stringify!{")] + /// #![feature(error_generic_member_access)] + /// + /// use anyhow::anyhow; + /// use std::backtrace::Backtrace; + /// use thiserror::Error; + /// + /// #[derive(Error, Debug)] + /// #[error("...")] + /// struct MyError; + /// + /// let anyhow_error = anyhow!(MyError); + /// println!("{}", anyhow_error.backtrace()); // has Backtrace + /// assert!(anyhow_error.downcast_ref::().is_some()); // can downcast + /// + /// let boxed_dyn_error = anyhow_error.reallocate_into_boxed_dyn_error_without_backtrace(); + /// assert!(std::error::request_ref::(&*boxed_dyn_error).is_none()); // Backtrace lost + /// assert!(boxed_dyn_error.downcast_ref::().is_some()); // can downcast to &MyError + /// assert!(boxed_dyn_error.downcast::().is_ok()); // can downcast to Box + #[cfg_attr(not(error_generic_member_access), doc = "# };")] + /// ``` + #[cfg(any(feature = "std", not(anyhow_no_core_error)))] + #[must_use] + pub fn reallocate_into_boxed_dyn_error_without_backtrace( + self, + ) -> Box { + let outer = ManuallyDrop::new(self); + unsafe { + // Use vtable to attach E's native StdError vtable for the right + // original type E. + (vtable(outer.inner.ptr).object_reallocate_boxed)(outer.inner) + } + } + + #[cfg(error_generic_member_access)] + pub(crate) fn provide<'a>(&'a self, request: &mut Request<'a>) { + unsafe { ErrorImpl::provide(self.inner.by_ref(), request) } + } + + // Called by thiserror when you have `#[source] anyhow::Error`. This provide + // implementation includes the anyhow::Error's Backtrace if any, unlike + // deref'ing to dyn Error where the provide implementation would include + // only the original error's Backtrace from before it got wrapped into an + // anyhow::Error. + #[cfg(error_generic_member_access)] + #[doc(hidden)] + pub fn thiserror_provide<'a>(&'a self, request: &mut Request<'a>) { + Self::provide(self, request); + } +} + +#[cfg(any(feature = "std", not(anyhow_no_core_error)))] +impl From for Error +where + E: StdError + Send + Sync + 'static, +{ + #[cold] + fn from(error: E) -> Self { + let backtrace = backtrace_if_absent!(&error); + Error::construct_from_std(error, backtrace) + } +} + +#[cfg(any(feature = "std", not(anyhow_no_core_error)))] +impl Deref for Error { + type Target = dyn StdError + Send + Sync + 'static; + + fn deref(&self) -> &Self::Target { + unsafe { ErrorImpl::error(self.inner.by_ref()) } + } +} + +#[cfg(any(feature = "std", not(anyhow_no_core_error)))] +impl DerefMut for Error { + fn deref_mut(&mut self) -> &mut Self::Target { + unsafe { ErrorImpl::error_mut(self.inner.by_mut()) } + } +} + +impl Display for Error { + fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result { + unsafe { ErrorImpl::display(self.inner.by_ref(), formatter) } + } +} + +impl Debug for Error { + fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result { + unsafe { ErrorImpl::debug(self.inner.by_ref(), formatter) } + } +} + +impl Drop for Error { + fn drop(&mut self) { + unsafe { + // Invoke the vtable's drop behavior. + (vtable(self.inner.ptr).object_drop)(self.inner); + } + } +} + +struct ErrorVTable { + object_drop: unsafe fn(Own), + object_ref: unsafe fn(Ref) -> Ref, + #[cfg(any(feature = "std", not(anyhow_no_core_error)))] + object_boxed: unsafe fn(Own) -> Box, + #[cfg(any(feature = "std", not(anyhow_no_core_error)))] + object_reallocate_boxed: unsafe fn(Own) -> Box, + object_downcast: unsafe fn(Ref, TypeId) -> Option>, + object_drop_rest: unsafe fn(Own, TypeId), + #[cfg(all(not(error_generic_member_access), feature = "std"))] + object_backtrace: unsafe fn(Ref) -> Option<&Backtrace>, +} + +// Safety: requires layout of *e to match ErrorImpl. +unsafe fn object_drop(e: Own) { + // Cast back to ErrorImpl so that the allocator receives the correct + // Layout to deallocate the Box's memory. + let unerased_own = e.cast::>(); + drop(unsafe { unerased_own.boxed() }); +} + +// Safety: requires layout of *e to match ErrorImpl. +unsafe fn object_drop_front(e: Own, target: TypeId) { + // Drop the fields of ErrorImpl other than E as well as the Box allocation, + // without dropping E itself. This is used by downcast after doing a + // ptr::read to take ownership of the E. + let _ = target; + let unerased_own = e.cast::>>(); + drop(unsafe { unerased_own.boxed() }); +} + +// Safety: requires layout of *e to match ErrorImpl. +unsafe fn object_ref(e: Ref) -> Ref +where + E: StdError + Send + Sync + 'static, +{ + // Attach E's native StdError vtable onto a pointer to self._object. + let unerased_ref = e.cast::>(); + Ref::from_raw(unsafe { + NonNull::new_unchecked(ptr::addr_of!((*unerased_ref.as_ptr())._object).cast_mut()) + }) +} + +// Safety: requires layout of *e to match ErrorImpl. +#[cfg(any(feature = "std", not(anyhow_no_core_error)))] +unsafe fn object_boxed(e: Own) -> Box +where + E: StdError + Send + Sync + 'static, +{ + // Attach ErrorImpl's native StdError vtable. The StdError impl is below. + let unerased_own = e.cast::>(); + unsafe { unerased_own.boxed() } +} + +// Safety: requires layout of *e to match ErrorImpl. +#[cfg(any(feature = "std", not(anyhow_no_core_error)))] +unsafe fn object_reallocate_boxed(e: Own) -> Box +where + E: StdError + Send + Sync + 'static, +{ + // Attach E's native StdError vtable. + let unerased_own = e.cast::>(); + Box::new(unsafe { unerased_own.boxed() }._object) +} + +// Safety: requires layout of *e to match ErrorImpl. +unsafe fn object_downcast(e: Ref, target: TypeId) -> Option> +where + E: 'static, +{ + if TypeId::of::() == target { + // Caller is looking for an E pointer and e is ErrorImpl, take a + // pointer to its E field. + let unerased_ref = e.cast::>(); + Some( + Ref::from_raw(unsafe { + NonNull::new_unchecked(ptr::addr_of!((*unerased_ref.as_ptr())._object).cast_mut()) + }) + .cast::<()>(), + ) + } else { + None + } +} + +#[cfg(all(not(error_generic_member_access), feature = "std"))] +fn no_backtrace(e: Ref) -> Option<&Backtrace> { + let _ = e; + None +} + +// Safety: requires layout of *e to match ErrorImpl>. +#[cfg(any(feature = "std", not(anyhow_no_core_error)))] +unsafe fn context_downcast(e: Ref, target: TypeId) -> Option> +where + C: 'static, + E: 'static, +{ + if TypeId::of::() == target { + let unerased_ref = e.cast::>>(); + let inner = unsafe { ptr::addr_of!((*unerased_ref.as_ptr())._object.context) }; + Some(Ref::from_raw(unsafe { NonNull::new_unchecked(inner.cast_mut()) }).cast::<()>()) + } else if TypeId::of::() == target { + let unerased_ref = e.cast::>>(); + let inner = unsafe { ptr::addr_of!((*unerased_ref.as_ptr())._object.error) }; + Some(Ref::from_raw(unsafe { NonNull::new_unchecked(inner.cast_mut()) }).cast::<()>()) + } else { + None + } +} + +// Safety: requires layout of *e to match ErrorImpl>. +#[cfg(any(feature = "std", not(anyhow_no_core_error)))] +unsafe fn context_drop_rest(e: Own, target: TypeId) +where + C: 'static, + E: 'static, +{ + // Called after downcasting by value to either the C or the E and doing a + // ptr::read to take ownership of that value. + if TypeId::of::() == target { + let unerased_own = e.cast::, E>>>(); + drop(unsafe { unerased_own.boxed() }); + } else { + let unerased_own = e.cast::>>>(); + drop(unsafe { unerased_own.boxed() }); + } +} + +// Safety: requires layout of *e to match ErrorImpl>. +unsafe fn context_chain_downcast(e: Ref, target: TypeId) -> Option> +where + C: 'static, +{ + let unerased_ref = e.cast::>>(); + if TypeId::of::() == target { + let inner = unsafe { ptr::addr_of!((*unerased_ref.as_ptr())._object.context) }; + Some(Ref::from_raw(unsafe { NonNull::new_unchecked(inner.cast_mut()) }).cast::<()>()) + } else { + // Recurse down the context chain per the inner error's vtable. + let unerased = unsafe { unerased_ref.deref() }; + let source = &unerased._object.error; + unsafe { (vtable(source.inner.ptr).object_downcast)(source.inner.by_ref(), target) } + } +} + +// Safety: requires layout of *e to match ErrorImpl>. +unsafe fn context_chain_drop_rest(e: Own, target: TypeId) +where + C: 'static, +{ + // Called after downcasting by value to either the C or one of the causes + // and doing a ptr::read to take ownership of that value. + if TypeId::of::() == target { + let unerased_own = e.cast::, Error>>>(); + // Drop the entire rest of the data structure rooted in the next Error. + drop(unsafe { unerased_own.boxed() }); + } else { + let unerased_own = e.cast::>>>(); + let unerased = unsafe { unerased_own.boxed() }; + // Read the Own from the next error. + let inner = unerased._object.error.inner; + drop(unerased); + let vtable = unsafe { vtable(inner.ptr) }; + // Recursively drop the next error using the same target typeid. + unsafe { (vtable.object_drop_rest)(inner, target) }; + } +} + +// Safety: requires layout of *e to match ErrorImpl>. +#[cfg(all(not(error_generic_member_access), feature = "std"))] +#[allow(clippy::unnecessary_wraps)] +unsafe fn context_backtrace(e: Ref) -> Option<&Backtrace> +where + C: 'static, +{ + let unerased_ref = e.cast::>>(); + let unerased = unsafe { unerased_ref.deref() }; + let backtrace = unsafe { ErrorImpl::backtrace(unerased._object.error.inner.by_ref()) }; + Some(backtrace) +} + +// NOTE: If working with `ErrorImpl<()>`, references should be avoided in favor +// of raw pointers and `NonNull`. +// repr C to ensure that E remains in the final position. +#[repr(C)] +pub(crate) struct ErrorImpl { + vtable: &'static ErrorVTable, + backtrace: Option, + // NOTE: Don't use directly. Use only through vtable. Erased type may have + // different alignment. + _object: E, +} + +// Reads the vtable out of `p`. This is the same as `p.as_ref().vtable`, but +// avoids converting `p` into a reference. +unsafe fn vtable(p: NonNull) -> &'static ErrorVTable { + // NOTE: This assumes that `ErrorVTable` is the first field of ErrorImpl. + unsafe { *(p.as_ptr() as *const &'static ErrorVTable) } +} + +// repr C to ensure that ContextError has the same layout as +// ContextError, E> and ContextError>. +#[repr(C)] +pub(crate) struct ContextError { + pub context: C, + pub error: E, +} + +impl ErrorImpl { + fn erase(&self) -> Ref { + // Erase the concrete type of E but preserve the vtable in self.vtable + // for manipulating the resulting thin pointer. This is analogous to an + // unsize coercion. + Ref::new(self).cast::() + } +} + +impl ErrorImpl { + pub(crate) unsafe fn error(this: Ref) -> &(dyn StdError + Send + Sync + 'static) { + // Use vtable to attach E's native StdError vtable for the right + // original type E. + unsafe { (vtable(this.ptr).object_ref)(this).deref() } + } + + #[cfg(any(feature = "std", not(anyhow_no_core_error)))] + pub(crate) unsafe fn error_mut(this: Mut) -> &mut (dyn StdError + Send + Sync + 'static) { + // Use vtable to attach E's native StdError vtable for the right + // original type E. + unsafe { + (vtable(this.ptr).object_ref)(this.by_ref()) + .by_mut() + .deref_mut() + } + } + + #[cfg(feature = "std")] + pub(crate) unsafe fn backtrace(this: Ref) -> &Backtrace { + // This unwrap can only panic if the underlying error's backtrace method + // is nondeterministic, which would only happen in maliciously + // constructed code. + unsafe { this.deref() } + .backtrace + .as_ref() + .or_else(|| { + #[cfg(error_generic_member_access)] + return nightly::request_ref_backtrace(unsafe { Self::error(this) }); + #[cfg(not(error_generic_member_access))] + return unsafe { (vtable(this.ptr).object_backtrace)(this) }; + }) + .expect("backtrace capture failed") + } + + #[cfg(error_generic_member_access)] + unsafe fn provide<'a>(this: Ref<'a, Self>, request: &mut Request<'a>) { + if let Some(backtrace) = unsafe { &this.deref().backtrace } { + nightly::provide_ref_backtrace(request, backtrace); + } + nightly::provide(unsafe { Self::error(this) }, request); + } + + #[cold] + pub(crate) unsafe fn chain(this: Ref) -> Chain { + Chain::new(unsafe { Self::error(this) }) + } +} + +impl StdError for ErrorImpl +where + E: StdError, +{ + fn source(&self) -> Option<&(dyn StdError + 'static)> { + unsafe { ErrorImpl::error(self.erase()).source() } + } + + #[cfg(error_generic_member_access)] + fn provide<'a>(&'a self, request: &mut Request<'a>) { + unsafe { ErrorImpl::provide(self.erase(), request) } + } +} + +impl Debug for ErrorImpl +where + E: Debug, +{ + fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result { + unsafe { ErrorImpl::debug(self.erase(), formatter) } + } +} + +impl Display for ErrorImpl +where + E: Display, +{ + fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result { + unsafe { Display::fmt(ErrorImpl::error(self.erase()), formatter) } + } +} + +#[cfg(any(feature = "std", not(anyhow_no_core_error)))] +impl From for Box { + #[cold] + fn from(error: Error) -> Self { + error.into_boxed_dyn_error() + } +} + +#[cfg(any(feature = "std", not(anyhow_no_core_error)))] +impl From for Box { + #[cold] + fn from(error: Error) -> Self { + error.into_boxed_dyn_error() + } +} + +#[cfg(any(feature = "std", not(anyhow_no_core_error)))] +impl From for Box { + #[cold] + fn from(error: Error) -> Self { + error.into_boxed_dyn_error() + } +} + +#[cfg(any(feature = "std", not(anyhow_no_core_error)))] +impl AsRef for Error { + fn as_ref(&self) -> &(dyn StdError + Send + Sync + 'static) { + &**self + } +} + +#[cfg(any(feature = "std", not(anyhow_no_core_error)))] +impl AsRef for Error { + fn as_ref(&self) -> &(dyn StdError + 'static) { + &**self + } +} + +impl UnwindSafe for Error {} +impl RefUnwindSafe for Error {} diff --git a/third_party/crates/anyhow-1.0.104/src/fmt.rs b/third_party/crates/anyhow-1.0.104/src/fmt.rs new file mode 100644 index 0000000..9a108cb --- /dev/null +++ b/third_party/crates/anyhow-1.0.104/src/fmt.rs @@ -0,0 +1,158 @@ +use crate::chain::Chain; +use crate::error::ErrorImpl; +use crate::ptr::Ref; +use core::fmt::{self, Debug, Write}; + +impl ErrorImpl { + pub(crate) unsafe fn display(this: Ref, f: &mut fmt::Formatter) -> fmt::Result { + write!(f, "{}", unsafe { Self::error(this) })?; + + if f.alternate() { + let chain = unsafe { Self::chain(this) }; + for cause in chain.skip(1) { + write!(f, ": {}", cause)?; + } + } + + Ok(()) + } + + pub(crate) unsafe fn debug(this: Ref, f: &mut fmt::Formatter) -> fmt::Result { + let error = unsafe { Self::error(this) }; + + if f.alternate() { + return Debug::fmt(error, f); + } + + write!(f, "{}", error)?; + + if let Some(cause) = error.source() { + write!(f, "\n\nCaused by:")?; + let multiple = cause.source().is_some(); + for (n, error) in Chain::new(cause).enumerate() { + writeln!(f)?; + let mut indented = Indented { + inner: f, + number: if multiple { Some(n) } else { None }, + started: false, + }; + write!(indented, "{}", error)?; + } + } + + #[cfg(feature = "std")] + { + use alloc::string::ToString; + use std::backtrace::BacktraceStatus; + + let backtrace = unsafe { Self::backtrace(this) }; + if let BacktraceStatus::Captured = backtrace.status() { + let mut backtrace = backtrace.to_string(); + write!(f, "\n\n")?; + if backtrace.starts_with("stack backtrace:") { + // Capitalize to match "Caused by:" + backtrace.replace_range(0..1, "S"); + } else { + // "stack backtrace:" prefix was removed in + // https://github.com/rust-lang/backtrace-rs/pull/286 + writeln!(f, "Stack backtrace:")?; + } + backtrace.truncate(backtrace.trim_end().len()); + write!(f, "{}", backtrace)?; + } + } + + Ok(()) + } +} + +struct Indented<'a, D> { + inner: &'a mut D, + number: Option, + started: bool, +} + +impl Write for Indented<'_, T> +where + T: Write, +{ + fn write_str(&mut self, s: &str) -> fmt::Result { + for (i, line) in s.split('\n').enumerate() { + if !self.started { + self.started = true; + match self.number { + Some(number) => write!(self.inner, "{: >5}: ", number)?, + None => self.inner.write_str(" ")?, + } + } else if i > 0 { + self.inner.write_char('\n')?; + if self.number.is_some() { + self.inner.write_str(" ")?; + } else { + self.inner.write_str(" ")?; + } + } + + self.inner.write_str(line)?; + } + + Ok(()) + } +} + +#[cfg(test)] +mod tests { + use super::*; + use alloc::string::String; + + #[test] + fn one_digit() { + let input = "verify\nthis"; + let expected = " 2: verify\n this"; + let mut output = String::new(); + + Indented { + inner: &mut output, + number: Some(2), + started: false, + } + .write_str(input) + .unwrap(); + + assert_eq!(expected, output); + } + + #[test] + fn two_digits() { + let input = "verify\nthis"; + let expected = " 12: verify\n this"; + let mut output = String::new(); + + Indented { + inner: &mut output, + number: Some(12), + started: false, + } + .write_str(input) + .unwrap(); + + assert_eq!(expected, output); + } + + #[test] + fn no_digits() { + let input = "verify\nthis"; + let expected = " verify\n this"; + let mut output = String::new(); + + Indented { + inner: &mut output, + number: None, + started: false, + } + .write_str(input) + .unwrap(); + + assert_eq!(expected, output); + } +} diff --git a/third_party/crates/anyhow-1.0.104/src/kind.rs b/third_party/crates/anyhow-1.0.104/src/kind.rs new file mode 100644 index 0000000..a9f40c3 --- /dev/null +++ b/third_party/crates/anyhow-1.0.104/src/kind.rs @@ -0,0 +1,121 @@ +// Tagged dispatch mechanism for resolving the behavior of `anyhow!($expr)`. +// +// When anyhow! is given a single expr argument to turn into anyhow::Error, we +// want the resulting Error to pick up the input's implementation of source() +// and backtrace() if it has a std::error::Error impl, otherwise require nothing +// more than Display and Debug. +// +// Expressed in terms of specialization, we want something like: +// +// trait AnyhowNew { +// fn new(self) -> Error; +// } +// +// impl AnyhowNew for T +// where +// T: Display + Debug + Send + Sync + 'static, +// { +// default fn new(self) -> Error { +// /* no std error impl */ +// } +// } +// +// impl AnyhowNew for T +// where +// T: std::error::Error + Send + Sync + 'static, +// { +// fn new(self) -> Error { +// /* use std error's source() and backtrace() */ +// } +// } +// +// Since specialization is not stable yet, instead we rely on autoref behavior +// of method resolution to perform tagged dispatch. Here we have two traits +// AdhocKind and TraitKind that both have an anyhow_kind() method. AdhocKind is +// implemented whether or not the caller's type has a std error impl, while +// TraitKind is implemented only when a std error impl does exist. The ambiguity +// is resolved by AdhocKind requiring an extra autoref so that it has lower +// precedence. +// +// The anyhow! macro will set up the call in this form: +// +// #[allow(unused_imports)] +// use $crate::__private::{AdhocKind, TraitKind}; +// let error = $msg; +// (&error).anyhow_kind().new(error) + +use crate::Error; +use core::fmt::{Debug, Display}; + +#[cfg(any(feature = "std", not(anyhow_no_core_error)))] +use crate::StdError; +#[cfg(any(feature = "std", not(anyhow_no_core_error)))] +use alloc::boxed::Box; + +pub struct Adhoc; + +#[doc(hidden)] +pub trait AdhocKind: Sized { + #[inline] + fn anyhow_kind(&self) -> Adhoc { + Adhoc + } +} + +impl AdhocKind for &T where T: ?Sized + Display + Debug + Send + Sync + 'static {} + +impl Adhoc { + #[cold] + pub fn new(self, message: M) -> Error + where + M: Display + Debug + Send + Sync + 'static, + { + Error::construct_from_adhoc(message, backtrace!()) + } +} + +pub struct Trait; + +#[doc(hidden)] +pub trait TraitKind: Sized { + #[inline] + fn anyhow_kind(&self) -> Trait { + Trait + } +} + +impl TraitKind for E where E: Into {} + +impl Trait { + #[cold] + pub fn new(self, error: E) -> Error + where + E: Into, + { + error.into() + } +} + +#[cfg(any(feature = "std", not(anyhow_no_core_error)))] +pub struct Boxed; + +#[cfg(any(feature = "std", not(anyhow_no_core_error)))] +#[doc(hidden)] +pub trait BoxedKind: Sized { + #[inline] + fn anyhow_kind(&self) -> Boxed { + Boxed + } +} + +#[cfg(any(feature = "std", not(anyhow_no_core_error)))] +impl BoxedKind for Box {} + +#[cfg(any(feature = "std", not(anyhow_no_core_error)))] +impl Boxed { + #[cold] + pub fn new(self, error: Box) -> Error { + let backtrace = backtrace_if_absent!(&*error); + Error::construct_from_boxed(error, backtrace) + } +} diff --git a/third_party/crates/anyhow-1.0.104/src/lib.rs b/third_party/crates/anyhow-1.0.104/src/lib.rs new file mode 100644 index 0000000..2b5760d --- /dev/null +++ b/third_party/crates/anyhow-1.0.104/src/lib.rs @@ -0,0 +1,728 @@ +//! [![github]](https://github.com/dtolnay/anyhow) [![crates-io]](https://crates.io/crates/anyhow) [![docs-rs]](https://docs.rs/anyhow) +//! +//! [github]: https://img.shields.io/badge/github-8da0cb?style=for-the-badge&labelColor=555555&logo=github +//! [crates-io]: https://img.shields.io/badge/crates.io-fc8d62?style=for-the-badge&labelColor=555555&logo=rust +//! [docs-rs]: https://img.shields.io/badge/docs.rs-66c2a5?style=for-the-badge&labelColor=555555&logo=docs.rs +//! +//!
+//! +//! This library provides [`anyhow::Error`][Error], a trait object based error +//! type for easy idiomatic error handling in Rust applications. +//! +//!
+//! +//! # Details +//! +//! - Use `Result`, or equivalently `anyhow::Result`, as +//! the return type of any fallible function. +//! +//! Within the function, use `?` to easily propagate any error that implements +//! the [`std::error::Error`] trait. +//! +//! ``` +//! # pub trait Deserialize {} +//! # +//! # mod serde_json { +//! # use super::Deserialize; +//! # use std::io; +//! # +//! # pub fn from_str(json: &str) -> io::Result { +//! # unimplemented!() +//! # } +//! # } +//! # +//! # struct ClusterMap; +//! # +//! # impl Deserialize for ClusterMap {} +//! # +//! use anyhow::Result; +//! +//! fn get_cluster_info() -> Result { +//! let config = std::fs::read_to_string("cluster.json")?; +//! let map: ClusterMap = serde_json::from_str(&config)?; +//! Ok(map) +//! } +//! # +//! # fn main() {} +//! ``` +//! +//! - Attach context to help the person troubleshooting the error understand +//! where things went wrong. A low-level error like "No such file or +//! directory" can be annoying to debug without more context about what higher +//! level step the application was in the middle of. +//! +//! ``` +//! # struct It; +//! # +//! # impl It { +//! # fn detach(&self) -> Result<()> { +//! # unimplemented!() +//! # } +//! # } +//! # +//! use anyhow::{Context, Result}; +//! +//! fn main() -> Result<()> { +//! # return Ok(()); +//! # +//! # const _: &str = stringify! { +//! ... +//! # }; +//! # +//! # let it = It; +//! # let path = "./path/to/instrs.json"; +//! # +//! it.detach().context("Failed to detach the important thing")?; +//! +//! let content = std::fs::read(path) +//! .with_context(|| format!("Failed to read instrs from {}", path))?; +//! # +//! # const _: &str = stringify! { +//! ... +//! # }; +//! # +//! # Ok(()) +//! } +//! ``` +//! +//! ```console +//! Error: Failed to read instrs from ./path/to/instrs.json +//! +//! Caused by: +//! No such file or directory (os error 2) +//! ``` +//! +//! - Downcasting is supported and can be by value, by shared reference, or by +//! mutable reference as needed. +//! +//! ``` +//! # use anyhow::anyhow; +//! # use std::fmt::{self, Display}; +//! # use std::task::Poll; +//! # +//! # #[derive(Debug)] +//! # enum DataStoreError { +//! # Censored(()), +//! # } +//! # +//! # impl Display for DataStoreError { +//! # fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result { +//! # unimplemented!() +//! # } +//! # } +//! # +//! # impl std::error::Error for DataStoreError {} +//! # +//! # const REDACTED_CONTENT: () = (); +//! # +//! # let error = anyhow!("..."); +//! # let root_cause = &error; +//! # +//! # let ret = +//! // If the error was caused by redaction, then return a +//! // tombstone instead of the content. +//! match root_cause.downcast_ref::() { +//! Some(DataStoreError::Censored(_)) => Ok(Poll::Ready(REDACTED_CONTENT)), +//! None => Err(error), +//! } +//! # ; +//! ``` +//! +//! - If using Rust ≥ 1.65, a backtrace is captured and printed with the +//! error if the underlying error type does not already provide its own. In +//! order to see backtraces, they must be enabled through the environment +//! variables described in [`std::backtrace`]: +//! +//! - If you want panics and errors to both have backtraces, set +//! `RUST_BACKTRACE=1`; +//! - If you want only errors to have backtraces, set `RUST_LIB_BACKTRACE=1`; +//! - If you want only panics to have backtraces, set `RUST_BACKTRACE=1` and +//! `RUST_LIB_BACKTRACE=0`. +//! +//! [`std::backtrace`]: std::backtrace#environment-variables +//! +//! - Anyhow works with any error type that has an impl of `std::error::Error`, +//! including ones defined in your crate. We do not bundle a `derive(Error)` +//! macro but you can write the impls yourself or use a standalone macro like +//! [thiserror]. +//! +//! [thiserror]: https://github.com/dtolnay/thiserror +//! +//! ``` +//! use thiserror::Error; +//! +//! #[derive(Error, Debug)] +//! pub enum FormatError { +//! #[error("Invalid header (expected {expected:?}, got {found:?})")] +//! InvalidHeader { +//! expected: String, +//! found: String, +//! }, +//! #[error("Missing attribute: {0}")] +//! MissingAttribute(String), +//! } +//! ``` +//! +//! - One-off error messages can be constructed using the `anyhow!` macro, which +//! supports string interpolation and produces an `anyhow::Error`. +//! +//! ``` +//! # use anyhow::{anyhow, Result}; +//! # +//! # fn demo() -> Result<()> { +//! # let missing = "..."; +//! return Err(anyhow!("Missing attribute: {}", missing)); +//! # Ok(()) +//! # } +//! ``` +//! +//! A `bail!` macro is provided as a shorthand for the same early return. +//! +//! ``` +//! # use anyhow::{bail, Result}; +//! # +//! # fn demo() -> Result<()> { +//! # let missing = "..."; +//! bail!("Missing attribute: {}", missing); +//! # Ok(()) +//! # } +//! ``` +//! +//!
+//! +//! # No-std support +//! +//! In no_std mode, almost all of the same API is available and works the same +//! way. To depend on Anyhow in no_std mode, disable our default enabled "std" +//! feature in Cargo.toml. A global allocator is required. +//! +//! ```toml +//! [dependencies] +//! anyhow = { version = "1.0", default-features = false } +//! ``` +//! +//! With versions of Rust older than 1.81, no_std mode may require an additional +//! `.map_err(Error::msg)` when working with a non-Anyhow error type inside a +//! function that returns Anyhow's error type, as the trait that `?`-based error +//! conversions are defined by is only available in std in those old versions. + +#![doc(html_root_url = "https://docs.rs/anyhow/1.0.104")] +#![cfg_attr(error_generic_member_access, feature(error_generic_member_access))] +#![no_std] +#![deny(dead_code, unsafe_op_in_unsafe_fn, unused_imports, unused_mut)] +#![allow( + clippy::doc_markdown, + clippy::elidable_lifetime_names, + clippy::enum_glob_use, + clippy::explicit_auto_deref, + clippy::extra_unused_type_parameters, + clippy::incompatible_msrv, + clippy::let_underscore_untyped, + clippy::missing_errors_doc, + clippy::missing_panics_doc, + clippy::module_name_repetitions, + clippy::must_use_candidate, + clippy::needless_doctest_main, + clippy::needless_lifetimes, + clippy::new_ret_no_self, + clippy::redundant_else, + clippy::return_self_not_must_use, + clippy::struct_field_names, + clippy::uninlined_format_args, + clippy::unused_self, + clippy::used_underscore_binding, + clippy::wildcard_imports, + clippy::wrong_self_convention +)] +#![allow(unknown_lints, mismatched_lifetime_syntaxes)] + +#[cfg(all( + anyhow_nightly_testing, + feature = "std", + not(error_generic_member_access) +))] +compile_error!("Build script probe failed to compile."); + +extern crate alloc; + +#[cfg(feature = "std")] +extern crate std; + +#[macro_use] +mod backtrace; +mod chain; +mod context; +mod ensure; +mod error; +mod fmt; +mod kind; +mod macros; +#[cfg(error_generic_member_access)] +mod nightly; +mod ptr; +mod wrapper; + +use crate::error::ErrorImpl; +use crate::ptr::Own; +use core::fmt::Display; + +#[cfg(all(not(feature = "std"), anyhow_no_core_error))] +use core::fmt::Debug; + +#[cfg(feature = "std")] +use std::error::Error as StdError; + +#[cfg(not(any(feature = "std", anyhow_no_core_error)))] +use core::error::Error as StdError; + +#[cfg(all(not(feature = "std"), anyhow_no_core_error))] +trait StdError: Debug + Display { + fn source(&self) -> Option<&(dyn StdError + 'static)> { + None + } +} + +#[doc(no_inline)] +pub use anyhow as format_err; + +/// The `Error` type, a wrapper around a dynamic error type. +/// +/// `Error` works a lot like `Box`, but with these +/// differences: +/// +/// - `Error` requires that the error is `Send`, `Sync`, and `'static`. +/// - `Error` guarantees that a backtrace is available, even if the underlying +/// error type does not provide one. +/// - `Error` is represented as a narrow pointer — exactly one word in +/// size instead of two. +/// +///
+/// +/// # Display representations +/// +/// When you print an error object using "{}" or to_string(), only the outermost +/// underlying error or context is printed, not any of the lower level causes. +/// This is exactly as if you had called the Display impl of the error from +/// which you constructed your anyhow::Error. +/// +/// ```console +/// Failed to read instrs from ./path/to/instrs.json +/// ``` +/// +/// To print causes as well using anyhow's default formatting of causes, use the +/// alternate selector "{:#}". +/// +/// ```console +/// Failed to read instrs from ./path/to/instrs.json: No such file or directory (os error 2) +/// ``` +/// +/// The Debug format "{:?}" includes your backtrace if one was captured. Note +/// that this is the representation you get by default if you return an error +/// from `fn main` instead of printing it explicitly yourself. +/// +/// ```console +/// Error: Failed to read instrs from ./path/to/instrs.json +/// +/// Caused by: +/// No such file or directory (os error 2) +/// ``` +/// +/// and if there is a backtrace available: +/// +/// ```console +/// Error: Failed to read instrs from ./path/to/instrs.json +/// +/// Caused by: +/// No such file or directory (os error 2) +/// +/// Stack backtrace: +/// 0: ::ext_context +/// at /git/anyhow/src/backtrace.rs:26 +/// 1: core::result::Result::map_err +/// at /git/rustc/src/libcore/result.rs:596 +/// 2: anyhow::context:: for core::result::Result>::with_context +/// at /git/anyhow/src/context.rs:58 +/// 3: testing::main +/// at src/main.rs:5 +/// 4: std::rt::lang_start +/// at /git/rustc/src/libstd/rt.rs:61 +/// 5: main +/// 6: __libc_start_main +/// 7: _start +/// ``` +/// +/// To see a conventional struct-style Debug representation, use "{:#?}". +/// +/// ```console +/// Error { +/// context: "Failed to read instrs from ./path/to/instrs.json", +/// source: Os { +/// code: 2, +/// kind: NotFound, +/// message: "No such file or directory", +/// }, +/// } +/// ``` +/// +/// If none of the built-in representations are appropriate and you would prefer +/// to render the error and its cause chain yourself, it can be done something +/// like this: +/// +/// ``` +/// use anyhow::{Context, Result}; +/// +/// fn main() { +/// if let Err(err) = try_main() { +/// eprintln!("ERROR: {}", err); +/// err.chain().skip(1).for_each(|cause| eprintln!("because: {}", cause)); +/// std::process::exit(1); +/// } +/// } +/// +/// fn try_main() -> Result<()> { +/// # const IGNORE: &str = stringify! { +/// ... +/// # }; +/// # Ok(()) +/// } +/// ``` +#[repr(transparent)] +pub struct Error { + inner: Own, +} + +/// Iterator of a chain of source errors. +/// +/// This type is the iterator returned by [`Error::chain`]. +/// +/// # Example +/// +/// ``` +/// use anyhow::Error; +/// use std::io; +/// +/// pub fn underlying_io_error_kind(error: &Error) -> Option { +/// for cause in error.chain() { +/// if let Some(io_error) = cause.downcast_ref::() { +/// return Some(io_error.kind()); +/// } +/// } +/// None +/// } +/// ``` +#[cfg(any(feature = "std", not(anyhow_no_core_error)))] +#[derive(Clone)] +pub struct Chain<'a> { + state: crate::chain::ChainState<'a>, +} + +/// `Result` +/// +/// This is a reasonable return type to use throughout your application but also +/// for `fn main`; if you do, failures will be printed along with any +/// [context][Context] and a backtrace if one was captured. +/// +/// `anyhow::Result` may be used with one *or* two type parameters. +/// +/// ```rust +/// use anyhow::Result; +/// +/// # const IGNORE: &str = stringify! { +/// fn demo1() -> Result {...} +/// // ^ equivalent to std::result::Result +/// +/// fn demo2() -> Result {...} +/// // ^ equivalent to std::result::Result +/// # }; +/// ``` +/// +/// # Example +/// +/// ``` +/// # pub trait Deserialize {} +/// # +/// # mod serde_json { +/// # use super::Deserialize; +/// # use std::io; +/// # +/// # pub fn from_str(json: &str) -> io::Result { +/// # unimplemented!() +/// # } +/// # } +/// # +/// # #[derive(Debug)] +/// # struct ClusterMap; +/// # +/// # impl Deserialize for ClusterMap {} +/// # +/// use anyhow::Result; +/// +/// fn main() -> Result<()> { +/// # return Ok(()); +/// let config = std::fs::read_to_string("cluster.json")?; +/// let map: ClusterMap = serde_json::from_str(&config)?; +/// println!("cluster info: {:#?}", map); +/// Ok(()) +/// } +/// ``` +pub type Result = core::result::Result; + +/// Provides the `context` method for `Result`. +/// +/// This trait is sealed and cannot be implemented for types outside of +/// `anyhow`. +/// +///
+/// +/// # Example +/// +/// ``` +/// use anyhow::{Context, Result}; +/// use std::fs; +/// use std::path::PathBuf; +/// +/// pub struct ImportantThing { +/// path: PathBuf, +/// } +/// +/// impl ImportantThing { +/// # const IGNORE: &'static str = stringify! { +/// pub fn detach(&mut self) -> Result<()> {...} +/// # }; +/// # fn detach(&mut self) -> Result<()> { +/// # unimplemented!() +/// # } +/// } +/// +/// pub fn do_it(mut it: ImportantThing) -> Result> { +/// it.detach().context("Failed to detach the important thing")?; +/// +/// let path = &it.path; +/// let content = fs::read(path) +/// .with_context(|| format!("Failed to read instrs from {}", path.display()))?; +/// +/// Ok(content) +/// } +/// ``` +/// +/// When printed, the outermost context would be printed first and the lower +/// level underlying causes would be enumerated below. +/// +/// ```console +/// Error: Failed to read instrs from ./path/to/instrs.json +/// +/// Caused by: +/// No such file or directory (os error 2) +/// ``` +/// +/// Refer to the [Display representations] documentation for other forms in +/// which this context chain can be rendered. +/// +/// [Display representations]: Error#display-representations +/// +///
+/// +/// # Effect on downcasting +/// +/// After attaching context of type `C` onto an error of type `E`, the resulting +/// `anyhow::Error` may be downcast to `C` **or** to `E`. +/// +/// That is, in codebases that rely on downcasting, Anyhow's context supports +/// both of the following use cases: +/// +/// - **Attaching context whose type is insignificant onto errors whose type +/// is used in downcasts.** +/// +/// In other error libraries whose context is not designed this way, it can +/// be risky to introduce context to existing code because new context might +/// break existing working downcasts. In Anyhow, any downcast that worked +/// before adding context will continue to work after you add a context, so +/// you should freely add human-readable context to errors wherever it would +/// be helpful. +/// +/// ``` +/// # use anyhow::bail; +/// # use thiserror::Error; +/// # +/// # #[derive(Error, Debug)] +/// # #[error("???")] +/// # struct SuspiciousError; +/// # +/// # fn helper() -> Result<()> { +/// # bail!(SuspiciousError); +/// # } +/// # +/// use anyhow::{Context, Result}; +/// +/// fn do_it() -> Result<()> { +/// helper().context("Failed to complete the work")?; +/// # const IGNORE: &str = stringify! { +/// ... +/// # }; +/// # unreachable!() +/// } +/// +/// fn main() { +/// let err = do_it().unwrap_err(); +/// if let Some(e) = err.downcast_ref::() { +/// // If helper() returned SuspiciousError, this downcast will +/// // correctly succeed even with the context in between. +/// # return; +/// } +/// # panic!("expected downcast to succeed"); +/// } +/// ``` +/// +/// - **Attaching context whose type is used in downcasts onto errors whose +/// type is insignificant.** +/// +/// Some codebases prefer to use machine-readable context to categorize +/// lower level errors in a way that will be actionable to higher levels of +/// the application. +/// +/// ``` +/// # use anyhow::bail; +/// # use thiserror::Error; +/// # +/// # #[derive(Error, Debug)] +/// # #[error("???")] +/// # struct HelperFailed; +/// # +/// # fn helper() -> Result<()> { +/// # bail!("no such file or directory"); +/// # } +/// # +/// use anyhow::{Context, Result}; +/// +/// fn do_it() -> Result<()> { +/// helper().context(HelperFailed)?; +/// # const IGNORE: &str = stringify! { +/// ... +/// # }; +/// # unreachable!() +/// } +/// +/// fn main() { +/// let err = do_it().unwrap_err(); +/// if let Some(e) = err.downcast_ref::() { +/// // If helper failed, this downcast will succeed because +/// // HelperFailed is the context that has been attached to +/// // that error. +/// # return; +/// } +/// # panic!("expected downcast to succeed"); +/// } +/// ``` +pub trait Context: context::private::Sealed { + /// Wrap the error value with additional context. + fn context(self, context: C) -> Result + where + C: Display + Send + Sync + 'static; + + /// Wrap the error value with additional context that is evaluated lazily + /// only once an error does occur. + fn with_context(self, f: F) -> Result + where + C: Display + Send + Sync + 'static, + F: FnOnce() -> C; +} + +/// Equivalent to `Ok::<_, anyhow::Error>(value)`. +/// +/// This simplifies creation of an `anyhow::Result` in places where type +/// inference cannot deduce the `E` type of the result — without needing +/// to write `Ok::<_, anyhow::Error>(value)`. +/// +/// One might think that `anyhow::Result::Ok(value)` would work in such cases +/// but it does not. +/// +/// ```console +/// error[E0282]: type annotations needed for `std::result::Result` +/// --> src/main.rs:11:13 +/// | +/// 11 | let _ = anyhow::Result::Ok(1); +/// | - ^^^^^^^^^^^^^^^^^^ cannot infer type for type parameter `E` declared on the enum `Result` +/// | | +/// | consider giving this pattern the explicit type `std::result::Result`, where the type parameter `E` is specified +/// ``` +#[allow(non_snake_case)] +#[inline] +pub fn Ok(value: T) -> Result { + Result::Ok(value) +} + +// Not public API. Referenced by macro-generated code. +#[doc(hidden)] +pub mod __private { + use self::not::Bool; + use crate::Error; + use alloc::fmt; + use core::fmt::Arguments; + + #[doc(hidden)] + pub use crate::ensure::{BothDebug, NotBothDebug}; + #[doc(hidden)] + pub use alloc::format; + #[doc(hidden)] + pub use core::result::Result::Err; + #[doc(hidden)] + pub use core::{concat, format_args, stringify}; + + #[doc(hidden)] + pub mod kind { + #[doc(hidden)] + pub use crate::kind::{AdhocKind, TraitKind}; + + #[cfg(any(feature = "std", not(anyhow_no_core_error)))] + #[doc(hidden)] + pub use crate::kind::BoxedKind; + } + + #[doc(hidden)] + #[inline] + #[cold] + pub fn format_err(args: Arguments) -> Error { + if let Some(message) = args.as_str() { + // anyhow!("literal"), can downcast to &'static str + Error::msg(message) + } else { + // anyhow!("interpolate {var}"), can downcast to String + Error::msg(fmt::format(args)) + } + } + + #[doc(hidden)] + #[inline] + #[cold] + #[must_use] + pub fn must_use(error: Error) -> Error { + error + } + + #[doc(hidden)] + #[inline] + pub fn not(cond: impl Bool) -> bool { + cond.not() + } + + mod not { + #[doc(hidden)] + pub trait Bool { + fn not(self) -> bool; + } + + impl Bool for bool { + #[inline] + fn not(self) -> bool { + !self + } + } + + impl Bool for &bool { + #[inline] + fn not(self) -> bool { + !*self + } + } + } +} diff --git a/third_party/crates/anyhow-1.0.104/src/macros.rs b/third_party/crates/anyhow-1.0.104/src/macros.rs new file mode 100644 index 0000000..1558de5 --- /dev/null +++ b/third_party/crates/anyhow-1.0.104/src/macros.rs @@ -0,0 +1,245 @@ +/// Return early with an error. +/// +/// This macro is equivalent to +/// return Err([anyhow!($args\...)][anyhow!]). +/// +/// The surrounding function's or closure's return value is required to be +/// Result<_, [anyhow::Error][crate::Error]>. +/// +/// [anyhow!]: crate::anyhow +/// +/// # Example +/// +/// ``` +/// # use anyhow::{bail, Result}; +/// # +/// # fn has_permission(user: usize, resource: usize) -> bool { +/// # true +/// # } +/// # +/// # fn main() -> Result<()> { +/// # let user = 0; +/// # let resource = 0; +/// # +/// if !has_permission(user, resource) { +/// bail!("permission denied for accessing {}", resource); +/// } +/// # Ok(()) +/// # } +/// ``` +/// +/// ``` +/// # use anyhow::{bail, Result}; +/// # use thiserror::Error; +/// # +/// # const MAX_DEPTH: usize = 1; +/// # +/// #[derive(Error, Debug)] +/// enum ScienceError { +/// #[error("recursion limit exceeded")] +/// RecursionLimitExceeded, +/// # #[error("...")] +/// # More = (stringify! { +/// ... +/// # }, 1).1, +/// } +/// +/// # fn main() -> Result<()> { +/// # let depth = 0; +/// # +/// if depth > MAX_DEPTH { +/// bail!(ScienceError::RecursionLimitExceeded); +/// } +/// # Ok(()) +/// # } +/// ``` +#[macro_export] +#[cfg_attr(not(anyhow_no_clippy_format_args), clippy::format_args)] +macro_rules! bail { + ($msg:literal $(,)?) => { + return $crate::__private::Err($crate::__anyhow!($msg)) + }; + ($err:expr $(,)?) => { + return $crate::__private::Err($crate::__anyhow!($err)) + }; + ($fmt:expr, $($arg:tt)*) => { + return $crate::__private::Err($crate::__anyhow!($fmt, $($arg)*)) + }; +} + +macro_rules! __ensure { + ($ensure:item) => { + /// Return early with an error if a condition is not satisfied. + /// + /// This macro is equivalent to + /// if !$cond { return Err([anyhow!($args\...)][anyhow!]); }. + /// + /// The surrounding function's or closure's return value is required to be + /// Result<_, [anyhow::Error][crate::Error]>. + /// + /// Analogously to `assert!`, `ensure!` takes a condition and exits the function + /// if the condition fails. Unlike `assert!`, `ensure!` returns an `Error` + /// rather than panicking. + /// + /// [anyhow!]: crate::anyhow + /// + /// # Example + /// + /// ``` + /// # use anyhow::{ensure, Result}; + /// # + /// # fn main() -> Result<()> { + /// # let user = 0; + /// # + /// ensure!(user == 0, "only user 0 is allowed"); + /// # Ok(()) + /// # } + /// ``` + /// + /// ``` + /// # use anyhow::{ensure, Result}; + /// # use thiserror::Error; + /// # + /// # const MAX_DEPTH: usize = 1; + /// # + /// #[derive(Error, Debug)] + /// enum ScienceError { + /// #[error("recursion limit exceeded")] + /// RecursionLimitExceeded, + /// # #[error("...")] + /// # More = (stringify! { + /// ... + /// # }, 1).1, + /// } + /// + /// # fn main() -> Result<()> { + /// # let depth = 0; + /// # + /// ensure!(depth <= MAX_DEPTH, ScienceError::RecursionLimitExceeded); + /// # Ok(()) + /// # } + /// ``` + $ensure + }; +} + +#[cfg(doc)] +__ensure![ + #[macro_export] + macro_rules! ensure { + ($cond:expr $(,)?) => { + if !$cond { + return $crate::__private::Err($crate::Error::msg( + $crate::__private::concat!("Condition failed: `", $crate::__private::stringify!($cond), "`") + )); + } + }; + ($cond:expr, $msg:literal $(,)?) => { + if !$cond { + return $crate::__private::Err($crate::__anyhow!($msg)); + } + }; + ($cond:expr, $err:expr $(,)?) => { + if !$cond { + return $crate::__private::Err($crate::__anyhow!($err)); + } + }; + ($cond:expr, $fmt:expr, $($arg:tt)*) => { + if !$cond { + return $crate::__private::Err($crate::__anyhow!($fmt, $($arg)*)); + } + }; + } +]; + +#[cfg(not(doc))] +__ensure![ + #[macro_export] + #[cfg_attr(not(anyhow_no_clippy_format_args), clippy::format_args)] + macro_rules! ensure { + ($($tt:tt)*) => { + $crate::__parse_ensure!( + /* state */ 0 + /* stack */ () + /* bail */ ($($tt)*) + /* fuel */ (~~~~~~~~~~ ~~~~~~~~~~ ~~~~~~~~~~ ~~~~~~~~~~ ~~~~~~~~~~ ~~~~~~~~~~ ~~~~~~~~~~ ~~~~~~~~~~ ~~~~~~~~~~ ~~~~~~~~~~ ~~~~~~~~~~ ~~~~~~~~~~) + /* parse */ {()} + /* dup */ ($($tt)*) + /* rest */ $($tt)* + ) + }; + } +]; + +/// Construct an ad-hoc error from a string or existing non-`anyhow` error +/// value. +/// +/// This evaluates to an [`Error`][crate::Error]. It can take either just a +/// string, or a format string with arguments. It also can take any custom type +/// which implements `Debug` and `Display`. +/// +/// If called with a single argument whose type implements `std::error::Error` +/// (in addition to `Debug` and `Display`, which are always required), then that +/// Error impl's `source` is preserved as the `source` of the resulting +/// `anyhow::Error`. +/// +/// # Example +/// +/// ``` +/// # type V = (); +/// # +/// use anyhow::{anyhow, Result}; +/// +/// fn lookup(key: &str) -> Result { +/// if key.len() != 16 { +/// return Err(anyhow!("key length must be 16 characters, got {:?}", key)); +/// } +/// +/// // ... +/// # Ok(()) +/// } +/// ``` +#[macro_export] +#[cfg_attr(not(anyhow_no_clippy_format_args), clippy::format_args)] +macro_rules! anyhow { + ($msg:literal $(,)?) => { + $crate::__private::must_use({ + let error = $crate::__private::format_err($crate::__private::format_args!($msg)); + error + }) + }; + ($err:expr $(,)?) => { + $crate::__private::must_use({ + use $crate::__private::kind::*; + let error = match $err { + error => (&error).anyhow_kind().new(error), + }; + error + }) + }; + ($fmt:expr, $($arg:tt)*) => { + $crate::Error::msg($crate::__private::format!($fmt, $($arg)*)) + }; +} + +// Not public API. This is used in the implementation of some of the other +// macros, in which the must_use call is not needed because the value is known +// to be used. +#[doc(hidden)] +#[macro_export] +macro_rules! __anyhow { + ($msg:literal $(,)?) => ({ + let error = $crate::__private::format_err($crate::__private::format_args!($msg)); + error + }); + ($err:expr $(,)?) => ({ + use $crate::__private::kind::*; + let error = match $err { + error => (&error).anyhow_kind().new(error), + }; + error + }); + ($fmt:expr, $($arg:tt)*) => { + $crate::Error::msg($crate::__private::format!($fmt, $($arg)*)) + }; +} diff --git a/third_party/crates/anyhow-1.0.104/src/nightly.rs b/third_party/crates/anyhow-1.0.104/src/nightly.rs new file mode 100644 index 0000000..125fe36 --- /dev/null +++ b/third_party/crates/anyhow-1.0.104/src/nightly.rs @@ -0,0 +1,58 @@ +// This code exercises the surface area that we expect of the Error generic +// member access API. If the current toolchain is able to compile it, then +// anyhow is able to provide backtrace support. + +#![cfg_attr(anyhow_build_probe, feature(error_generic_member_access))] + +use core::error::{self, Error}; +use std::backtrace::Backtrace; + +pub use core::error::Request; + +#[cfg(anyhow_build_probe)] +const _: () = { + use core::fmt::{self, Debug, Display}; + + struct MyError(Backtrace); + + impl Debug for MyError { + fn fmt(&self, _formatter: &mut fmt::Formatter) -> fmt::Result { + unimplemented!() + } + } + + impl Display for MyError { + fn fmt(&self, _formatter: &mut fmt::Formatter) -> fmt::Result { + unimplemented!() + } + } + + impl Error for MyError { + fn provide<'a>(&'a self, request: &mut Request<'a>) { + provide_ref_backtrace(request, &self.0); + } + } +}; + +// Include in sccache cache key. +#[cfg(anyhow_build_probe)] +const _: Option<&str> = option_env!("RUSTC_BOOTSTRAP"); + +pub fn request_ref_backtrace(err: &dyn Error) -> Option<&Backtrace> { + request_ref::(err) +} + +fn request_ref<'a, T>(err: &'a (impl Error + ?Sized)) -> Option<&'a T> +where + T: 'static + ?Sized, +{ + error::request_ref::(err) +} + +pub fn provide_ref_backtrace<'a>(request: &mut Request<'a>, backtrace: &'a Backtrace) { + Request::provide_ref(request, backtrace); +} + +pub fn provide<'a>(err: &'a (impl Error + ?Sized), request: &mut Request<'a>) { + Error::provide(err, request); +} diff --git a/third_party/crates/anyhow-1.0.104/src/ptr.rs b/third_party/crates/anyhow-1.0.104/src/ptr.rs new file mode 100644 index 0000000..4d6b3ab --- /dev/null +++ b/third_party/crates/anyhow-1.0.104/src/ptr.rs @@ -0,0 +1,187 @@ +use alloc::boxed::Box; +use core::marker::PhantomData; +use core::ptr::NonNull; + +#[repr(transparent)] +pub struct Own +where + T: ?Sized, +{ + pub ptr: NonNull, +} + +unsafe impl Send for Own where T: ?Sized {} + +unsafe impl Sync for Own where T: ?Sized {} + +impl Copy for Own where T: ?Sized {} + +impl Clone for Own +where + T: ?Sized, +{ + fn clone(&self) -> Self { + *self + } +} + +impl Own +where + T: ?Sized, +{ + pub fn new(ptr: Box) -> Self { + Own { + ptr: unsafe { NonNull::new_unchecked(Box::into_raw(ptr)) }, + } + } + + pub fn cast(self) -> Own { + Own { + ptr: self.ptr.cast(), + } + } + + pub unsafe fn boxed(self) -> Box { + unsafe { Box::from_raw(self.ptr.as_ptr()) } + } + + pub fn by_ref(&self) -> Ref { + Ref { + ptr: self.ptr, + lifetime: PhantomData, + } + } + + pub fn by_mut(&mut self) -> Mut { + Mut { + ptr: self.ptr, + lifetime: PhantomData, + } + } +} + +#[repr(transparent)] +pub struct Ref<'a, T> +where + T: ?Sized, +{ + pub ptr: NonNull, + lifetime: PhantomData<&'a T>, +} + +impl<'a, T> Copy for Ref<'a, T> where T: ?Sized {} + +impl<'a, T> Clone for Ref<'a, T> +where + T: ?Sized, +{ + fn clone(&self) -> Self { + *self + } +} + +impl<'a, T> Ref<'a, T> +where + T: ?Sized, +{ + pub fn new(ptr: &'a T) -> Self { + Ref { + ptr: NonNull::from(ptr), + lifetime: PhantomData, + } + } + + pub fn from_raw(ptr: NonNull) -> Self { + Ref { + ptr, + lifetime: PhantomData, + } + } + + pub fn cast(self) -> Ref<'a, U::Target> { + Ref { + ptr: self.ptr.cast(), + lifetime: PhantomData, + } + } + + pub fn by_mut(self) -> Mut<'a, T> { + Mut { + ptr: self.ptr, + lifetime: PhantomData, + } + } + + pub fn as_ptr(self) -> *const T { + self.ptr.as_ptr().cast_const() + } + + pub unsafe fn deref(self) -> &'a T { + unsafe { &*self.ptr.as_ptr() } + } +} + +#[repr(transparent)] +pub struct Mut<'a, T> +where + T: ?Sized, +{ + pub ptr: NonNull, + lifetime: PhantomData<&'a mut T>, +} + +impl<'a, T> Copy for Mut<'a, T> where T: ?Sized {} + +impl<'a, T> Clone for Mut<'a, T> +where + T: ?Sized, +{ + fn clone(&self) -> Self { + *self + } +} + +impl<'a, T> Mut<'a, T> +where + T: ?Sized, +{ + pub fn cast(self) -> Mut<'a, U::Target> { + Mut { + ptr: self.ptr.cast(), + lifetime: PhantomData, + } + } + + pub fn by_ref(self) -> Ref<'a, T> { + Ref { + ptr: self.ptr, + lifetime: PhantomData, + } + } + + pub fn extend<'b>(self) -> Mut<'b, T> { + Mut { + ptr: self.ptr, + lifetime: PhantomData, + } + } + + pub unsafe fn deref_mut(self) -> &'a mut T { + unsafe { &mut *self.ptr.as_ptr() } + } +} + +impl<'a, T> Mut<'a, T> { + pub unsafe fn read(self) -> T { + unsafe { self.ptr.as_ptr().read() } + } +} + +// Force turbofish on all calls of `.cast::()`. +pub trait CastTo { + type Target; +} + +impl CastTo for T { + type Target = T; +} diff --git a/third_party/crates/anyhow-1.0.104/src/wrapper.rs b/third_party/crates/anyhow-1.0.104/src/wrapper.rs new file mode 100644 index 0000000..bad3ddd --- /dev/null +++ b/third_party/crates/anyhow-1.0.104/src/wrapper.rs @@ -0,0 +1,84 @@ +use crate::StdError; +use core::fmt::{self, Debug, Display}; + +#[cfg(any(feature = "std", not(anyhow_no_core_error)))] +use alloc::boxed::Box; + +#[cfg(error_generic_member_access)] +use crate::nightly::{self, Request}; + +#[repr(transparent)] +pub struct MessageError(pub M); + +impl Debug for MessageError +where + M: Display + Debug, +{ + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + Debug::fmt(&self.0, f) + } +} + +impl Display for MessageError +where + M: Display + Debug, +{ + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + Display::fmt(&self.0, f) + } +} + +impl StdError for MessageError where M: Display + Debug + 'static {} + +#[repr(transparent)] +pub struct DisplayError(pub M); + +impl Debug for DisplayError +where + M: Display, +{ + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + Display::fmt(&self.0, f) + } +} + +impl Display for DisplayError +where + M: Display, +{ + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + Display::fmt(&self.0, f) + } +} + +impl StdError for DisplayError where M: Display + 'static {} + +#[cfg(any(feature = "std", not(anyhow_no_core_error)))] +#[repr(transparent)] +pub struct BoxedError(pub Box); + +#[cfg(any(feature = "std", not(anyhow_no_core_error)))] +impl Debug for BoxedError { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + Debug::fmt(&self.0, f) + } +} + +#[cfg(any(feature = "std", not(anyhow_no_core_error)))] +impl Display for BoxedError { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + Display::fmt(&self.0, f) + } +} + +#[cfg(any(feature = "std", not(anyhow_no_core_error)))] +impl StdError for BoxedError { + fn source(&self) -> Option<&(dyn StdError + 'static)> { + self.0.source() + } + + #[cfg(error_generic_member_access)] + fn provide<'a>(&'a self, request: &mut Request<'a>) { + nightly::provide(&*self.0, request); + } +} diff --git a/third_party/crates/anyhow-1.0.104/tests/common/mod.rs b/third_party/crates/anyhow-1.0.104/tests/common/mod.rs new file mode 100644 index 0000000..fc165a5 --- /dev/null +++ b/third_party/crates/anyhow-1.0.104/tests/common/mod.rs @@ -0,0 +1,14 @@ +use anyhow::{bail, Result}; +use std::io; + +pub fn bail_literal() -> Result<()> { + bail!("oh no!"); +} + +pub fn bail_fmt() -> Result<()> { + bail!("{} {}!", "oh", "no"); +} + +pub fn bail_error() -> Result<()> { + bail!(io::Error::new(io::ErrorKind::Other, "oh no!")); +} diff --git a/third_party/crates/anyhow-1.0.104/tests/compiletest.rs b/third_party/crates/anyhow-1.0.104/tests/compiletest.rs new file mode 100644 index 0000000..23a6a06 --- /dev/null +++ b/third_party/crates/anyhow-1.0.104/tests/compiletest.rs @@ -0,0 +1,7 @@ +#[rustversion::attr(not(nightly), ignore = "requires nightly")] +#[cfg_attr(miri, ignore = "incompatible with miri")] +#[test] +fn ui() { + let t = trybuild::TestCases::new(); + t.compile_fail("tests/ui/*.rs"); +} diff --git a/third_party/crates/anyhow-1.0.104/tests/drop/mod.rs b/third_party/crates/anyhow-1.0.104/tests/drop/mod.rs new file mode 100644 index 0000000..7da4bf5 --- /dev/null +++ b/third_party/crates/anyhow-1.0.104/tests/drop/mod.rs @@ -0,0 +1,53 @@ +#![allow(clippy::module_name_repetitions)] + +use std::error::Error as StdError; +use std::fmt::{self, Display}; +use std::sync::atomic::{AtomicBool, Ordering}; +use std::sync::Arc; + +#[derive(Debug)] +pub struct Flag { + atomic: Arc, +} + +impl Flag { + pub fn new() -> Self { + Flag { + atomic: Arc::new(AtomicBool::new(false)), + } + } + + pub fn get(&self) -> bool { + self.atomic.load(Ordering::Relaxed) + } +} + +#[derive(Debug)] +pub struct DetectDrop { + has_dropped: Flag, +} + +impl DetectDrop { + pub fn new(has_dropped: &Flag) -> Self { + DetectDrop { + has_dropped: Flag { + atomic: Arc::clone(&has_dropped.atomic), + }, + } + } +} + +impl StdError for DetectDrop {} + +impl Display for DetectDrop { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + write!(f, "oh no!") + } +} + +impl Drop for DetectDrop { + fn drop(&mut self) { + let already_dropped = self.has_dropped.atomic.swap(true, Ordering::Relaxed); + assert!(!already_dropped); + } +} diff --git a/third_party/crates/anyhow-1.0.104/tests/test_autotrait.rs b/third_party/crates/anyhow-1.0.104/tests/test_autotrait.rs new file mode 100644 index 0000000..080b3b9 --- /dev/null +++ b/third_party/crates/anyhow-1.0.104/tests/test_autotrait.rs @@ -0,0 +1,34 @@ +#![allow(clippy::extra_unused_type_parameters)] + +use anyhow::Error; +use std::panic::{RefUnwindSafe, UnwindSafe}; + +#[test] +fn test_send() { + fn assert_send() {} + assert_send::(); +} + +#[test] +fn test_sync() { + fn assert_sync() {} + assert_sync::(); +} + +#[test] +fn test_unwind_safe() { + fn assert_unwind_safe() {} + assert_unwind_safe::(); +} + +#[test] +fn test_ref_unwind_safe() { + fn assert_ref_unwind_safe() {} + assert_ref_unwind_safe::(); +} + +#[test] +fn test_unpin() { + fn assert_unpin() {} + assert_unpin::(); +} diff --git a/third_party/crates/anyhow-1.0.104/tests/test_backtrace.rs b/third_party/crates/anyhow-1.0.104/tests/test_backtrace.rs new file mode 100644 index 0000000..938c1c2 --- /dev/null +++ b/third_party/crates/anyhow-1.0.104/tests/test_backtrace.rs @@ -0,0 +1,15 @@ +#![allow(clippy::let_underscore_untyped)] + +#[rustversion::not(nightly)] +#[ignore = "requires nightly"] +#[test] +fn test_backtrace() {} + +#[rustversion::nightly] +#[test] +fn test_backtrace() { + use anyhow::anyhow; + + let error = anyhow!("oh no!"); + let _ = error.backtrace(); +} diff --git a/third_party/crates/anyhow-1.0.104/tests/test_boxed.rs b/third_party/crates/anyhow-1.0.104/tests/test_boxed.rs new file mode 100644 index 0000000..fb1fb13 --- /dev/null +++ b/third_party/crates/anyhow-1.0.104/tests/test_boxed.rs @@ -0,0 +1,45 @@ +#![allow( + // Clippy bug: https://github.com/rust-lang/rust-clippy/issues/7422 + clippy::nonstandard_macro_braces, +)] + +use anyhow::anyhow; +use std::error::Error as StdError; +use std::io; +use thiserror::Error; + +#[derive(Error, Debug)] +#[error("outer")] +struct MyError { + source: io::Error, +} + +#[test] +fn test_boxed_str() { + let error = Box::::from("oh no!"); + let error = anyhow!(error); + assert_eq!("oh no!", error.to_string()); + assert_eq!( + "oh no!", + error + .downcast_ref::>() + .unwrap() + .to_string() + ); +} + +#[test] +fn test_boxed_thiserror() { + let error = MyError { + source: io::Error::new(io::ErrorKind::Other, "oh no!"), + }; + let error = anyhow!(error); + assert_eq!("oh no!", error.source().unwrap().to_string()); +} + +#[test] +fn test_boxed_anyhow() { + let error = anyhow!("oh no!").context("it failed"); + let error = anyhow!(error); + assert_eq!("oh no!", error.source().unwrap().to_string()); +} diff --git a/third_party/crates/anyhow-1.0.104/tests/test_chain.rs b/third_party/crates/anyhow-1.0.104/tests/test_chain.rs new file mode 100644 index 0000000..c8b901a --- /dev/null +++ b/third_party/crates/anyhow-1.0.104/tests/test_chain.rs @@ -0,0 +1,69 @@ +use anyhow::{anyhow, Chain, Error}; + +fn error() -> Error { + anyhow!({ 0 }).context(1).context(2).context(3) +} + +#[test] +fn test_iter() { + let e = error(); + let mut chain = e.chain(); + assert_eq!("3", chain.next().unwrap().to_string()); + assert_eq!("2", chain.next().unwrap().to_string()); + assert_eq!("1", chain.next().unwrap().to_string()); + assert_eq!("0", chain.next().unwrap().to_string()); + assert!(chain.next().is_none()); + assert!(chain.next_back().is_none()); +} + +#[test] +fn test_rev() { + let e = error(); + let mut chain = e.chain().rev(); + assert_eq!("0", chain.next().unwrap().to_string()); + assert_eq!("1", chain.next().unwrap().to_string()); + assert_eq!("2", chain.next().unwrap().to_string()); + assert_eq!("3", chain.next().unwrap().to_string()); + assert!(chain.next().is_none()); + assert!(chain.next_back().is_none()); +} + +#[test] +fn test_len() { + let e = error(); + let mut chain = e.chain(); + assert_eq!(4, chain.len()); + assert_eq!((4, Some(4)), chain.size_hint()); + assert_eq!("3", chain.next().unwrap().to_string()); + assert_eq!(3, chain.len()); + assert_eq!((3, Some(3)), chain.size_hint()); + assert_eq!("0", chain.next_back().unwrap().to_string()); + assert_eq!(2, chain.len()); + assert_eq!((2, Some(2)), chain.size_hint()); + assert_eq!("2", chain.next().unwrap().to_string()); + assert_eq!(1, chain.len()); + assert_eq!((1, Some(1)), chain.size_hint()); + assert_eq!("1", chain.next_back().unwrap().to_string()); + assert_eq!(0, chain.len()); + assert_eq!((0, Some(0)), chain.size_hint()); + assert!(chain.next().is_none()); +} + +#[test] +fn test_default() { + let mut c = Chain::default(); + assert!(c.next().is_none()); +} + +#[test] +#[allow(clippy::redundant_clone)] +fn test_clone() { + let e = error(); + let mut chain = e.chain().clone(); + assert_eq!("3", chain.next().unwrap().to_string()); + assert_eq!("2", chain.next().unwrap().to_string()); + assert_eq!("1", chain.next().unwrap().to_string()); + assert_eq!("0", chain.next().unwrap().to_string()); + assert!(chain.next().is_none()); + assert!(chain.next_back().is_none()); +} diff --git a/third_party/crates/anyhow-1.0.104/tests/test_context.rs b/third_party/crates/anyhow-1.0.104/tests/test_context.rs new file mode 100644 index 0000000..3496a07 --- /dev/null +++ b/third_party/crates/anyhow-1.0.104/tests/test_context.rs @@ -0,0 +1,195 @@ +#![allow( + // Clippy bug: https://github.com/rust-lang/rust-clippy/issues/7422 + clippy::nonstandard_macro_braces, +)] + +mod drop; + +use crate::drop::{DetectDrop, Flag}; +use anyhow::{Context, Error, Result}; +use std::fmt::{self, Display}; +use thiserror::Error; + +// https://github.com/dtolnay/anyhow/issues/18 +#[test] +fn test_inference() -> Result<()> { + let x = "1"; + let y: u32 = x.parse().context("...")?; + assert_eq!(y, 1); + Ok(()) +} + +macro_rules! context_type { + ($name:ident) => { + #[derive(Debug)] + struct $name { + message: &'static str, + #[allow(dead_code)] + drop: DetectDrop, + } + + impl Display for $name { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + f.write_str(self.message) + } + } + }; +} + +context_type!(HighLevel); +context_type!(MidLevel); + +#[derive(Error, Debug)] +#[error("{message}")] +struct LowLevel { + message: &'static str, + drop: DetectDrop, +} + +struct Dropped { + low: Flag, + mid: Flag, + high: Flag, +} + +impl Dropped { + fn none(&self) -> bool { + !self.low.get() && !self.mid.get() && !self.high.get() + } + + fn all(&self) -> bool { + self.low.get() && self.mid.get() && self.high.get() + } +} + +fn make_chain() -> (Error, Dropped) { + let dropped = Dropped { + low: Flag::new(), + mid: Flag::new(), + high: Flag::new(), + }; + + let low = LowLevel { + message: "no such file or directory", + drop: DetectDrop::new(&dropped.low), + }; + + // impl Context for Result + let mid = Err::<(), LowLevel>(low) + .context(MidLevel { + message: "failed to load config", + drop: DetectDrop::new(&dropped.mid), + }) + .unwrap_err(); + + // impl Context for Result + let high = Err::<(), Error>(mid) + .context(HighLevel { + message: "failed to start server", + drop: DetectDrop::new(&dropped.high), + }) + .unwrap_err(); + + (high, dropped) +} + +#[test] +fn test_downcast_ref() { + let (err, dropped) = make_chain(); + + assert!(!err.is::()); + assert!(err.downcast_ref::().is_none()); + + assert!(err.is::()); + let high = err.downcast_ref::().unwrap(); + assert_eq!(high.to_string(), "failed to start server"); + + assert!(err.is::()); + let mid = err.downcast_ref::().unwrap(); + assert_eq!(mid.to_string(), "failed to load config"); + + assert!(err.is::()); + let low = err.downcast_ref::().unwrap(); + assert_eq!(low.to_string(), "no such file or directory"); + + assert!(dropped.none()); + drop(err); + assert!(dropped.all()); +} + +#[test] +fn test_downcast_high() { + let (err, dropped) = make_chain(); + + let err = err.downcast::().unwrap(); + assert!(!dropped.high.get()); + assert!(dropped.low.get() && dropped.mid.get()); + + drop(err); + assert!(dropped.all()); +} + +#[test] +fn test_downcast_mid() { + let (err, dropped) = make_chain(); + + let err = err.downcast::().unwrap(); + assert!(!dropped.mid.get()); + assert!(dropped.low.get() && dropped.high.get()); + + drop(err); + assert!(dropped.all()); +} + +#[test] +fn test_downcast_low() { + let (err, dropped) = make_chain(); + + let err = err.downcast::().unwrap(); + assert!(!dropped.low.get()); + assert!(dropped.mid.get() && dropped.high.get()); + + drop(err); + assert!(dropped.all()); +} + +#[test] +fn test_unsuccessful_downcast() { + let (err, dropped) = make_chain(); + + let err = err.downcast::().unwrap_err(); + assert!(dropped.none()); + + drop(err); + assert!(dropped.all()); +} + +#[test] +fn test_downcast_mut() { + let (mut err, dropped) = make_chain(); + + err.downcast_mut::().unwrap().message = "high context"; + err.downcast_mut::().unwrap().message = "mid context"; + err.downcast_mut::().unwrap().message = "low error"; + + assert_eq!( + err.downcast_ref::().unwrap().message, + "high context", + ); + assert_eq!( + err.downcast_ref::().unwrap().message, + "mid context", + ); + assert_eq!(err.downcast_ref::().unwrap().message, "low error"); + + assert!(dropped.none()); + drop(err); + assert!(dropped.all()); +} + +#[test] +fn test_root_cause() { + let (err, _) = make_chain(); + + assert_eq!(err.root_cause().to_string(), "no such file or directory"); +} diff --git a/third_party/crates/anyhow-1.0.104/tests/test_convert.rs b/third_party/crates/anyhow-1.0.104/tests/test_convert.rs new file mode 100644 index 0000000..6da171d --- /dev/null +++ b/third_party/crates/anyhow-1.0.104/tests/test_convert.rs @@ -0,0 +1,46 @@ +#![allow(clippy::unnecessary_wraps)] + +mod drop; + +use self::drop::{DetectDrop, Flag}; +use anyhow::{Error, Result}; +use std::error::Error as StdError; + +#[test] +fn test_convert() { + let has_dropped = Flag::new(); + let error = Error::new(DetectDrop::new(&has_dropped)); + let box_dyn = Box::::from(error); + assert_eq!("oh no!", box_dyn.to_string()); + drop(box_dyn); + assert!(has_dropped.get()); +} + +#[test] +fn test_convert_send() { + let has_dropped = Flag::new(); + let error = Error::new(DetectDrop::new(&has_dropped)); + let box_dyn = Box::::from(error); + assert_eq!("oh no!", box_dyn.to_string()); + drop(box_dyn); + assert!(has_dropped.get()); +} + +#[test] +fn test_convert_send_sync() { + let has_dropped = Flag::new(); + let error = Error::new(DetectDrop::new(&has_dropped)); + let box_dyn = Box::::from(error); + assert_eq!("oh no!", box_dyn.to_string()); + drop(box_dyn); + assert!(has_dropped.get()); +} + +#[test] +fn test_question_mark() -> Result<(), Box> { + fn f() -> Result<()> { + Ok(()) + } + f()?; + Ok(()) +} diff --git a/third_party/crates/anyhow-1.0.104/tests/test_downcast.rs b/third_party/crates/anyhow-1.0.104/tests/test_downcast.rs new file mode 100644 index 0000000..b4470d5 --- /dev/null +++ b/third_party/crates/anyhow-1.0.104/tests/test_downcast.rs @@ -0,0 +1,123 @@ +#![allow(clippy::assertions_on_result_states, clippy::wildcard_imports)] + +mod common; +mod drop; + +use self::common::*; +use self::drop::{DetectDrop, Flag}; +use anyhow::Error; +use std::error::Error as StdError; +use std::fmt::{self, Display}; +use std::io; + +#[test] +fn test_downcast() { + assert_eq!( + "oh no!", + bail_literal().unwrap_err().downcast::<&str>().unwrap(), + ); + assert_eq!( + "oh no!", + bail_fmt().unwrap_err().downcast::().unwrap(), + ); + assert_eq!( + "oh no!", + bail_error() + .unwrap_err() + .downcast::() + .unwrap() + .to_string(), + ); +} + +#[test] +fn test_downcast_ref() { + assert_eq!( + "oh no!", + *bail_literal().unwrap_err().downcast_ref::<&str>().unwrap(), + ); + assert_eq!( + "oh no!", + bail_fmt().unwrap_err().downcast_ref::().unwrap(), + ); + assert_eq!( + "oh no!", + bail_error() + .unwrap_err() + .downcast_ref::() + .unwrap() + .to_string(), + ); +} + +#[test] +fn test_downcast_mut() { + assert_eq!( + "oh no!", + *bail_literal().unwrap_err().downcast_mut::<&str>().unwrap(), + ); + assert_eq!( + "oh no!", + bail_fmt().unwrap_err().downcast_mut::().unwrap(), + ); + assert_eq!( + "oh no!", + bail_error() + .unwrap_err() + .downcast_mut::() + .unwrap() + .to_string(), + ); + + let mut bailed = bail_fmt().unwrap_err(); + *bailed.downcast_mut::().unwrap() = "clobber".to_string(); + assert_eq!(bailed.downcast_ref::().unwrap(), "clobber"); + assert_eq!(bailed.downcast_mut::().unwrap(), "clobber"); + assert_eq!(bailed.downcast::().unwrap(), "clobber"); +} + +#[test] +fn test_drop() { + let has_dropped = Flag::new(); + let error = Error::new(DetectDrop::new(&has_dropped)); + drop(error.downcast::().unwrap()); + assert!(has_dropped.get()); +} + +#[test] +fn test_as_ref() { + let error = bail_error().unwrap_err(); + let ref_dyn: &dyn StdError = error.as_ref(); + assert_eq!("oh no!", ref_dyn.to_string()); + let ref_dyn_send_sync: &(dyn StdError + Send + Sync) = error.as_ref(); + assert_eq!("oh no!", ref_dyn_send_sync.to_string()); +} + +#[test] +fn test_large_alignment() { + #[repr(align(64))] + #[derive(Debug)] + struct LargeAlignedError(&'static str); + + impl Display for LargeAlignedError { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + f.write_str(self.0) + } + } + + impl StdError for LargeAlignedError {} + + let error = Error::new(LargeAlignedError("oh no!")); + assert_eq!( + "oh no!", + error.downcast_ref::().unwrap().0 + ); +} + +#[test] +fn test_unsuccessful_downcast() { + let mut error = bail_error().unwrap_err(); + assert!(error.downcast_ref::<&str>().is_none()); + assert!(error.downcast_mut::<&str>().is_none()); + assert!(error.downcast::<&str>().is_err()); +} diff --git a/third_party/crates/anyhow-1.0.104/tests/test_ensure.rs b/third_party/crates/anyhow-1.0.104/tests/test_ensure.rs new file mode 100644 index 0000000..dc95160 --- /dev/null +++ b/third_party/crates/anyhow-1.0.104/tests/test_ensure.rs @@ -0,0 +1,756 @@ +#![allow( + clippy::bool_to_int_with_if, + clippy::char_lit_as_u8, + clippy::deref_addrof, + clippy::diverging_sub_expression, + clippy::erasing_op, + clippy::extra_unused_type_parameters, + clippy::if_same_then_else, + clippy::ifs_same_cond, + clippy::ignored_unit_patterns, + clippy::items_after_statements, + clippy::let_and_return, + clippy::let_underscore_untyped, + clippy::literal_string_with_formatting_args, + clippy::match_bool, + clippy::needless_else, + clippy::never_loop, + clippy::overly_complex_bool_expr, + clippy::ptr_cast_constness, + clippy::redundant_closure_call, + clippy::redundant_pattern_matching, + clippy::too_many_lines, + clippy::uninlined_format_args, + clippy::unit_arg, + clippy::unnecessary_cast, + clippy::while_immutable_condition, + clippy::zero_ptr, + irrefutable_let_patterns +)] + +use self::Enum::Generic; +use anyhow::{anyhow, ensure, Chain, Error, Result}; +use std::fmt::{self, Debug}; +use std::iter; +use std::marker::{PhantomData, PhantomData as P}; +use std::mem; +use std::ops::Add; +use std::ptr; + +struct S; + +impl Add for S { + type Output = bool; + fn add(self, rhs: T) -> Self::Output { + let _ = rhs; + false + } +} + +trait Trait: Sized { + const V: usize = 0; + fn t(self, i: i32) -> i32 { + i + } +} + +impl Trait for T {} + +enum Enum { + #[allow(dead_code)] + Thing(PhantomData), + Generic, +} + +impl PartialEq for Enum { + fn eq(&self, rhs: &Self) -> bool { + mem::discriminant(self) == mem::discriminant(rhs) + } +} + +impl Debug for Enum { + fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result { + formatter.write_str("Generic") + } +} + +#[track_caller] +fn assert_err(result: impl FnOnce() -> Result, expected: &'static str) { + let actual = result().unwrap_err().to_string(); + + // In general different rustc versions will format the interpolated lhs and + // rhs $:expr fragment with insignificant differences in whitespace or + // punctuation, so we check the message in full against nightly and do just + // a cursory test on older toolchains. + if rustversion::cfg!(nightly) && !cfg!(miri) { + assert_eq!(actual, expected); + } else { + assert_eq!(actual.contains(" vs "), expected.contains(" vs ")); + } +} + +#[test] +fn test_recursion() { + // Must not blow the default #[recursion_limit], which is 128. + #[rustfmt::skip] + let test = || Ok(ensure!( + false | false | false | false | false | false | false | false | false | + false | false | false | false | false | false | false | false | false | + false | false | false | false | false | false | false | false | false | + false | false | false | false | false | false | false | false | false | + false | false | false | false | false | false | false | false | false | + false | false | false | false | false | false | false | false | false | + false | false | false | false | false | false | false | false | false + )); + + test().unwrap_err(); +} + +#[test] +fn test_low_precedence_control_flow() { + #[allow(unreachable_code)] + let test = || { + let val = loop { + // Break has lower precedence than the comparison operators so the + // expression here is `S + (break (1 == 1))`. It would be bad if the + // ensure macro partitioned this input into `(S + break 1) == (1)` + // because that means a different thing than what was written. + ensure!(S + break 1 == 1); + }; + Ok(val) + }; + + assert!(test().unwrap()); +} + +#[test] +fn test_low_precedence_binary_operator() { + // Must not partition as `false == (true && false)`. + let test = || Ok(ensure!(false == true && false)); + assert_err(test, "Condition failed: `false == true && false`"); + + // But outside the root level, it is fine. + let test = || Ok(ensure!(while false == true && false {} < ())); + assert_err( + test, + "Condition failed: `while false == true && false {} < ()` (() vs ())", + ); + + let a = 15; + let b = 3; + let test = || Ok(ensure!(a <= b || a - b <= 10)); + assert_err(test, "Condition failed: `a <= b || a - b <= 10`"); +} + +#[test] +fn test_high_precedence_binary_operator() { + let a = 15; + let b = 3; + let test = || Ok(ensure!(a - b <= 10)); + assert_err(test, "Condition failed: `a - b <= 10` (12 vs 10)"); +} + +#[test] +fn test_closure() { + // Must not partition as `(S + move) || (1 == 1)` by treating move as an + // identifier, nor as `(S + move || 1) == (1)` by misinterpreting the + // closure precedence. + let test = || Ok(ensure!(S + move || 1 == 1)); + assert_err(test, "Condition failed: `S + move || 1 == 1`"); + + let test = || Ok(ensure!(S + || 1 == 1)); + assert_err(test, "Condition failed: `S + || 1 == 1`"); + + // Must not partition as `S + ((move | ()) | 1) == 1` by treating those + // pipes as bitwise-or. + let test = || Ok(ensure!(S + move |()| 1 == 1)); + assert_err(test, "Condition failed: `S + move |()| 1 == 1`"); + + let test = || Ok(ensure!(S + |()| 1 == 1)); + assert_err(test, "Condition failed: `S + |()| 1 == 1`"); +} + +#[test] +fn test_unary() { + let mut x = &1; + let test = || Ok(ensure!(*x == 2)); + assert_err(test, "Condition failed: `*x == 2` (1 vs 2)"); + + let test = || Ok(ensure!(!x == 1)); + assert_err(test, "Condition failed: `!x == 1` (-2 vs 1)"); + + let test = || Ok(ensure!(-x == 1)); + assert_err(test, "Condition failed: `-x == 1` (-1 vs 1)"); + + let test = || Ok(ensure!(&x == &&2)); + assert_err(test, "Condition failed: `&x == &&2` (1 vs 2)"); + + let test = || Ok(ensure!(&mut x == *&&mut &2)); + assert_err(test, "Condition failed: `&mut x == *&&mut &2` (1 vs 2)"); +} + +#[rustversion::since(1.82)] +#[test] +fn test_raw_addr() { + let mut x = 1; + let test = || Ok(ensure!(S + &raw const x != S + &raw mut x)); + assert_err( + test, + "Condition failed: `S + &raw const x != S + &raw mut x` (false vs false)", + ); +} + +#[test] +fn test_if() { + #[rustfmt::skip] + let test = || Ok(ensure!(if false {}.t(1) == 2)); + assert_err(test, "Condition failed: `if false {}.t(1) == 2` (1 vs 2)"); + + #[rustfmt::skip] + let test = || Ok(ensure!(if false {} else {}.t(1) == 2)); + assert_err( + test, + "Condition failed: `if false {} else {}.t(1) == 2` (1 vs 2)", + ); + + #[rustfmt::skip] + let test = || Ok(ensure!(if false {} else if false {}.t(1) == 2)); + assert_err( + test, + "Condition failed: `if false {} else if false {}.t(1) == 2` (1 vs 2)", + ); + + #[rustfmt::skip] + let test = || Ok(ensure!(if let 1 = 2 {}.t(1) == 2)); + assert_err( + test, + "Condition failed: `if let 1 = 2 {}.t(1) == 2` (1 vs 2)", + ); + + #[rustfmt::skip] + let test = || Ok(ensure!(if let 1 | 2 = 2 {}.t(1) == 2)); + assert_err( + test, + "Condition failed: `if let 1 | 2 = 2 {}.t(1) == 2` (1 vs 2)", + ); + + #[rustfmt::skip] + let test = || Ok(ensure!(if let | 1 | 2 = 2 {}.t(1) == 2)); + assert_err( + test, + "Condition failed: `if let | 1 | 2 = 2 {}.t(1) == 2` (1 vs 2)", + ); +} + +#[test] +fn test_loop() { + #[rustfmt::skip] + let test = || Ok(ensure!(1 + loop { break 1 } == 1)); + assert_err( + test, + "Condition failed: `1 + loop { break 1 } == 1` (2 vs 1)", + ); + + #[rustfmt::skip] + let test = || Ok(ensure!(1 + 'a: loop { break 'a 1 } == 1)); + assert_err( + test, + "Condition failed: `1 + 'a: loop { break 'a 1 } == 1` (2 vs 1)", + ); + + #[rustfmt::skip] + let test = || Ok(ensure!(while false {}.t(1) == 2)); + assert_err( + test, + "Condition failed: `while false {}.t(1) == 2` (1 vs 2)", + ); + + #[rustfmt::skip] + let test = || Ok(ensure!(while let None = Some(1) {}.t(1) == 2)); + assert_err( + test, + "Condition failed: `while let None = Some(1) {}.t(1) == 2` (1 vs 2)", + ); + + #[rustfmt::skip] + let test = || Ok(ensure!(for _x in iter::once(0) {}.t(1) == 2)); + assert_err( + test, + "Condition failed: `for _x in iter::once(0) {}.t(1) == 2` (1 vs 2)", + ); + + #[rustfmt::skip] + let test = || Ok(ensure!(for | _x in iter::once(0) {}.t(1) == 2)); + assert_err( + test, + "Condition failed: `for | _x in iter::once(0) {}.t(1) == 2` (1 vs 2)", + ); + + #[rustfmt::skip] + let test = || Ok(ensure!(for true | false in iter::empty() {}.t(1) == 2)); + assert_err( + test, + "Condition failed: `for true | false in iter::empty() {}.t(1) == 2` (1 vs 2)", + ); +} + +#[test] +fn test_match() { + #[rustfmt::skip] + let test = || Ok(ensure!(match 1 == 1 { true => 1, false => 0 } == 2)); + assert_err( + test, + "Condition failed: `match 1 == 1 { true => 1, false => 0 } == 2` (1 vs 2)", + ); +} + +#[test] +fn test_atom() { + let test = || Ok(ensure!([false, false].len() > 3)); + assert_err( + test, + "Condition failed: `[false, false].len() > 3` (2 vs 3)", + ); + + #[rustfmt::skip] + let test = || Ok(ensure!({ let x = 1; x } >= 3)); + assert_err(test, "Condition failed: `{ let x = 1; x } >= 3` (1 vs 3)"); + + let test = || Ok(ensure!(S + async { 1 } == true)); + assert_err( + test, + "Condition failed: `S + async { 1 } == true` (false vs true)", + ); + + let test = || Ok(ensure!(S + async move { 1 } == true)); + assert_err( + test, + "Condition failed: `S + async move { 1 } == true` (false vs true)", + ); + + let x = &1; + let test = || Ok(ensure!(S + unsafe { ptr::read(x) } == true)); + assert_err( + test, + "Condition failed: `S + unsafe { ptr::read(x) } == true` (false vs true)", + ); +} + +#[test] +fn test_path() { + let test = || Ok(ensure!(crate::S.t(1) == 2)); + assert_err(test, "Condition failed: `crate::S.t(1) == 2` (1 vs 2)"); + + let test = || Ok(ensure!(::anyhow::Error::root_cause.t(1) == 2)); + assert_err( + test, + "Condition failed: `::anyhow::Error::root_cause.t(1) == 2` (1 vs 2)", + ); + + let test = || Ok(ensure!(Error::msg::<&str>.t(1) == 2)); + assert_err( + test, + "Condition failed: `Error::msg::<&str>.t(1) == 2` (1 vs 2)", + ); + + #[rustfmt::skip] + let test = || Ok(ensure!(Error::msg::<&str,>.t(1) == 2)); + assert_err( + test, + "Condition failed: `Error::msg::<&str,>.t(1) == 2` (1 vs 2)", + ); + + let test = || Ok(ensure!(Error::msg::<::Owned>.t(1) == 2)); + assert_err( + test, + "Condition failed: `Error::msg::<::Owned>.t(1) == 2` (1 vs 2)", + ); + + let test = || Ok(ensure!(Chain::<'static>::new.t(1) == 2)); + assert_err( + test, + "Condition failed: `Chain::<'static>::new.t(1) == 2` (1 vs 2)", + ); + + #[rustfmt::skip] + let test = || Ok(ensure!(Chain::<'static,>::new.t(1) == 2)); + assert_err( + test, + "Condition failed: `Chain::<'static,>::new.t(1) == 2` (1 vs 2)", + ); + + fn f() {} + let test = || Ok(ensure!(f::<1>() != ())); + assert_err(test, "Condition failed: `f::<1>() != ()` (() vs ())"); + let test = || Ok(ensure!(f::<-1>() != ())); + assert_err(test, "Condition failed: `f::<-1>() != ()` (() vs ())"); + + fn g() {} + let test = || Ok(ensure!(g::() != ())); + assert_err(test, "Condition failed: `g::() != ()` (() vs ())"); + let test = || Ok(ensure!(g::() != ())); + assert_err(test, "Condition failed: `g::() != ()` (() vs ())"); + + #[derive(PartialOrd, PartialEq, Debug)] + enum E<'a, T> { + #[allow(dead_code)] + T(&'a T), + U, + } + + #[rustfmt::skip] + let test = || Ok(ensure!(E::U::<>>E::U::)); + assert_err(test, "Condition failed: `E::U::<> > E::U::` (U vs U)"); + + #[rustfmt::skip] + let test = || Ok(ensure!(E::U::>E::U)); + assert_err(test, "Condition failed: `E::U:: > E::U` (U vs U)"); + + #[rustfmt::skip] + let test = || Ok(ensure!(E::U::>E::U)); + assert_err(test, "Condition failed: `E::U:: > E::U` (U vs U)"); + + let test = || Ok(ensure!(Generic:: != Generic)); + assert_err( + test, + "Condition failed: `Generic:: != Generic` (Generic vs Generic)", + ); + + let test = || Ok(ensure!(Generic:: != Generic)); + assert_err( + test, + "Condition failed: `Generic:: != Generic` (Generic vs Generic)", + ); + + #[rustfmt::skip] + let test = || { + Ok(ensure!( + Generic:: != Generic + )) + }; + assert_err( + test, + "Condition failed: `Generic:: != Generic` (Generic vs Generic)", + ); +} + +#[test] +fn test_macro() { + let test = || Ok(ensure!(anyhow!("...").to_string().len() <= 1)); + assert_err( + test, + "Condition failed: `anyhow!(\"...\").to_string().len() <= 1` (3 vs 1)", + ); + + let test = || Ok(ensure!(vec![1].len() < 1)); + assert_err(test, "Condition failed: `vec![1].len() < 1` (1 vs 1)"); + + let test = || Ok(ensure!(stringify! {} != "")); + assert_err( + test, + "Condition failed: `stringify! {} != \"\"` (\"\" vs \"\")", + ); +} + +#[test] +fn test_trailer() { + let test = || Ok(ensure!((|| 1)() == 2)); + assert_err(test, "Condition failed: `(|| 1)() == 2` (1 vs 2)"); + + let test = || Ok(ensure!(b"hmm"[1] == b'c')); + assert_err(test, "Condition failed: `b\"hmm\"[1] == b'c'` (109 vs 99)"); + + let test = || Ok(ensure!(PhantomData:: {} != PhantomData)); + assert_err( + test, + "Condition failed: `PhantomData:: {} != PhantomData` (PhantomData vs PhantomData)", + ); + + let result = Ok::<_, Error>(1); + let test = || Ok(ensure!(result? == 2)); + assert_err(test, "Condition failed: `result? == 2` (1 vs 2)"); + + let test = || Ok(ensure!((2, 3).1 == 2)); + assert_err(test, "Condition failed: `(2, 3).1 == 2` (3 vs 2)"); + + #[rustfmt::skip] + let test = || Ok(ensure!((2, (3, 4)). 1.1 == 2)); + assert_err(test, "Condition failed: `(2, (3, 4)).1.1 == 2` (4 vs 2)"); + + let err = anyhow!(""); + let test = || Ok(ensure!(err.is::<&str>() == false)); + assert_err( + test, + "Condition failed: `err.is::<&str>() == false` (true vs false)", + ); + + let test = || Ok(ensure!(err.is::<::Owned>() == true)); + assert_err( + test, + "Condition failed: `err.is::<::Owned>() == true` (false vs true)", + ); +} + +#[test] +fn test_whitespace() { + #[derive(Debug)] + pub struct Point { + #[allow(dead_code)] + pub x: i32, + #[allow(dead_code)] + pub y: i32, + } + + let point = Point { x: 0, y: 0 }; + let test = || Ok(ensure!("" == format!("{:#?}", point))); + assert_err( + test, + "Condition failed: `\"\" == format!(\"{:#?}\", point)`", + ); +} + +#[test] +fn test_too_long() { + let test = || Ok(ensure!("" == "x".repeat(10))); + assert_err( + test, + "Condition failed: `\"\" == \"x\".repeat(10)` (\"\" vs \"xxxxxxxxxx\")", + ); + + let test = || Ok(ensure!("" == "x".repeat(80))); + assert_err(test, "Condition failed: `\"\" == \"x\".repeat(80)`"); +} + +#[test] +fn test_as() { + let test = || Ok(ensure!('\0' as u8 > 1)); + assert_err(test, "Condition failed: `'\\0' as u8 > 1` (0 vs 1)"); + + let test = || Ok(ensure!('\0' as ::std::primitive::u8 > 1)); + assert_err( + test, + "Condition failed: `'\\0' as ::std::primitive::u8 > 1` (0 vs 1)", + ); + + let test = || Ok(ensure!(&[0] as &[i32] == [1])); + assert_err( + test, + "Condition failed: `&[0] as &[i32] == [1]` ([0] vs [1])", + ); + + let test = || Ok(ensure!(0 as *const () as *mut _ == 1 as *mut ())); + assert_err( + test, + "Condition failed: `0 as *const () as *mut _ == 1 as *mut ()` (0x0 vs 0x1)", + ); + + let s = ""; + let test = || Ok(ensure!(s as &str != s)); + assert_err(test, "Condition failed: `s as &str != s` (\"\" vs \"\")"); + + let test = || Ok(ensure!(&s as &&str != &s)); + assert_err(test, "Condition failed: `&s as &&str != &s` (\"\" vs \"\")"); + + let test = || Ok(ensure!(s as &'static str != s)); + assert_err( + test, + "Condition failed: `s as &'static str != s` (\"\" vs \"\")", + ); + + let test = || Ok(ensure!(&s as &&'static str != &s)); + assert_err( + test, + "Condition failed: `&s as &&'static str != &s` (\"\" vs \"\")", + ); + + let m: &mut str = Default::default(); + let test = || Ok(ensure!(m as &mut str != s)); + assert_err( + test, + "Condition failed: `m as &mut str != s` (\"\" vs \"\")", + ); + + let test = || Ok(ensure!(&m as &&mut str != &s)); + assert_err( + test, + "Condition failed: `&m as &&mut str != &s` (\"\" vs \"\")", + ); + + let test = || Ok(ensure!(&m as &&'static mut str != &s)); + assert_err( + test, + "Condition failed: `&m as &&'static mut str != &s` (\"\" vs \"\")", + ); + + let f = || {}; + let test = || Ok(ensure!(f as fn() as usize * 0 != 0)); + assert_err( + test, + "Condition failed: `f as fn() as usize * 0 != 0` (0 vs 0)", + ); + + let test = || Ok(ensure!(f as fn() -> () as usize * 0 != 0)); + assert_err( + test, + "Condition failed: `f as fn() -> () as usize * 0 != 0` (0 vs 0)", + ); + + let test = || Ok(ensure!(f as for<'a> fn() as usize * 0 != 0)); + assert_err( + test, + "Condition failed: `f as for<'a> fn() as usize * 0 != 0` (0 vs 0)", + ); + + let test = || Ok(ensure!(f as unsafe fn() as usize * 0 != 0)); + assert_err( + test, + "Condition failed: `f as unsafe fn() as usize * 0 != 0` (0 vs 0)", + ); + + #[rustfmt::skip] + let test = || Ok(ensure!(f as extern "Rust" fn() as usize * 0 != 0)); + assert_err( + test, + "Condition failed: `f as extern \"Rust\" fn() as usize * 0 != 0` (0 vs 0)", + ); + + extern "C" fn extern_fn() {} + #[rustfmt::skip] + #[allow(missing_abi)] + let test = || Ok(ensure!(extern_fn as extern fn() as usize * 0 != 0)); + assert_err( + test, + "Condition failed: `extern_fn as extern fn() as usize * 0 != 0` (0 vs 0)", + ); + + let f = || -> ! { panic!() }; + let test = || Ok(ensure!(f as fn() -> ! as usize * 0 != 0)); + assert_err( + test, + "Condition failed: `f as fn() -> ! as usize * 0 != 0` (0 vs 0)", + ); + + trait EqDebug: PartialEq + Debug { + type Assoc; + } + + impl EqDebug for S + where + S: PartialEq + Debug, + { + type Assoc = bool; + } + + let test = || Ok(ensure!(&0 as &dyn EqDebug != &0)); + assert_err( + test, + "Condition failed: `&0 as &dyn EqDebug != &0` (0 vs 0)", + ); + + let test = || { + Ok(ensure!( + PhantomData as PhantomData<::Owned> != PhantomData + )) + }; + assert_err( + test, + "Condition failed: `PhantomData as PhantomData<::Owned> != PhantomData` (PhantomData vs PhantomData)", + ); + + macro_rules! int { + (...) => { + u8 + }; + } + + let test = || Ok(ensure!(0 as int!(...) != 0)); + assert_err(test, "Condition failed: `0 as int!(...) != 0` (0 vs 0)"); + + let test = || Ok(ensure!(0 as int![...] != 0)); + assert_err(test, "Condition failed: `0 as int![...] != 0` (0 vs 0)"); + + let test = || Ok(ensure!(0 as int! {...} != 0)); + assert_err(test, "Condition failed: `0 as int! {...} != 0` (0 vs 0)"); +} + +#[test] +fn test_pat() { + let test = || Ok(ensure!(if let ref mut _x @ 0 = 0 { 0 } else { 1 } == 1)); + assert_err( + test, + "Condition failed: `if let ref mut _x @ 0 = 0 { 0 } else { 1 } == 1` (0 vs 1)", + ); + + let test = || Ok(ensure!(if let -1..=1 = 0 { 0 } else { 1 } == 1)); + assert_err( + test, + "Condition failed: `if let -1..=1 = 0 { 0 } else { 1 } == 1` (0 vs 1)", + ); + + let test = || Ok(ensure!(if let &0 = &0 { 0 } else { 1 } == 1)); + assert_err( + test, + "Condition failed: `if let &0 = &0 { 0 } else { 1 } == 1` (0 vs 1)", + ); + + let test = || Ok(ensure!(if let &&0 = &&0 { 0 } else { 1 } == 1)); + assert_err( + test, + "Condition failed: `if let &&0 = &&0 { 0 } else { 1 } == 1` (0 vs 1)", + ); + + let test = || Ok(ensure!(if let &mut 0 = &mut 0 { 0 } else { 1 } == 1)); + assert_err( + test, + "Condition failed: `if let &mut 0 = &mut 0 { 0 } else { 1 } == 1` (0 vs 1)", + ); + + let test = || Ok(ensure!(if let &&mut 0 = &&mut 0 { 0 } else { 1 } == 1)); + assert_err( + test, + "Condition failed: `if let &&mut 0 = &&mut 0 { 0 } else { 1 } == 1` (0 vs 1)", + ); + + let test = || Ok(ensure!(if let (0, 1) = (0, 1) { 0 } else { 1 } == 1)); + assert_err( + test, + "Condition failed: `if let (0, 1) = (0, 1) { 0 } else { 1 } == 1` (0 vs 1)", + ); + + let test = || Ok(ensure!(if let [0] = b"\0" { 0 } else { 1 } == 1)); + assert_err( + test, + "Condition failed: `if let [0] = b\"\\0\" { 0 } else { 1 } == 1` (0 vs 1)", + ); + + let p = PhantomData::; + let test = || Ok(ensure!(if let P:: {} = p { 0 } else { 1 } == 1)); + assert_err( + test, + "Condition failed: `if let P:: {} = p { 0 } else { 1 } == 1` (0 vs 1)", + ); + + let test = || Ok(ensure!(if let ::std::marker::PhantomData = p {} != ())); + assert_err( + test, + "Condition failed: `if let ::std::marker::PhantomData = p {} != ()` (() vs ())", + ); + + let test = || Ok(ensure!(if let ::V = 0 { 0 } else { 1 } == 1)); + assert_err( + test, + "Condition failed: `if let ::V = 0 { 0 } else { 1 } == 1` (0 vs 1)", + ); + + let test = || Ok(ensure!(for _ in iter::once(()) {} != ())); + assert_err( + test, + "Condition failed: `for _ in iter::once(()) {} != ()` (() vs ())", + ); + + let test = || Ok(ensure!(if let stringify!(x) = "x" { 0 } else { 1 } == 1)); + assert_err( + test, + "Condition failed: `if let stringify!(x) = \"x\" { 0 } else { 1 } == 1` (0 vs 1)", + ); +} diff --git a/third_party/crates/anyhow-1.0.104/tests/test_ffi.rs b/third_party/crates/anyhow-1.0.104/tests/test_ffi.rs new file mode 100644 index 0000000..59578af --- /dev/null +++ b/third_party/crates/anyhow-1.0.104/tests/test_ffi.rs @@ -0,0 +1,19 @@ +#![deny(improper_ctypes, improper_ctypes_definitions)] +#![allow(clippy::uninlined_format_args)] + +use anyhow::anyhow; + +#[no_mangle] +pub extern "C" fn anyhow1(err: anyhow::Error) { + println!("{:?}", err); +} + +#[no_mangle] +pub extern "C" fn anyhow2(err: &mut Option) { + *err = Some(anyhow!("ffi error")); +} + +#[no_mangle] +pub extern "C" fn anyhow3() -> Option { + Some(anyhow!("ffi error")) +} diff --git a/third_party/crates/anyhow-1.0.104/tests/test_fmt.rs b/third_party/crates/anyhow-1.0.104/tests/test_fmt.rs new file mode 100644 index 0000000..8206f22 --- /dev/null +++ b/third_party/crates/anyhow-1.0.104/tests/test_fmt.rs @@ -0,0 +1,93 @@ +use anyhow::{bail, Context, Result}; +use std::io; + +fn f() -> Result<()> { + bail!(io::Error::new(io::ErrorKind::PermissionDenied, "oh no!")); +} + +fn g() -> Result<()> { + f().context("f failed") +} + +fn h() -> Result<()> { + g().context("g failed") +} + +const EXPECTED_ALTDISPLAY_F: &str = "oh no!"; + +const EXPECTED_ALTDISPLAY_G: &str = "f failed: oh no!"; + +const EXPECTED_ALTDISPLAY_H: &str = "g failed: f failed: oh no!"; + +const EXPECTED_DEBUG_F: &str = "oh no!"; + +const EXPECTED_DEBUG_G: &str = "\ +f failed + +Caused by: + oh no!\ +"; + +const EXPECTED_DEBUG_H: &str = "\ +g failed + +Caused by: + 0: f failed + 1: oh no!\ +"; + +const EXPECTED_ALTDEBUG_F: &str = "\ +Custom { + kind: PermissionDenied, + error: \"oh no!\", +}\ +"; + +const EXPECTED_ALTDEBUG_G: &str = "\ +Error { + context: \"f failed\", + source: Custom { + kind: PermissionDenied, + error: \"oh no!\", + }, +}\ +"; + +const EXPECTED_ALTDEBUG_H: &str = "\ +Error { + context: \"g failed\", + source: Error { + context: \"f failed\", + source: Custom { + kind: PermissionDenied, + error: \"oh no!\", + }, + }, +}\ +"; + +#[test] +fn test_display() { + assert_eq!("g failed", h().unwrap_err().to_string()); +} + +#[test] +fn test_altdisplay() { + assert_eq!(EXPECTED_ALTDISPLAY_F, format!("{:#}", f().unwrap_err())); + assert_eq!(EXPECTED_ALTDISPLAY_G, format!("{:#}", g().unwrap_err())); + assert_eq!(EXPECTED_ALTDISPLAY_H, format!("{:#}", h().unwrap_err())); +} + +#[test] +fn test_debug() { + assert_eq!(EXPECTED_DEBUG_F, format!("{:?}", f().unwrap_err())); + assert_eq!(EXPECTED_DEBUG_G, format!("{:?}", g().unwrap_err())); + assert_eq!(EXPECTED_DEBUG_H, format!("{:?}", h().unwrap_err())); +} + +#[test] +fn test_altdebug() { + assert_eq!(EXPECTED_ALTDEBUG_F, format!("{:#?}", f().unwrap_err())); + assert_eq!(EXPECTED_ALTDEBUG_G, format!("{:#?}", g().unwrap_err())); + assert_eq!(EXPECTED_ALTDEBUG_H, format!("{:#?}", h().unwrap_err())); +} diff --git a/third_party/crates/anyhow-1.0.104/tests/test_macros.rs b/third_party/crates/anyhow-1.0.104/tests/test_macros.rs new file mode 100644 index 0000000..0689506 --- /dev/null +++ b/third_party/crates/anyhow-1.0.104/tests/test_macros.rs @@ -0,0 +1,97 @@ +#![allow( + clippy::assertions_on_result_states, + clippy::eq_op, + clippy::incompatible_msrv, // https://github.com/rust-lang/rust-clippy/issues/12257 + clippy::items_after_statements, + clippy::match_single_binding, + clippy::needless_pass_by_value, + clippy::shadow_unrelated, + clippy::uninlined_format_args, + clippy::wildcard_imports +)] + +mod common; + +use self::common::*; +use anyhow::{anyhow, ensure, Result}; +use std::cell::Cell; +use std::future; + +#[test] +fn test_messages() { + assert_eq!("oh no!", bail_literal().unwrap_err().to_string()); + assert_eq!("oh no!", bail_fmt().unwrap_err().to_string()); + assert_eq!("oh no!", bail_error().unwrap_err().to_string()); +} + +#[test] +fn test_ensure() { + let f = || { + ensure!(1 + 1 == 2, "This is correct"); + Ok(()) + }; + assert!(f().is_ok()); + + let v = 1; + let f = || { + ensure!(v + v == 2, "This is correct, v: {}", v); + Ok(()) + }; + assert!(f().is_ok()); + + let f = || { + ensure!(v + v == 1, "This is not correct, v: {}", v); + Ok(()) + }; + assert!(f().is_err()); + + let f = || { + ensure!(v + v == 1); + Ok(()) + }; + assert_eq!( + f().unwrap_err().to_string(), + "Condition failed: `v + v == 1` (2 vs 1)", + ); +} + +#[test] +fn test_ensure_nonbool() -> Result<()> { + struct Struct { + condition: bool, + } + + let s = Struct { condition: true }; + match &s { + Struct { condition } => ensure!(condition), // &bool + } + + Ok(()) +} + +#[test] +fn test_temporaries() { + fn require_send_sync(_: impl Send + Sync) {} + + require_send_sync(async { + // If anyhow hasn't dropped any temporary format_args it creates by the + // time it's done evaluating, those will stick around until the + // semicolon, which is on the other side of the await point, making the + // enclosing future non-Send. + future::ready(anyhow!("...")).await; + }); + + fn message(cell: Cell<&str>) -> &str { + cell.get() + } + + require_send_sync(async { + future::ready(anyhow!(message(Cell::new("...")))).await; + }); +} + +#[test] +fn test_brace_escape() { + let err = anyhow!("unterminated ${{..}} expression"); + assert_eq!("unterminated ${..} expression", err.to_string()); +} diff --git a/third_party/crates/anyhow-1.0.104/tests/test_repr.rs b/third_party/crates/anyhow-1.0.104/tests/test_repr.rs new file mode 100644 index 0000000..2976cd8 --- /dev/null +++ b/third_party/crates/anyhow-1.0.104/tests/test_repr.rs @@ -0,0 +1,30 @@ +#![allow(clippy::extra_unused_type_parameters)] + +mod drop; + +use self::drop::{DetectDrop, Flag}; +use anyhow::Error; +use std::mem; + +#[test] +fn test_error_size() { + assert_eq!(mem::size_of::(), mem::size_of::()); +} + +#[test] +fn test_null_pointer_optimization() { + assert_eq!(mem::size_of::>(), mem::size_of::()); +} + +#[test] +fn test_autotraits() { + fn assert() {} + assert::(); +} + +#[test] +fn test_drop() { + let has_dropped = Flag::new(); + drop(Error::new(DetectDrop::new(&has_dropped))); + assert!(has_dropped.get()); +} diff --git a/third_party/crates/anyhow-1.0.104/tests/test_source.rs b/third_party/crates/anyhow-1.0.104/tests/test_source.rs new file mode 100644 index 0000000..018267d --- /dev/null +++ b/third_party/crates/anyhow-1.0.104/tests/test_source.rs @@ -0,0 +1,62 @@ +use anyhow::anyhow; +use std::error::Error as StdError; +use std::fmt::{self, Display}; +use std::io; + +#[derive(Debug)] +enum TestError { + Io(io::Error), +} + +impl Display for TestError { + fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result { + match self { + TestError::Io(e) => Display::fmt(e, formatter), + } + } +} + +impl StdError for TestError { + fn source(&self) -> Option<&(dyn StdError + 'static)> { + match self { + TestError::Io(io) => Some(io), + } + } +} + +#[test] +fn test_literal_source() { + let error = anyhow!("oh no!"); + assert!(error.source().is_none()); +} + +#[test] +fn test_variable_source() { + let msg = "oh no!"; + let error = anyhow!(msg); + assert!(error.source().is_none()); + + let msg = msg.to_owned(); + let error = anyhow!(msg); + assert!(error.source().is_none()); +} + +#[test] +fn test_fmt_source() { + let error = anyhow!("{} {}!", "oh", "no"); + assert!(error.source().is_none()); +} + +#[test] +fn test_io_source() { + let io = io::Error::new(io::ErrorKind::Other, "oh no!"); + let error = anyhow!(TestError::Io(io)); + assert_eq!("oh no!", error.source().unwrap().to_string()); +} + +#[test] +fn test_anyhow_from_anyhow() { + let error = anyhow!("oh no!").context("context"); + let error = anyhow!(error); + assert_eq!("oh no!", error.source().unwrap().to_string()); +} diff --git a/third_party/crates/anyhow-1.0.104/tests/ui/chained-comparison.rs b/third_party/crates/anyhow-1.0.104/tests/ui/chained-comparison.rs new file mode 100644 index 0000000..4521b51 --- /dev/null +++ b/third_party/crates/anyhow-1.0.104/tests/ui/chained-comparison.rs @@ -0,0 +1,8 @@ +use anyhow::{ensure, Result}; + +fn main() -> Result<()> { + // `ensure!` must not partition this into `(false) == (false == true)` + // because Rust doesn't ordinarily allow this form of expression. + ensure!(false == false == true); + Ok(()) +} diff --git a/third_party/crates/anyhow-1.0.104/tests/ui/chained-comparison.stderr b/third_party/crates/anyhow-1.0.104/tests/ui/chained-comparison.stderr new file mode 100644 index 0000000..2a4c665 --- /dev/null +++ b/third_party/crates/anyhow-1.0.104/tests/ui/chained-comparison.stderr @@ -0,0 +1,10 @@ +error: comparison operators cannot be chained + --> tests/ui/chained-comparison.rs:6:19 + | +6 | ensure!(false == false == true); + | ^^ ^^ + | +help: split the comparison into two + | +6 | ensure!(false == false && false == true); + | ++++++++ diff --git a/third_party/crates/anyhow-1.0.104/tests/ui/empty-ensure.rs b/third_party/crates/anyhow-1.0.104/tests/ui/empty-ensure.rs new file mode 100644 index 0000000..139b743 --- /dev/null +++ b/third_party/crates/anyhow-1.0.104/tests/ui/empty-ensure.rs @@ -0,0 +1,6 @@ +use anyhow::{ensure, Result}; + +fn main() -> Result<()> { + ensure!(); + Ok(()) +} diff --git a/third_party/crates/anyhow-1.0.104/tests/ui/empty-ensure.stderr b/third_party/crates/anyhow-1.0.104/tests/ui/empty-ensure.stderr new file mode 100644 index 0000000..bf0229a --- /dev/null +++ b/third_party/crates/anyhow-1.0.104/tests/ui/empty-ensure.stderr @@ -0,0 +1,12 @@ +error: unexpected end of macro invocation + --> tests/ui/empty-ensure.rs:4:5 + | +4 | ensure!(); + | ^^^^^^^^^ missing tokens in macro arguments + | +note: while trying to match meta-variable `$cond:expr` + --> src/ensure.rs + | + | ($cond:expr $(,)?) => { + | ^^^^^^^^^^ + = note: this error originates in the macro `$crate::__parse_ensure` which comes from the expansion of the macro `ensure` (in Nightly builds, run with -Z macro-backtrace for more info) diff --git a/third_party/crates/anyhow-1.0.104/tests/ui/ensure-nonbool.rs b/third_party/crates/anyhow-1.0.104/tests/ui/ensure-nonbool.rs new file mode 100644 index 0000000..c7df4e1 --- /dev/null +++ b/third_party/crates/anyhow-1.0.104/tests/ui/ensure-nonbool.rs @@ -0,0 +1,40 @@ +use anyhow::{ensure, Result}; +use std::ops::{Deref, Not}; + +struct Bool(bool); + +struct DerefBool(bool); + +struct NotBool(bool); + +impl Deref for DerefBool { + type Target = bool; + fn deref(&self) -> &Self::Target { + &self.0 + } +} + +impl Not for NotBool { + type Output = bool; + fn not(self) -> Self::Output { + !self.0 + } +} + +fn main() -> Result<()> { + ensure!("..."); + + let mut s = Bool(true); + match &mut s { + Bool(cond) => ensure!(cond), + } + + let db = DerefBool(true); + ensure!(db); + ensure!(&db); + + let nb = NotBool(true); + ensure!(nb); + + Ok(()) +} diff --git a/third_party/crates/anyhow-1.0.104/tests/ui/ensure-nonbool.stderr b/third_party/crates/anyhow-1.0.104/tests/ui/ensure-nonbool.stderr new file mode 100644 index 0000000..5a4e0ec --- /dev/null +++ b/third_party/crates/anyhow-1.0.104/tests/ui/ensure-nonbool.stderr @@ -0,0 +1,113 @@ +error[E0277]: the trait bound `&str: anyhow::__private::not::Bool` is not satisfied + --> tests/ui/ensure-nonbool.rs:25:13 + | +25 | ensure!("..."); + | --------^^^^^- + | | | + | | the trait `anyhow::__private::not::Bool` is not implemented for `&str` + | required by a bound introduced by this call + | +help: the following other types implement trait `anyhow::__private::not::Bool` + --> src/lib.rs + | + | impl Bool for bool { + | ^^^^^^^^^^^^^^^^^^ `bool` +... + | impl Bool for &bool { + | ^^^^^^^^^^^^^^^^^^^ `&bool` +note: required by a bound in `anyhow::__private::not` + --> src/lib.rs + | + | pub fn not(cond: impl Bool) -> bool { + | ^^^^ required by this bound in `not` + +error[E0277]: the trait bound `&mut bool: anyhow::__private::not::Bool` is not satisfied + --> tests/ui/ensure-nonbool.rs:29:31 + | +29 | Bool(cond) => ensure!(cond), + | --------^^^^- + | | | + | | the trait `anyhow::__private::not::Bool` is not implemented for `&mut bool` + | required by a bound introduced by this call + | + = note: `anyhow::__private::not::Bool` is implemented for `&bool`, but not for `&mut bool` +note: required by a bound in `anyhow::__private::not` + --> src/lib.rs + | + | pub fn not(cond: impl Bool) -> bool { + | ^^^^ required by this bound in `not` +help: consider dereferencing here + | +29 | Bool(cond) => ensure!(*cond), + | + + +error[E0277]: the trait bound `DerefBool: anyhow::__private::not::Bool` is not satisfied + --> tests/ui/ensure-nonbool.rs:33:13 + | +33 | ensure!(db); + | --------^^- + | | | + | | unsatisfied trait bound + | required by a bound introduced by this call + | +help: the trait `anyhow::__private::not::Bool` is not implemented for `DerefBool` + --> tests/ui/ensure-nonbool.rs:6:1 + | + 6 | struct DerefBool(bool); + | ^^^^^^^^^^^^^^^^ +note: required by a bound in `anyhow::__private::not` + --> src/lib.rs + | + | pub fn not(cond: impl Bool) -> bool { + | ^^^^ required by this bound in `not` +help: consider dereferencing here + | +33 | ensure!(*db); + | + + +error[E0277]: the trait bound `&DerefBool: anyhow::__private::not::Bool` is not satisfied + --> tests/ui/ensure-nonbool.rs:34:13 + | +34 | ensure!(&db); + | --------^^^- + | | | + | | the trait `anyhow::__private::not::Bool` is not implemented for `&DerefBool` + | required by a bound introduced by this call + | +note: required by a bound in `anyhow::__private::not` + --> src/lib.rs + | + | pub fn not(cond: impl Bool) -> bool { + | ^^^^ required by this bound in `not` +help: consider dereferencing here + | +34 | ensure!(&*db); + | + + +error[E0277]: the trait bound `NotBool: anyhow::__private::not::Bool` is not satisfied + --> tests/ui/ensure-nonbool.rs:37:13 + | +37 | ensure!(nb); + | --------^^- + | | | + | | unsatisfied trait bound + | required by a bound introduced by this call + | +help: the trait `anyhow::__private::not::Bool` is not implemented for `NotBool` + --> tests/ui/ensure-nonbool.rs:8:1 + | + 8 | struct NotBool(bool); + | ^^^^^^^^^^^^^^ +help: the following other types implement trait `anyhow::__private::not::Bool` + --> src/lib.rs + | + | impl Bool for bool { + | ^^^^^^^^^^^^^^^^^^ `bool` +... + | impl Bool for &bool { + | ^^^^^^^^^^^^^^^^^^^ `&bool` +note: required by a bound in `anyhow::__private::not` + --> src/lib.rs + | + | pub fn not(cond: impl Bool) -> bool { + | ^^^^ required by this bound in `not` diff --git a/third_party/crates/anyhow-1.0.104/tests/ui/must-use.rs b/third_party/crates/anyhow-1.0.104/tests/ui/must-use.rs new file mode 100644 index 0000000..ea4e58f --- /dev/null +++ b/third_party/crates/anyhow-1.0.104/tests/ui/must-use.rs @@ -0,0 +1,11 @@ +#![deny(unused_must_use)] + +use anyhow::anyhow; + +fn main() -> anyhow::Result<()> { + if true { + // meant to write bail! + anyhow!("it failed"); + } + Ok(()) +} diff --git a/third_party/crates/anyhow-1.0.104/tests/ui/must-use.stderr b/third_party/crates/anyhow-1.0.104/tests/ui/must-use.stderr new file mode 100644 index 0000000..b2a3f31 --- /dev/null +++ b/third_party/crates/anyhow-1.0.104/tests/ui/must-use.stderr @@ -0,0 +1,15 @@ +error: unused return value of `anyhow::__private::must_use` that must be used + --> tests/ui/must-use.rs:8:9 + | +8 | anyhow!("it failed"); + | ^^^^^^^^^^^^^^^^^^^^ + | +note: the lint level is defined here + --> tests/ui/must-use.rs:1:9 + | +1 | #![deny(unused_must_use)] + | ^^^^^^^^^^^^^^^ +help: use `let _ = ...` to ignore the resulting value + | +8 | let _ = anyhow!("it failed"); + | +++++++ diff --git a/third_party/crates/anyhow-1.0.104/tests/ui/no-impl.rs b/third_party/crates/anyhow-1.0.104/tests/ui/no-impl.rs new file mode 100644 index 0000000..d2e89af --- /dev/null +++ b/third_party/crates/anyhow-1.0.104/tests/ui/no-impl.rs @@ -0,0 +1,8 @@ +use anyhow::anyhow; + +#[derive(Debug)] +struct Error; + +fn main() { + let _ = anyhow!(Error); +} diff --git a/third_party/crates/anyhow-1.0.104/tests/ui/no-impl.stderr b/third_party/crates/anyhow-1.0.104/tests/ui/no-impl.stderr new file mode 100644 index 0000000..9b584df --- /dev/null +++ b/third_party/crates/anyhow-1.0.104/tests/ui/no-impl.stderr @@ -0,0 +1,32 @@ +error[E0599]: the method `anyhow_kind` exists for reference `&Error`, but its trait bounds were not satisfied + --> tests/ui/no-impl.rs:7:13 + | +4 | struct Error; + | ------------ doesn't satisfy `Error: Into`, `Error: anyhow::kind::TraitKind` or `Error: std::fmt::Display` +... +7 | let _ = anyhow!(Error); + | ^^^^^^^^^^^^^^ method cannot be called on `&Error` due to unsatisfied trait bounds + | + = note: the following trait bounds were not satisfied: + `Error: Into` + which is required by `Error: anyhow::kind::TraitKind` + `Error: std::fmt::Display` + which is required by `&Error: anyhow::kind::AdhocKind` + `&Error: Into` + which is required by `&Error: anyhow::kind::TraitKind` +note: the traits `Into` and `std::fmt::Display` must be implemented + --> $RUST/core/src/fmt/mod.rs + | + | pub trait Display: PointeeSized { + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + | + ::: $RUST/core/src/convert/mod.rs + | + | pub const trait Into: Sized { + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + = help: items from traits can only be used if the trait is implemented and in scope + = note: the following traits define an item `anyhow_kind`, perhaps you need to implement one of them: + candidate #1: `anyhow::kind::AdhocKind` + candidate #2: `anyhow::kind::BoxedKind` + candidate #3: `anyhow::kind::TraitKind` + = note: this error originates in the macro `anyhow` (in Nightly builds, run with -Z macro-backtrace for more info) diff --git a/third_party/crates/anyhow-1.0.104/tests/ui/temporary-value.rs b/third_party/crates/anyhow-1.0.104/tests/ui/temporary-value.rs new file mode 100644 index 0000000..803809b --- /dev/null +++ b/third_party/crates/anyhow-1.0.104/tests/ui/temporary-value.rs @@ -0,0 +1,5 @@ +use anyhow::anyhow; + +fn main() { + let _ = anyhow!(&String::new()); +} diff --git a/third_party/crates/anyhow-1.0.104/tests/ui/temporary-value.stderr b/third_party/crates/anyhow-1.0.104/tests/ui/temporary-value.stderr new file mode 100644 index 0000000..c92ec92 --- /dev/null +++ b/third_party/crates/anyhow-1.0.104/tests/ui/temporary-value.stderr @@ -0,0 +1,15 @@ +error[E0716]: temporary value dropped while borrowed + --> tests/ui/temporary-value.rs:4:22 + | +4 | let _ = anyhow!(&String::new()); + | ---------^^^^^^^^^^^^^- + | | | + | | creates a temporary value which is freed while still in use + | temporary value is freed at the end of this statement + | argument requires that borrow lasts for `'static` + | +note: requirement that the value outlives `'static` introduced here + --> src/kind.rs + | + | M: Display + Debug + Send + Sync + 'static, + | ^^^^^^^ diff --git a/third_party/crates/anyhow-1.0.104/tests/ui/wrong-interpolation.rs b/third_party/crates/anyhow-1.0.104/tests/ui/wrong-interpolation.rs new file mode 100644 index 0000000..b870ca7 --- /dev/null +++ b/third_party/crates/anyhow-1.0.104/tests/ui/wrong-interpolation.rs @@ -0,0 +1,5 @@ +use anyhow::{bail, Result}; + +fn main() -> Result<()> { + bail!("{} not found"); +} diff --git a/third_party/crates/anyhow-1.0.104/tests/ui/wrong-interpolation.stderr b/third_party/crates/anyhow-1.0.104/tests/ui/wrong-interpolation.stderr new file mode 100644 index 0000000..55a2964 --- /dev/null +++ b/third_party/crates/anyhow-1.0.104/tests/ui/wrong-interpolation.stderr @@ -0,0 +1,5 @@ +error: 1 positional argument in format string, but no arguments were given + --> tests/ui/wrong-interpolation.rs:4:12 + | +4 | bail!("{} not found"); + | ^^ diff --git a/third_party/crates/clap-4.6.6/.cargo_vcs_info.json b/third_party/crates/clap-4.6.6/.cargo_vcs_info.json deleted file mode 100644 index 681f652..0000000 --- a/third_party/crates/clap-4.6.6/.cargo_vcs_info.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "git": { - "sha1": "4a622b4340d5e1fffff60c0ecefdc6882f738159" - }, - "path_in_vcs": "" -} \ No newline at end of file diff --git a/third_party/crates/clap-4.6.6/.cargo-checksum.json b/third_party/crates/clap-4.6.7/.cargo-checksum.json similarity index 92% rename from third_party/crates/clap-4.6.6/.cargo-checksum.json rename to third_party/crates/clap-4.6.7/.cargo-checksum.json index 2d98363..e71c83d 100644 --- a/third_party/crates/clap-4.6.6/.cargo-checksum.json +++ b/third_party/crates/clap-4.6.7/.cargo-checksum.json @@ -1 +1 @@ -{"$comment":"This file only protects against accidental modifications. It is not a security mechanism and does not protect against malicious changes.","files":{".cargo_vcs_info.json":"2b46fe57d2ea1153dff7dcf46e46eb876e6ced55a128affc6d6d5a8bf220877b","Cargo.lock":"b77cb6e5800854cff1da689e60f4e6f662539a382c0471f67589975a4371a084","Cargo.toml":"3d66c10336c72ac83e25c034fcdbdee3b829729be1df41e12667baf7a97a4a15","Cargo.toml.orig":"7e6b8047452b97a2ea0b5ab05012d9ff0e6fbf0245fc1f74a7c01abccf02cf7c","LICENSE-APACHE":"c6596eb7be8581c18be736c846fb9173b69eccf6ef94c5135893ec56bd92ba08","LICENSE-MIT":"6efb0476a1cc085077ed49357026d8c173bf33017278ef440f222fb9cbcb66e6","README.md":"6693649b70119a6e7b29164fc6027ad95783744723736c6cc65483a8948a2e0f","examples/README.md":"c5f45032ee7acda0c5f98db456cbf4f9b0362d62dc81218fcf03bcdfbd19af05","examples/cargo-example-derive.md":"66d7455f08a038872f42d9d45f9b47ebbdbf9366fafa16b749ece8ba5bdcfcce","examples/cargo-example-derive.rs":"e4a69cb1260b91ba07252a01ca9dceb3a9e47da44f51250d2ad64ecf1c31bd48","examples/cargo-example.md":"60a1d0f253142de5003a9474b28a5a8324a9860fc646af6309d84594d97356bd","examples/cargo-example.rs":"d8009d4c71e81dd1b21ba6189bef45400d907b32e1e24daa668b2ac53aabaff0","examples/demo.md":"6c00568794ff99007ab0f08bf7e06fe521cb1f2f0fab30c219f16c6f54bf638d","examples/demo.rs":"2b06a625319d9485b22228f25beb344c660c2b2b7f5fb5890b6881bd6c70661f","examples/derive_ref/augment_args.rs":"ebe94d63de696052eae0d742bde0fe1abd3e44e77eb26936c56c2508395f5567","examples/derive_ref/augment_subcommands.rs":"f202fd8a836552c53bb4b33a652b577f254726334f8a72f5fac0526937ab15ef","examples/derive_ref/flatten_hand_args.rs":"d3783fdea6297ffef23939df913ece655670b617f39addfab5147dc217e70fb1","examples/derive_ref/hand_subcommand.rs":"81feef269cb8766a9eb7dcea41a71f52ee5a45c1e959582ad9325b7e33c24ae9","examples/derive_ref/interop_tests.md":"2c86b86447b1a4480ca30a7e7f31c418535302ec7c44da6afef24639f2555d61","examples/escaped-positional-derive.md":"fb4b4351ceb43ef0c25048e8603dab6fdf4391b84e9b3ad9593602fa89abc572","examples/escaped-positional-derive.rs":"f292db181e81031fe29235830caa92892f19472df03a467857450332f87efe74","examples/escaped-positional.md":"b44e23e5706eb815e7875825be815a370f2ba38e41d7998ea762d0ef1fb2ba56","examples/escaped-positional.rs":"51f489f97b9a411870d0b4952189ef84a6fee65adbb9af1c8a2744cd4e416d35","examples/find.md":"441ad59186eca36324d982c1b2ba458354568007cb34fc560516dc68a40ad5fd","examples/find.rs":"e6a8cb0423c3bcc934e42bb08d878c09cf75944478ed28aa20e4bf2d41a7eedc","examples/git-derive.md":"187c2932dfddb2d668e30aef98825e02b15998a008cddd7de896b95846b1fcaa","examples/git-derive.rs":"c1289d154fda298bf23c051a8933da71980c141c23a335b0a898543c2feeb028","examples/git.md":"338e9c22135d13751d7f056ed3370e19eed694385c79d9f5a1e3dc32eeb83165","examples/git.rs":"0bd288eb2f308aef113a13aa76053c6551097ea46d453b12c36e245c4b42f709","examples/multicall-busybox.md":"b8e8a89312e2088b6dd1fac5b5b92266fda9b82c40a650dae2d41b5fcc253594","examples/multicall-busybox.rs":"84159f60d0cbd1bb498ce4a2ba38ba69eb8eb3bac53d477248f387958ff797b7","examples/multicall-hostname.md":"1dedcdcc9927c08cebee11fa01fda7a730f5ddf5227c4902e1eb5ff847a80346","examples/multicall-hostname.rs":"cc58a924dd2e57281f36e30481a1cbc8186952adbf149f9e1e13f9c673614fd9","examples/pacman.md":"16bec4b406341cd8094acecceef7242ae6c997c1712f399ca0bac089698f5a52","examples/pacman.rs":"11c16d16868aa848f6f1ee57ca35e5cfc04309131fe8845c4d94bd364b56a227","examples/repl-derive.rs":"a6be1ff8837d61ba48a10be38e7ca05a2044051fc94075f784531980548cfb2e","examples/repl.rs":"972ed0b06962f9daf20b7cee5dd6dc873fc31747e84bce646c0e057678c653f3","examples/snapshots/pacman.txt":"28996cd12ea8c027f49f0e423b0fad9f481191ea6f600c8e2f32fb4a4b5071e7","examples/tutorial_builder/01_quick.md":"d2a242a6ba832cdb0a2b6f55d428d62e7048f6b7d8d8f4a75f7923da85628ca8","examples/tutorial_builder/01_quick.rs":"904b89a363ee28fc64ae4c55536d3c58db4af1d895e7498604e1a49280e9f723","examples/tutorial_builder/02_app_settings.md":"4e7097deb0eb8e926978ef383b0da4bda33966d4e760ac0d258cd4127a054fba","examples/tutorial_builder/02_app_settings.rs":"95d7f76e34762505a0a76f47125ef00de691bd33e5d54971684576b85d26317a","examples/tutorial_builder/02_apps.md":"3cbc7010e0214d047d98104dadb76ee02ec3c5bba868758e35aebb2fdfd0fa22","examples/tutorial_builder/02_apps.rs":"73740f0f074cbe2ccdb5ab25f642fa8460ab3533f442df97cc7774b5d5aa3c36","examples/tutorial_builder/02_crate.md":"995dc62680b9d7c1983c673bf5775c07ae96175db186b5313c0d614308569ec0","examples/tutorial_builder/02_crate.rs":"b0bdc601133bf9e566231dd6be439d0ce82b6911ca53ae4b5c1b5da62eb2acd8","examples/tutorial_builder/03_01_flag_bool.md":"326d8267ce6fcc62e95fdb19f77bdc959067e41af48c7d6e465c0eafe2db741c","examples/tutorial_builder/03_01_flag_bool.rs":"726990399b0f3b52dd2a9f291bc2af3373e8c29426f4bc3c21d029a90a2fe2d1","examples/tutorial_builder/03_01_flag_count.md":"c34ff091d239f5861a868bda051322774340be9a63dea32cbfabe8c0cc4dfd94","examples/tutorial_builder/03_01_flag_count.rs":"b8ea1c984044cf0c48e047446bf080ba7ff338c58563c98081189d8dad519ce4","examples/tutorial_builder/03_02_option.md":"f436d35a7f2aece1a30f0258f44ae09166fb4faae3b6623beb6a824d2ed234fd","examples/tutorial_builder/03_02_option.rs":"cadd099ad98540b00b595d33cb61ed6e2ae9f2254ab13c2be8b617677b5c8946","examples/tutorial_builder/03_02_option_mult.md":"31930e9dbc407f5cfbb24707388d3abb17e1cd6ea4d8e9f55c15bac8d5d3168c","examples/tutorial_builder/03_02_option_mult.rs":"9dc976300b11a08f9290171ce3d9be8ad175327c28653d07d8179330f028d116","examples/tutorial_builder/03_03_positional.md":"dc2e13cf897e2e2d2b397a1ab739bfd290ec04f437128030eb7f6f609b910be7","examples/tutorial_builder/03_03_positional.rs":"4c77e2102999880b1aa343235f1da1d30a11e2cfb2d2ec9116d6d1944043aa01","examples/tutorial_builder/03_03_positional_mult.md":"f1d03ca58d9ee75ec9a4cc980006a666e2c529ab6f7deaf6bd88b3fbaf09fc07","examples/tutorial_builder/03_03_positional_mult.rs":"d18e891d56ba65345722f8d30570b9e7e27f29aa549d7dd76f81a301f40af6a2","examples/tutorial_builder/03_04_subcommands.md":"aef99bdab98e23b6d12db43286a8f5ee56656e5024ffa6113dde48a15681820c","examples/tutorial_builder/03_04_subcommands.rs":"bfcfa6d89587b171c2604749f72f685eadd6c9b0f4c24039211ab5bf8185d278","examples/tutorial_builder/03_05_default_values.md":"c30c72c85190aaddc06a7c0ed1cf87356eb81f03284b0e9c5f47d4f233d06a00","examples/tutorial_builder/03_05_default_values.rs":"96c8bd0004cf0dc0338851ccf4ae3309ec49e61cc90f41bcf912207eac95ea18","examples/tutorial_builder/03_06_required.md":"7ef4ed0da3d48a49ee2d5e7ded0deb1a810d7a51865027df50b204394be40266","examples/tutorial_builder/03_06_required.rs":"9c22acc4913e769abf8bd687609c8cb7597412d5906294e4611ff7a2d324a4e9","examples/tutorial_builder/04_01_enum.md":"c89cef996c17aa909031233b283349b23427c065b634d43ee82b974f4f28d1c6","examples/tutorial_builder/04_01_enum.rs":"0d2e4179b6189f69713ecabfb52ccfb5aef2639e7544255fce4be55fb8cdcf41","examples/tutorial_builder/04_01_possible.md":"e16ec1ee5e7a67ab040afd4c87c3ebf84e5ab229491b73f3da337160a0dd14bb","examples/tutorial_builder/04_01_possible.rs":"3d781b26d257061b55a957744c2dbd99c1d2346c151230fb18fe5f576d19585c","examples/tutorial_builder/04_02_parse.md":"d02e8e79e96c2def7a2576a5acc06ba539061a221960ce89eeca1a51e52ef317","examples/tutorial_builder/04_02_parse.rs":"fb9f82791717775b7112bc829e950db29277c5b21367d73e322a87f326678fd4","examples/tutorial_builder/04_02_validate.md":"3f9f29b3629f0d20d8ff149ec721ee67a4baad39c12e2e379d472865c6cf682f","examples/tutorial_builder/04_02_validate.rs":"a5c03e60d4e475d23c38b253bcea29a4673f9494f60359a243f09b84c34e5a2a","examples/tutorial_builder/04_03_relations.md":"cfc6a4ee6d6912566773c9c86b92466725e8eb90c5c765d7cb603f2ffd0d911a","examples/tutorial_builder/04_03_relations.rs":"28ddaaaffbec583bafc561891ba28823e69e31b09fecf122a0c46562b7d0d988","examples/tutorial_builder/04_04_custom.md":"11581660afa0679cda9355965cf55e0a282da9184f8d2eec97a415f48878002e","examples/tutorial_builder/04_04_custom.rs":"a7339eaf17fc8f61d1b7df992f880e3bc1998ad3adf73fbfde4855b803b29ddf","examples/tutorial_builder/05_01_assert.rs":"c42469ab8eeaaaab6dcec816459a934fb1380d208b14055d15e3e877b375bb20","examples/tutorial_derive/01_quick.md":"345bbe0689766fd83929826bffc32c9067c8e97c42fb7390db2620931bd27834","examples/tutorial_derive/01_quick.rs":"72d4d18abec6ffff5dec325372e920a7faaa7cdf5f3d68458484944a7dee60d5","examples/tutorial_derive/02_app_settings.md":"7b3ef753653be837d6c7d92c805a8238dd61fce2fc46d58b860c3771dbfec113","examples/tutorial_derive/02_app_settings.rs":"551e752d8baa2aee3b75248ac0476b321a2a3fb28db402c2d26ea3b9990fce45","examples/tutorial_derive/02_apps.md":"166b48034c788304ce9d3f48f91dd7b1b7e18a6d66f689114ba618d79b60cc24","examples/tutorial_derive/02_apps.rs":"b1031c150f39440b04403cfad02c923872acc053c3ca58fdc57c6af4ea44f1fe","examples/tutorial_derive/02_crate.md":"c15606793151791bddf5763f660a913f799303e8de4c1d28334449d0d184681d","examples/tutorial_derive/02_crate.rs":"dad7603268e52fc091f23e5c19042abef601c277851b325fd911bcc60f126281","examples/tutorial_derive/03_01_flag_bool.md":"7ffa235eb4bc61aaa15d63d4301250e2a6635520c02a55aa6294afe6798f39a0","examples/tutorial_derive/03_01_flag_bool.rs":"9eb1ddedc4b682c47dc2043787ca65551e3b7c74052833a6e6c607e795008a7f","examples/tutorial_derive/03_01_flag_count.md":"02e6dc26d00cc82109350ca7910e4962007b91fe82fde1c8b86ae49dc4428a76","examples/tutorial_derive/03_01_flag_count.rs":"5959afc98120dc8d8ca773f1833f7cd0614363704fadce213166bf9ac5b6d116","examples/tutorial_derive/03_02_option.md":"aa79bb542ebc969828c93dd8fd3b4a1295b323a388ca6b7229ccd1c5193c00c8","examples/tutorial_derive/03_02_option.rs":"dc02f859e1ae986e19b788efcc18eb47eee4b33a4c6fe9e1e8d6dd7aca4ada96","examples/tutorial_derive/03_02_option_mult.md":"4241088813da3acd0079dfbcb3dea896388642d7fc0c976a143824da031d17d9","examples/tutorial_derive/03_02_option_mult.rs":"54f9d253860da2ea4affa9632b7b0ffbf2786fdfc6a0e1876ecc685234ed650a","examples/tutorial_derive/03_03_positional.md":"5cc63d71c48ea4680487e481be8f2443da5c802f9800a2d83d245ce93ae4ae0f","examples/tutorial_derive/03_03_positional.rs":"7adb319e393cbb95f240ca3550df6b31c9634163f21c362b0b732320ada82b3a","examples/tutorial_derive/03_03_positional_mult.md":"00e3fc665835a4df1190a5ecb7c854b1259ab2324966d69ac40770cde8e2dd21","examples/tutorial_derive/03_03_positional_mult.rs":"6fd6ff50456fb5aeec5287670c00671c3bc9301f0fbd1c60888db5e121863d8f","examples/tutorial_derive/03_04_subcommands.md":"8f249681987f45ea41242b643d5e5aa9b70cda8d3c562d46508523734be56948","examples/tutorial_derive/03_04_subcommands.rs":"c0765d2269681d5b221ed0404b7443b980a3c72a5f831193c51aba8ae045fa43","examples/tutorial_derive/03_04_subcommands_alt.rs":"0b5b85f339037d805673c0fa0fcdc63499959d27eaeb705a20a25bef2369f452","examples/tutorial_derive/03_05_default_values.md":"b09e17bf0322311801881f53d9b86e5179163d4b05263988a79fd7d2b5c1eb79","examples/tutorial_derive/03_05_default_values.rs":"52b347b338206903d3ad3f7233967d3e7f73b4554d9103dddd41d44ea34e5058","examples/tutorial_derive/03_06_optional.md":"4c1c3d13131e4de68df58efeeecb2f5e5424377756f7e5c335c143d326427642","examples/tutorial_derive/03_06_optional.rs":"836d09e503b6764392250b0b8cbf13b7d9f25151012ea2ad6a4732a24f1208cb","examples/tutorial_derive/04_01_enum.md":"fa1deb854c06f6ca921b53e9fd98eaf8ff0a641095a592552537ed74197ef801","examples/tutorial_derive/04_01_enum.rs":"c9757a342aee558014c30b0758ef5f5359e675ebbb7647571d4b227f4021c184","examples/tutorial_derive/04_02_parse.md":"a87492c5d6fb9817345f67389142282394c525fbeade3a2750b84d949cba1c7e","examples/tutorial_derive/04_02_parse.rs":"532ef1b9dae8a6fca32b49b5b79ddd36b82ab799fed360f4ae2b25122a7b7424","examples/tutorial_derive/04_02_validate.md":"8f83fdf4ccb89550c0df20eef49358cb222ca1a7404c18e3eafed6413c0e1313","examples/tutorial_derive/04_02_validate.rs":"bae539ef173dc8e44101ce17135b7952b9a4850b732e6115e1a3effd683edd20","examples/tutorial_derive/04_03_relations.md":"15172a1e5b056ee30b6ab1fbe848c71d8499b06aa74ce30219275989034c76ac","examples/tutorial_derive/04_03_relations.rs":"47e132f2e7dd69ae4e30df498812fcaf61bc663ac6167300e5c4390a387f573f","examples/tutorial_derive/04_04_custom.md":"f96f4ced9cce7e04e5150c2906cac315bce04a5319cab080917dd976cb815bdc","examples/tutorial_derive/04_04_custom.rs":"a1380fa2a97a8948e46e4746ee6fcb0aa23817eb1849ace397a671fadb693b35","examples/tutorial_derive/05_01_assert.rs":"55f7e86100a95800634b959c5cf25fcb246226e4edd03784bfc1371776d6dda1","examples/typed-derive/builtin.md":"72ce3913fa88fcc23012389e49ce6097a6016fcf6d99f988b8e8e48e802713ad","examples/typed-derive/builtin.rs":"25e5aad18946c72f0e25b222ecbb98cc059eec316ac4ad852221be5d77e783f7","examples/typed-derive/custom.md":"3af3091b8716fc058952c19af5d31181b14d45aa6200ed0a712cf9592a49273c","examples/typed-derive/custom.rs":"9cd05875c71f53f0c895c3b54cda787b4616641da1d9afd08f16da5c4fdf02be","examples/typed-derive/fn_parser.md":"c1f456c157d7ebf686cec9723a2ca4164aa25c5d6120915f83b86597145941cc","examples/typed-derive/fn_parser.rs":"729f75cc2f592f94285378a06c10e27a310063028af7b09a2c6f2b07e270f76e","examples/typed-derive/foreign_crate.rs":"c616a43cd1bb9bfda89d5ac75c65524daa309dec45cc592c937805e7c120a877","examples/typed-derive/implicit.md":"164aaacf8785dbe16b1d7802601aee2d7d4161435dad236c89c424eca921253e","examples/typed-derive/implicit.rs":"062247f6052231559e99bdf46fd1cb5b360846129cfe396f41cb12cc2d5cb1a6","examples/typed-derive/main.rs":"b1a0b3aa0013dec76a773a8c399069aea60f4e493dfb546c3368765d2e79de1b","src/_concepts.rs":"0330af938a6a7b78b4094772f898982d627c79c8cba08f6600ee625a82c51db8","src/_cookbook/cargo_example.rs":"fe7594a5233e9106a159aa1f5d5f0cde0d844356f630d55c78b8ef322327d4e5","src/_cookbook/cargo_example_derive.rs":"badf3e931ef5d5b7f5addc4912aca057ba83ee6302c43d7eeecd1661673fd407","src/_cookbook/escaped_positional.rs":"2789d8fea126355805b29e76b52c6cea4982565014087a46e0d48e4ddfbed7ab","src/_cookbook/escaped_positional_derive.rs":"802d0b672f4ed48152235d4a26a64c97fa921b361177bdd3a1a33cbac96f665d","src/_cookbook/find.rs":"6152ad5df466adc6de56bddb0f01930b4e4db1997fa972b055217cc7d6748a0a","src/_cookbook/git.rs":"372977252a22fc776e3acaa4629e964114ccd6a49b8ef334d2b6646f12e8b5ee","src/_cookbook/git_derive.rs":"4ab7c0197efda06607ca60c2a85ea743aed3494f5fe9e408d935ea0500a345fc","src/_cookbook/mod.rs":"53a00dbec35e6f8f608acf8be550862909f3c2597251c0283702b28f8a247a01","src/_cookbook/multicall_busybox.rs":"56176b4fa15e7a39c433706971d4e68aaf26ddc2a5790078b6dbe722ee13efee","src/_cookbook/multicall_hostname.rs":"907f8decf81ea4d4cbf81639ea4cd2f925eda64d4831454a7656369b65522780","src/_cookbook/pacman.rs":"4df09c7e47de2ba89984cf33634e88f3e94412456af6d9e4dded85bf80101a36","src/_cookbook/repl.rs":"1393209b2cc5c203296d57c5a065b764b4318be7855e48baf16de851e250cf90","src/_cookbook/repl_derive.rs":"99afa5a3cd44fabcce093dc821922eb52721113cf8925c38de6759bda96cb545","src/_cookbook/typed_derive.rs":"d46de8d4b0558809d575eed89ccef179d15330eccac3d66f0ae631be59117aa0","src/_derive/_tutorial.rs":"fee5e06dc487bac2eded1008f167bcc87559f45e2df8bbbeeb5dcba755f6fafa","src/_derive/mod.rs":"f219c6076efd79ffc738ab1c644fe29af5e97c09add2c08951ef10fabf3d3869","src/_faq.rs":"998d5c156930c87a78066ec6db87ac48553e00ce16a7633cc29e7a5684c3321e","src/_features.rs":"e7ba4ed83b9ff2aef65e6773d603a4aaa0eb0ff96bc86dde4360e20385bf2809","src/_tutorial.rs":"03141e466c06faf981568e1511f297e09632b7d5c2494a940f4a87191f02e67c","src/bin/stdio-fixture.rs":"1470aa00f7c2611a09e37f63ed5e7ddba9fe6d9e8406b549234c8a5d6a19a6f1","src/lib.rs":"7973fbe450158a455d40fddc92fddeeaa9867b2d16b48ad72ec4fba64807068b"},"package":"473c7e07f409a8d772161724aa8db6a765a2532a70f9667eeb7b49d3d02fbdca"} \ No newline at end of file +{"$comment":"This file only protects against accidental modifications. It is not a security mechanism and does not protect against malicious changes.","files":{".cargo_vcs_info.json":"f45b8510634b95327d0f120c45521fc784e5cf6e9f9a4aed60cd2ed38bbe6d96","Cargo.lock":"4e70072619fb77400a66e3097ea903f0cf189e2bce22eff82285f1732546dada","Cargo.toml":"4c4829a1a916d2c47e3299ca4c3e607721fc62998d2d3628afc10a85f0a8169a","Cargo.toml.orig":"7ddbfd9cf6ec7bfd6af625d43d79c6d84b1666aec66934222c6f8ff8238f93cd","LICENSE-APACHE":"249fdb6694467dd615b259f7ddde07be3f8ae5a72cecebb0e24f6629af4215fe","LICENSE-MIT":"6efb0476a1cc085077ed49357026d8c173bf33017278ef440f222fb9cbcb66e6","README.md":"6693649b70119a6e7b29164fc6027ad95783744723736c6cc65483a8948a2e0f","examples/README.md":"c5f45032ee7acda0c5f98db456cbf4f9b0362d62dc81218fcf03bcdfbd19af05","examples/cargo-example-derive.md":"66d7455f08a038872f42d9d45f9b47ebbdbf9366fafa16b749ece8ba5bdcfcce","examples/cargo-example-derive.rs":"e4a69cb1260b91ba07252a01ca9dceb3a9e47da44f51250d2ad64ecf1c31bd48","examples/cargo-example.md":"60a1d0f253142de5003a9474b28a5a8324a9860fc646af6309d84594d97356bd","examples/cargo-example.rs":"d8009d4c71e81dd1b21ba6189bef45400d907b32e1e24daa668b2ac53aabaff0","examples/demo.md":"6c00568794ff99007ab0f08bf7e06fe521cb1f2f0fab30c219f16c6f54bf638d","examples/demo.rs":"2b06a625319d9485b22228f25beb344c660c2b2b7f5fb5890b6881bd6c70661f","examples/derive_ref/augment_args.rs":"ebe94d63de696052eae0d742bde0fe1abd3e44e77eb26936c56c2508395f5567","examples/derive_ref/augment_subcommands.rs":"f202fd8a836552c53bb4b33a652b577f254726334f8a72f5fac0526937ab15ef","examples/derive_ref/flatten_hand_args.rs":"d3783fdea6297ffef23939df913ece655670b617f39addfab5147dc217e70fb1","examples/derive_ref/hand_subcommand.rs":"81feef269cb8766a9eb7dcea41a71f52ee5a45c1e959582ad9325b7e33c24ae9","examples/derive_ref/interop_tests.md":"2c86b86447b1a4480ca30a7e7f31c418535302ec7c44da6afef24639f2555d61","examples/escaped-positional-derive.md":"fb4b4351ceb43ef0c25048e8603dab6fdf4391b84e9b3ad9593602fa89abc572","examples/escaped-positional-derive.rs":"f292db181e81031fe29235830caa92892f19472df03a467857450332f87efe74","examples/escaped-positional.md":"b44e23e5706eb815e7875825be815a370f2ba38e41d7998ea762d0ef1fb2ba56","examples/escaped-positional.rs":"51f489f97b9a411870d0b4952189ef84a6fee65adbb9af1c8a2744cd4e416d35","examples/find.md":"441ad59186eca36324d982c1b2ba458354568007cb34fc560516dc68a40ad5fd","examples/find.rs":"cef261978e9c388089ea5a20d9cf900fb6836f5b024090ce6e64f1d68dfd74c5","examples/git-derive.md":"187c2932dfddb2d668e30aef98825e02b15998a008cddd7de896b95846b1fcaa","examples/git-derive.rs":"c1289d154fda298bf23c051a8933da71980c141c23a335b0a898543c2feeb028","examples/git.md":"338e9c22135d13751d7f056ed3370e19eed694385c79d9f5a1e3dc32eeb83165","examples/git.rs":"0bd288eb2f308aef113a13aa76053c6551097ea46d453b12c36e245c4b42f709","examples/multicall-busybox.md":"b8e8a89312e2088b6dd1fac5b5b92266fda9b82c40a650dae2d41b5fcc253594","examples/multicall-busybox.rs":"84159f60d0cbd1bb498ce4a2ba38ba69eb8eb3bac53d477248f387958ff797b7","examples/multicall-hostname.md":"1dedcdcc9927c08cebee11fa01fda7a730f5ddf5227c4902e1eb5ff847a80346","examples/multicall-hostname.rs":"cc58a924dd2e57281f36e30481a1cbc8186952adbf149f9e1e13f9c673614fd9","examples/pacman.md":"16bec4b406341cd8094acecceef7242ae6c997c1712f399ca0bac089698f5a52","examples/pacman.rs":"11c16d16868aa848f6f1ee57ca35e5cfc04309131fe8845c4d94bd364b56a227","examples/repl-derive.rs":"a6be1ff8837d61ba48a10be38e7ca05a2044051fc94075f784531980548cfb2e","examples/repl.rs":"972ed0b06962f9daf20b7cee5dd6dc873fc31747e84bce646c0e057678c653f3","examples/snapshots/pacman.txt":"28996cd12ea8c027f49f0e423b0fad9f481191ea6f600c8e2f32fb4a4b5071e7","examples/tutorial_builder/01_quick.md":"d2a242a6ba832cdb0a2b6f55d428d62e7048f6b7d8d8f4a75f7923da85628ca8","examples/tutorial_builder/01_quick.rs":"904b89a363ee28fc64ae4c55536d3c58db4af1d895e7498604e1a49280e9f723","examples/tutorial_builder/02_app_settings.md":"4e7097deb0eb8e926978ef383b0da4bda33966d4e760ac0d258cd4127a054fba","examples/tutorial_builder/02_app_settings.rs":"95d7f76e34762505a0a76f47125ef00de691bd33e5d54971684576b85d26317a","examples/tutorial_builder/02_apps.md":"3cbc7010e0214d047d98104dadb76ee02ec3c5bba868758e35aebb2fdfd0fa22","examples/tutorial_builder/02_apps.rs":"73740f0f074cbe2ccdb5ab25f642fa8460ab3533f442df97cc7774b5d5aa3c36","examples/tutorial_builder/02_crate.md":"995dc62680b9d7c1983c673bf5775c07ae96175db186b5313c0d614308569ec0","examples/tutorial_builder/02_crate.rs":"b0bdc601133bf9e566231dd6be439d0ce82b6911ca53ae4b5c1b5da62eb2acd8","examples/tutorial_builder/03_01_flag_bool.md":"326d8267ce6fcc62e95fdb19f77bdc959067e41af48c7d6e465c0eafe2db741c","examples/tutorial_builder/03_01_flag_bool.rs":"726990399b0f3b52dd2a9f291bc2af3373e8c29426f4bc3c21d029a90a2fe2d1","examples/tutorial_builder/03_01_flag_count.md":"c34ff091d239f5861a868bda051322774340be9a63dea32cbfabe8c0cc4dfd94","examples/tutorial_builder/03_01_flag_count.rs":"b8ea1c984044cf0c48e047446bf080ba7ff338c58563c98081189d8dad519ce4","examples/tutorial_builder/03_02_option.md":"f436d35a7f2aece1a30f0258f44ae09166fb4faae3b6623beb6a824d2ed234fd","examples/tutorial_builder/03_02_option.rs":"cadd099ad98540b00b595d33cb61ed6e2ae9f2254ab13c2be8b617677b5c8946","examples/tutorial_builder/03_02_option_mult.md":"31930e9dbc407f5cfbb24707388d3abb17e1cd6ea4d8e9f55c15bac8d5d3168c","examples/tutorial_builder/03_02_option_mult.rs":"9dc976300b11a08f9290171ce3d9be8ad175327c28653d07d8179330f028d116","examples/tutorial_builder/03_03_positional.md":"dc2e13cf897e2e2d2b397a1ab739bfd290ec04f437128030eb7f6f609b910be7","examples/tutorial_builder/03_03_positional.rs":"4c77e2102999880b1aa343235f1da1d30a11e2cfb2d2ec9116d6d1944043aa01","examples/tutorial_builder/03_03_positional_mult.md":"f1d03ca58d9ee75ec9a4cc980006a666e2c529ab6f7deaf6bd88b3fbaf09fc07","examples/tutorial_builder/03_03_positional_mult.rs":"d18e891d56ba65345722f8d30570b9e7e27f29aa549d7dd76f81a301f40af6a2","examples/tutorial_builder/03_04_subcommands.md":"aef99bdab98e23b6d12db43286a8f5ee56656e5024ffa6113dde48a15681820c","examples/tutorial_builder/03_04_subcommands.rs":"bfcfa6d89587b171c2604749f72f685eadd6c9b0f4c24039211ab5bf8185d278","examples/tutorial_builder/03_05_default_values.md":"c30c72c85190aaddc06a7c0ed1cf87356eb81f03284b0e9c5f47d4f233d06a00","examples/tutorial_builder/03_05_default_values.rs":"96c8bd0004cf0dc0338851ccf4ae3309ec49e61cc90f41bcf912207eac95ea18","examples/tutorial_builder/03_06_required.md":"7ef4ed0da3d48a49ee2d5e7ded0deb1a810d7a51865027df50b204394be40266","examples/tutorial_builder/03_06_required.rs":"9c22acc4913e769abf8bd687609c8cb7597412d5906294e4611ff7a2d324a4e9","examples/tutorial_builder/04_01_enum.md":"c89cef996c17aa909031233b283349b23427c065b634d43ee82b974f4f28d1c6","examples/tutorial_builder/04_01_enum.rs":"eea573b32aee3c7ccac53407c49f2362a447880f4c85acc1788c3a1ff77f66b9","examples/tutorial_builder/04_01_possible.md":"e16ec1ee5e7a67ab040afd4c87c3ebf84e5ab229491b73f3da337160a0dd14bb","examples/tutorial_builder/04_01_possible.rs":"3d781b26d257061b55a957744c2dbd99c1d2346c151230fb18fe5f576d19585c","examples/tutorial_builder/04_02_parse.md":"d02e8e79e96c2def7a2576a5acc06ba539061a221960ce89eeca1a51e52ef317","examples/tutorial_builder/04_02_parse.rs":"fb9f82791717775b7112bc829e950db29277c5b21367d73e322a87f326678fd4","examples/tutorial_builder/04_02_validate.md":"3f9f29b3629f0d20d8ff149ec721ee67a4baad39c12e2e379d472865c6cf682f","examples/tutorial_builder/04_02_validate.rs":"a5c03e60d4e475d23c38b253bcea29a4673f9494f60359a243f09b84c34e5a2a","examples/tutorial_builder/04_03_relations.md":"cfc6a4ee6d6912566773c9c86b92466725e8eb90c5c765d7cb603f2ffd0d911a","examples/tutorial_builder/04_03_relations.rs":"28ddaaaffbec583bafc561891ba28823e69e31b09fecf122a0c46562b7d0d988","examples/tutorial_builder/04_04_custom.md":"11581660afa0679cda9355965cf55e0a282da9184f8d2eec97a415f48878002e","examples/tutorial_builder/04_04_custom.rs":"a7339eaf17fc8f61d1b7df992f880e3bc1998ad3adf73fbfde4855b803b29ddf","examples/tutorial_builder/05_01_assert.rs":"c42469ab8eeaaaab6dcec816459a934fb1380d208b14055d15e3e877b375bb20","examples/tutorial_derive/01_quick.md":"345bbe0689766fd83929826bffc32c9067c8e97c42fb7390db2620931bd27834","examples/tutorial_derive/01_quick.rs":"72d4d18abec6ffff5dec325372e920a7faaa7cdf5f3d68458484944a7dee60d5","examples/tutorial_derive/02_app_settings.md":"7b3ef753653be837d6c7d92c805a8238dd61fce2fc46d58b860c3771dbfec113","examples/tutorial_derive/02_app_settings.rs":"551e752d8baa2aee3b75248ac0476b321a2a3fb28db402c2d26ea3b9990fce45","examples/tutorial_derive/02_apps.md":"166b48034c788304ce9d3f48f91dd7b1b7e18a6d66f689114ba618d79b60cc24","examples/tutorial_derive/02_apps.rs":"b1031c150f39440b04403cfad02c923872acc053c3ca58fdc57c6af4ea44f1fe","examples/tutorial_derive/02_crate.md":"c15606793151791bddf5763f660a913f799303e8de4c1d28334449d0d184681d","examples/tutorial_derive/02_crate.rs":"dad7603268e52fc091f23e5c19042abef601c277851b325fd911bcc60f126281","examples/tutorial_derive/03_01_flag_bool.md":"7ffa235eb4bc61aaa15d63d4301250e2a6635520c02a55aa6294afe6798f39a0","examples/tutorial_derive/03_01_flag_bool.rs":"9eb1ddedc4b682c47dc2043787ca65551e3b7c74052833a6e6c607e795008a7f","examples/tutorial_derive/03_01_flag_count.md":"02e6dc26d00cc82109350ca7910e4962007b91fe82fde1c8b86ae49dc4428a76","examples/tutorial_derive/03_01_flag_count.rs":"5959afc98120dc8d8ca773f1833f7cd0614363704fadce213166bf9ac5b6d116","examples/tutorial_derive/03_02_option.md":"aa79bb542ebc969828c93dd8fd3b4a1295b323a388ca6b7229ccd1c5193c00c8","examples/tutorial_derive/03_02_option.rs":"dc02f859e1ae986e19b788efcc18eb47eee4b33a4c6fe9e1e8d6dd7aca4ada96","examples/tutorial_derive/03_02_option_mult.md":"4241088813da3acd0079dfbcb3dea896388642d7fc0c976a143824da031d17d9","examples/tutorial_derive/03_02_option_mult.rs":"54f9d253860da2ea4affa9632b7b0ffbf2786fdfc6a0e1876ecc685234ed650a","examples/tutorial_derive/03_03_positional.md":"5cc63d71c48ea4680487e481be8f2443da5c802f9800a2d83d245ce93ae4ae0f","examples/tutorial_derive/03_03_positional.rs":"7adb319e393cbb95f240ca3550df6b31c9634163f21c362b0b732320ada82b3a","examples/tutorial_derive/03_03_positional_mult.md":"00e3fc665835a4df1190a5ecb7c854b1259ab2324966d69ac40770cde8e2dd21","examples/tutorial_derive/03_03_positional_mult.rs":"6fd6ff50456fb5aeec5287670c00671c3bc9301f0fbd1c60888db5e121863d8f","examples/tutorial_derive/03_04_subcommands.md":"8f249681987f45ea41242b643d5e5aa9b70cda8d3c562d46508523734be56948","examples/tutorial_derive/03_04_subcommands.rs":"c0765d2269681d5b221ed0404b7443b980a3c72a5f831193c51aba8ae045fa43","examples/tutorial_derive/03_04_subcommands_alt.rs":"0b5b85f339037d805673c0fa0fcdc63499959d27eaeb705a20a25bef2369f452","examples/tutorial_derive/03_05_default_values.md":"b09e17bf0322311801881f53d9b86e5179163d4b05263988a79fd7d2b5c1eb79","examples/tutorial_derive/03_05_default_values.rs":"52b347b338206903d3ad3f7233967d3e7f73b4554d9103dddd41d44ea34e5058","examples/tutorial_derive/03_06_optional.md":"4c1c3d13131e4de68df58efeeecb2f5e5424377756f7e5c335c143d326427642","examples/tutorial_derive/03_06_optional.rs":"836d09e503b6764392250b0b8cbf13b7d9f25151012ea2ad6a4732a24f1208cb","examples/tutorial_derive/04_01_enum.md":"fa1deb854c06f6ca921b53e9fd98eaf8ff0a641095a592552537ed74197ef801","examples/tutorial_derive/04_01_enum.rs":"c9757a342aee558014c30b0758ef5f5359e675ebbb7647571d4b227f4021c184","examples/tutorial_derive/04_02_parse.md":"a87492c5d6fb9817345f67389142282394c525fbeade3a2750b84d949cba1c7e","examples/tutorial_derive/04_02_parse.rs":"532ef1b9dae8a6fca32b49b5b79ddd36b82ab799fed360f4ae2b25122a7b7424","examples/tutorial_derive/04_02_validate.md":"8f83fdf4ccb89550c0df20eef49358cb222ca1a7404c18e3eafed6413c0e1313","examples/tutorial_derive/04_02_validate.rs":"bae539ef173dc8e44101ce17135b7952b9a4850b732e6115e1a3effd683edd20","examples/tutorial_derive/04_03_relations.md":"15172a1e5b056ee30b6ab1fbe848c71d8499b06aa74ce30219275989034c76ac","examples/tutorial_derive/04_03_relations.rs":"47e132f2e7dd69ae4e30df498812fcaf61bc663ac6167300e5c4390a387f573f","examples/tutorial_derive/04_04_custom.md":"f96f4ced9cce7e04e5150c2906cac315bce04a5319cab080917dd976cb815bdc","examples/tutorial_derive/04_04_custom.rs":"a1380fa2a97a8948e46e4746ee6fcb0aa23817eb1849ace397a671fadb693b35","examples/tutorial_derive/05_01_assert.rs":"55f7e86100a95800634b959c5cf25fcb246226e4edd03784bfc1371776d6dda1","examples/typed-derive/builtin.md":"72ce3913fa88fcc23012389e49ce6097a6016fcf6d99f988b8e8e48e802713ad","examples/typed-derive/builtin.rs":"25e5aad18946c72f0e25b222ecbb98cc059eec316ac4ad852221be5d77e783f7","examples/typed-derive/custom.md":"3af3091b8716fc058952c19af5d31181b14d45aa6200ed0a712cf9592a49273c","examples/typed-derive/custom.rs":"fb7abba0960d1050cadbe79e811acacdc44d4f42d774b7052c8637f3f688923a","examples/typed-derive/fn_parser.md":"c1f456c157d7ebf686cec9723a2ca4164aa25c5d6120915f83b86597145941cc","examples/typed-derive/fn_parser.rs":"729f75cc2f592f94285378a06c10e27a310063028af7b09a2c6f2b07e270f76e","examples/typed-derive/foreign_crate.rs":"c616a43cd1bb9bfda89d5ac75c65524daa309dec45cc592c937805e7c120a877","examples/typed-derive/implicit.md":"164aaacf8785dbe16b1d7802601aee2d7d4161435dad236c89c424eca921253e","examples/typed-derive/implicit.rs":"062247f6052231559e99bdf46fd1cb5b360846129cfe396f41cb12cc2d5cb1a6","examples/typed-derive/main.rs":"b1a0b3aa0013dec76a773a8c399069aea60f4e493dfb546c3368765d2e79de1b","src/_concepts.rs":"0330af938a6a7b78b4094772f898982d627c79c8cba08f6600ee625a82c51db8","src/_cookbook/cargo_example.rs":"fe7594a5233e9106a159aa1f5d5f0cde0d844356f630d55c78b8ef322327d4e5","src/_cookbook/cargo_example_derive.rs":"badf3e931ef5d5b7f5addc4912aca057ba83ee6302c43d7eeecd1661673fd407","src/_cookbook/escaped_positional.rs":"2789d8fea126355805b29e76b52c6cea4982565014087a46e0d48e4ddfbed7ab","src/_cookbook/escaped_positional_derive.rs":"802d0b672f4ed48152235d4a26a64c97fa921b361177bdd3a1a33cbac96f665d","src/_cookbook/find.rs":"6152ad5df466adc6de56bddb0f01930b4e4db1997fa972b055217cc7d6748a0a","src/_cookbook/git.rs":"372977252a22fc776e3acaa4629e964114ccd6a49b8ef334d2b6646f12e8b5ee","src/_cookbook/git_derive.rs":"4ab7c0197efda06607ca60c2a85ea743aed3494f5fe9e408d935ea0500a345fc","src/_cookbook/mod.rs":"53a00dbec35e6f8f608acf8be550862909f3c2597251c0283702b28f8a247a01","src/_cookbook/multicall_busybox.rs":"56176b4fa15e7a39c433706971d4e68aaf26ddc2a5790078b6dbe722ee13efee","src/_cookbook/multicall_hostname.rs":"907f8decf81ea4d4cbf81639ea4cd2f925eda64d4831454a7656369b65522780","src/_cookbook/pacman.rs":"4df09c7e47de2ba89984cf33634e88f3e94412456af6d9e4dded85bf80101a36","src/_cookbook/repl.rs":"1393209b2cc5c203296d57c5a065b764b4318be7855e48baf16de851e250cf90","src/_cookbook/repl_derive.rs":"99afa5a3cd44fabcce093dc821922eb52721113cf8925c38de6759bda96cb545","src/_cookbook/typed_derive.rs":"d46de8d4b0558809d575eed89ccef179d15330eccac3d66f0ae631be59117aa0","src/_derive/_tutorial.rs":"fee5e06dc487bac2eded1008f167bcc87559f45e2df8bbbeeb5dcba755f6fafa","src/_derive/mod.rs":"fc4608975587e4d0a097121c8070a784b433185e4a1350a22f98d68e1fca8770","src/_faq.rs":"998d5c156930c87a78066ec6db87ac48553e00ce16a7633cc29e7a5684c3321e","src/_features.rs":"e7ba4ed83b9ff2aef65e6773d603a4aaa0eb0ff96bc86dde4360e20385bf2809","src/_tutorial.rs":"03141e466c06faf981568e1511f297e09632b7d5c2494a940f4a87191f02e67c","src/bin/stdio-fixture.rs":"1470aa00f7c2611a09e37f63ed5e7ddba9fe6d9e8406b549234c8a5d6a19a6f1","src/lib.rs":"7cc12d03be294e8fe5014d27d54102a9d16f2f8c0ca7213e5c4542be3354a665"},"package":"aa8876b300ab35ba921adea3dfd70157a46249b33f95c9084ae5709785478946"} \ No newline at end of file diff --git a/third_party/crates/clap-4.6.7/.cargo_vcs_info.json b/third_party/crates/clap-4.6.7/.cargo_vcs_info.json new file mode 100644 index 0000000..2585ac9 --- /dev/null +++ b/third_party/crates/clap-4.6.7/.cargo_vcs_info.json @@ -0,0 +1,6 @@ +{ + "git": { + "sha1": "13f2db5072d600c11d8d6298e4e9ba53ffc6c1ab" + }, + "path_in_vcs": "" +} \ No newline at end of file diff --git a/third_party/crates/clap-4.6.6/BUILD.bazel b/third_party/crates/clap-4.6.7/BUILD.bazel similarity index 97% rename from third_party/crates/clap-4.6.6/BUILD.bazel rename to third_party/crates/clap-4.6.7/BUILD.bazel index af8d1ea..9547f96 100644 --- a/third_party/crates/clap-4.6.6/BUILD.bazel +++ b/third_party/crates/clap-4.6.7/BUILD.bazel @@ -47,7 +47,7 @@ rust_library( crate_root = "src/lib.rs", edition = "2024", proc_macro_deps = [ - "//third_party/crates/clap_derive-4.6.4:clap_derive", + "//third_party/crates/clap_derive-4.6.7:clap_derive", ], rustc_env_files = [ ":cargo_toml_env_vars", @@ -119,8 +119,8 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "4.6.6", + version = "4.6.7", deps = [ - "//third_party/crates/clap_builder-4.6.6:clap_builder", + "//third_party/crates/clap_builder-4.6.7:clap_builder", ], ) diff --git a/third_party/crates/clap-4.6.6/Cargo.lock b/third_party/crates/clap-4.6.7/Cargo.lock similarity index 91% rename from third_party/crates/clap-4.6.6/Cargo.lock rename to third_party/crates/clap-4.6.7/Cargo.lock index 785b34c..a6317c1 100644 --- a/third_party/crates/clap-4.6.6/Cargo.lock +++ b/third_party/crates/clap-4.6.7/Cargo.lock @@ -62,7 +62,7 @@ version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc" dependencies = [ - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] @@ -86,7 +86,7 @@ checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d" dependencies = [ "anstyle", "once_cell_polyfill", - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] @@ -145,7 +145,7 @@ checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" [[package]] name = "clap" -version = "4.6.6" +version = "4.6.7" dependencies = [ "automod", "clap-cargo", @@ -171,9 +171,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.6.6" +version = "4.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b48fea5a88e9ae728a2dcbedbfc0e730f7d60da42e1cb049a83c9fb8b789889" +checksum = "ec0797fb7aeb1406c84efac526901f7ec3ead2124f946b494e72879d4b54704d" dependencies = [ "anstream", "anstyle", @@ -187,9 +187,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.6.4" +version = "4.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d012d2b9d65aca7f18f4d9878a045bc17899bba951561ba5ec3c2ba1eed9a061" +checksum = "f9c751b79415d4e559e3d1fcf128e09e720eb673a06d26cf6f392d37d75b66e0" dependencies = [ "anstyle", "heck", @@ -737,10 +737,10 @@ dependencies = [ ] [[package]] -name = "target-triple" -version = "1.0.0" +name = "target-tuple" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "591ef38edfb78ca4771ee32cf494cb8771944bee237a9b91fc9c1424ac4b777b" +checksum = "876fef147edbcbddc8ac5cbbba92c7b86519e314e86638596c09673b2ed01e7f" [[package]] name = "termcolor" @@ -758,7 +758,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "230a1b821ccbd75b185820a1f1ff7b14d21da1e442e22c0863ea5f08771a8874" dependencies = [ "rustix", - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] @@ -837,15 +837,15 @@ checksum = "756daf9b1013ebe47a8776667b466417e2d4c5679d441c26230efd9ef78692db" [[package]] name = "trybuild" -version = "1.0.118" +version = "1.0.121" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06649c6f63d86604ba0c8950d5a1829fc9a17afd70fc6629f481d75b6a624c78" +checksum = "c0cabaa10be1917331a313866bd94526343e03c77bcf69144b62b072ad35d47c" dependencies = [ "glob", "serde", "serde_derive", "serde_json", - "target-triple", + "target-tuple", "termcolor", "toml", ] @@ -912,7 +912,7 @@ version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" dependencies = [ - "windows-sys 0.52.0", + "windows-sys 0.48.0", ] [[package]] @@ -921,6 +921,15 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", +] + [[package]] name = "windows-sys" version = "0.52.0" @@ -948,6 +957,21 @@ dependencies = [ "windows-link", ] +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + [[package]] name = "windows-targets" version = "0.52.6" @@ -981,6 +1005,12 @@ dependencies = [ "windows_x86_64_msvc 0.53.1", ] +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + [[package]] name = "windows_aarch64_gnullvm" version = "0.52.6" @@ -993,6 +1023,12 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + [[package]] name = "windows_aarch64_msvc" version = "0.52.6" @@ -1005,6 +1041,12 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + [[package]] name = "windows_i686_gnu" version = "0.52.6" @@ -1029,6 +1071,12 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + [[package]] name = "windows_i686_msvc" version = "0.52.6" @@ -1041,6 +1089,12 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + [[package]] name = "windows_x86_64_gnu" version = "0.52.6" @@ -1053,6 +1107,12 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + [[package]] name = "windows_x86_64_gnullvm" version = "0.52.6" @@ -1065,6 +1125,12 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + [[package]] name = "windows_x86_64_msvc" version = "0.52.6" diff --git a/third_party/crates/clap-4.6.6/Cargo.toml b/third_party/crates/clap-4.6.7/Cargo.toml similarity index 95% rename from third_party/crates/clap-4.6.6/Cargo.toml rename to third_party/crates/clap-4.6.7/Cargo.toml index 70121f6..44bbc30 100644 --- a/third_party/crates/clap-4.6.6/Cargo.toml +++ b/third_party/crates/clap-4.6.7/Cargo.toml @@ -13,15 +13,16 @@ edition = "2024" rust-version = "1.85" name = "clap" -version = "4.6.6" +version = "4.6.7" build = false include = [ - "build.rs", - "src/**/*", - "Cargo.toml", - "LICENSE*", - "README.md", - "examples/**/*", + "/build.rs", + "/src/**/*", + "/Cargo.toml", + "/Cargo.lock", + "/LICENSE*", + "/README.md", + "/examples/**/*", ] autolib = false autobins = false @@ -85,7 +86,7 @@ file = "CHANGELOG.md" search = "" replace = """ -[Unreleased]: https://github.com/clap-rs/clap/compare/{{tag_name}}...HEAD""" +[Unreleased]: {{repository}}/compare/{{tag_name}}...HEAD""" exactly = 1 [[package.metadata.release.pre-release-replacements]] @@ -447,6 +448,7 @@ required-features = ["cargo"] [[example]] name = "git" path = "examples/git.rs" +doc-scrape-examples = true [[example]] name = "git-derive" @@ -508,11 +510,11 @@ doc-scrape-examples = true required-features = ["derive"] [dependencies.clap_builder] -version = "=4.6.6" +version = "=4.6.7" default-features = false [dependencies.clap_derive] -version = "=4.6.4" +version = "=4.6.7" optional = true [dev-dependencies.automod] @@ -555,8 +557,11 @@ assigning_clones = "allow" blocks_in_conditions = "allow" bool_assert_comparison = "allow" branches_sharing_code = "allow" +byte_char_slices = "allow" checked_conversions = "warn" collapsible_else_if = "allow" +collapsible_match = "allow" +collection_is_never_read = "warn" create_dir = "warn" dbg_macro = "warn" debug_assert_with_mut_call = "warn" @@ -569,9 +574,10 @@ explicit_into_iter_loop = "warn" fallible_impl_from = "warn" filter_map_next = "warn" flat_map_option = "warn" +float_cmp = "warn" float_cmp_const = "warn" fn_params_excessive_bools = "warn" -from_iter_instead_of_collect = "warn" +fn_to_numeric_cast_any = "warn" if_same_then_else = "allow" implicit_clone = "warn" imprecise_flops = "warn" @@ -587,11 +593,13 @@ linkedlist = "warn" lossy_float_literal = "warn" macro_use_imports = "warn" mem_forget = "warn" +mismatching_type_param_order = "warn" multiple_bound_locations = "allow" mutex_integer = "warn" needless_continue = "allow" needless_for_each = "warn" negative_feature_names = "warn" +partial_pub_fields = "warn" path_buf_push_overwrite = "warn" ptr_as_ptr = "warn" rc_mutex = "warn" @@ -609,11 +617,16 @@ string_lit_as_bytes = "warn" todo = "warn" trait_duplication_in_bounds = "warn" uninlined_format_args = "warn" +unnecessary_safety_comment = "warn" +unnecessary_safety_doc = "warn" +unseparated_literal_suffix = "warn" +use_self = "warn" verbose_file_reads = "warn" zero_sized_map_values = "warn" [lints.rust] -unnameable_types = "allow" +non_ascii_idents = "warn" +trivial_numeric_casts = "warn" unreachable_pub = "warn" unsafe_op_in_unsafe_fn = "warn" unused_lifetimes = "warn" @@ -624,17 +637,11 @@ unused_qualifications = "warn" level = "warn" priority = -1 -[profile.bench] -lto = true -codegen-units = 1 - [profile.dev] panic = "abort" [profile.release] lto = true codegen-units = 1 +debug = "line-tables-only" panic = "abort" - -[profile.test] -opt-level = 1 diff --git a/third_party/crates/clap-4.6.6/Cargo.toml.orig b/third_party/crates/clap-4.6.7/Cargo.toml.orig similarity index 92% rename from third_party/crates/clap-4.6.6/Cargo.toml.orig rename to third_party/crates/clap-4.6.7/Cargo.toml.orig index d5a4de3..84c4345 100644 --- a/third_party/crates/clap-4.6.6/Cargo.toml.orig +++ b/third_party/crates/clap-4.6.7/Cargo.toml.orig @@ -16,17 +16,21 @@ license = "MIT OR Apache-2.0" edition = "2024" rust-version = "1.85" # MSRV include = [ - "build.rs", - "src/**/*", - "Cargo.toml", - "LICENSE*", - "README.md", - "examples/**/*" + "/build.rs", + "/src/**/*", + "/Cargo.toml", + "/Cargo.lock", + "/LICENSE*", + "/README.md", + "/examples/**/*" ] [workspace.lints.rust] rust_2018_idioms = { level = "warn", priority = -1 } -unnameable_types = "allow" + +non_ascii_idents = "warn" +trivial_numeric_casts = "warn" +#unnameable_types = "warn" unreachable_pub = "warn" unsafe_op_in_unsafe_fn = "warn" unused_lifetimes = "warn" @@ -34,10 +38,17 @@ unused_macro_rules = "warn" unused_qualifications = "warn" [workspace.lints.clippy] +#allow_attributes_without_reason = "warn" bool_assert_comparison = "allow" branches_sharing_code = "allow" +byte_char_slices = "allow" # sometimes explicit arrays are better +#cast_possible_truncation = "warn" +#cast_possible_wrap = "warn" +#cast_sign_loss = "warn" checked_conversions = "warn" collapsible_else_if = "allow" +collapsible_match = "allow" +collection_is_never_read = "warn" create_dir = "warn" dbg_macro = "warn" debug_assert_with_mut_call = "warn" @@ -50,9 +61,10 @@ explicit_into_iter_loop = "warn" fallible_impl_from = "warn" filter_map_next = "warn" flat_map_option = "warn" +float_cmp = "warn" float_cmp_const = "warn" fn_params_excessive_bools = "warn" -from_iter_instead_of_collect = "warn" +fn_to_numeric_cast_any = "warn" if_same_then_else = "allow" implicit_clone = "warn" imprecise_flops = "warn" @@ -68,10 +80,12 @@ linkedlist = "warn" lossy_float_literal = "warn" macro_use_imports = "warn" mem_forget = "warn" +mismatching_type_param_order = "warn" mutex_integer = "warn" needless_continue = "allow" needless_for_each = "warn" negative_feature_names = "warn" +partial_pub_fields = "warn" path_buf_push_overwrite = "warn" ptr_as_ptr = "warn" rc_mutex = "warn" @@ -82,13 +96,19 @@ result_large_err = "allow" same_functions_in_if_condition = "warn" self_named_module_files = "warn" semicolon_if_nothing_returned = "warn" +#should_panic_without_expect = "warn" str_to_string = "warn" string_add = "warn" string_add_assign = "warn" string_lit_as_bytes = "warn" todo = "warn" trait_duplication_in_bounds = "warn" +#undocumented_unsafe_blocks = "warn" uninlined_format_args = "warn" +unnecessary_safety_comment = "warn" +unnecessary_safety_doc = "warn" +unseparated_literal_suffix = "warn" +use_self = "warn" verbose_file_reads = "warn" # wildcard_imports = "warn" zero_sized_map_values = "warn" @@ -104,11 +124,11 @@ panic = "abort" panic = "abort" codegen-units = 1 lto = true -# debug = "line-tables-only" # requires Cargo 1.71 +debug = "line-tables-only" [package] name = "clap" -version = "4.6.6" +version = "4.6.7" description = "A simple to use, efficient, and full-featured Command Line Argument Parser" categories = ["command-line-interface"] keywords = [ @@ -139,7 +159,7 @@ pre-release-replacements = [ {file="CHANGELOG.md", search="\\.\\.\\.HEAD", replace="...{{tag_name}}", exactly=1}, {file="CHANGELOG.md", search="ReleaseDate", replace="{{date}}", min=1}, {file="CHANGELOG.md", search="", replace="\n## [Unreleased] - ReleaseDate\n", exactly=1}, - {file="CHANGELOG.md", search="", replace="\n[Unreleased]: https://github.com/clap-rs/clap/compare/{{tag_name}}...HEAD", exactly=1}, + {file="CHANGELOG.md", search="", replace="\n[Unreleased]: {{repository}}/compare/{{tag_name}}...HEAD", exactly=1}, {file="CITATION.cff", search="^date-released: ....-..-..", replace="date-released: {{date}}"}, {file="CITATION.cff", search="^version: .+\\..+\\..+", replace="version: {{version}}"}, {file="src/lib.rs", search="blob/v.+\\..+\\..+/CHANGELOG.md", replace="blob/v{{version}}/CHANGELOG.md", exactly=1}, @@ -185,8 +205,8 @@ unstable-markdown = ["clap_derive/unstable-markdown"] bench = false [dependencies] -clap_builder = { path = "./clap_builder", version = "=4.6.6", default-features = false } -clap_derive = { path = "./clap_derive", version = "=4.6.4", optional = true } +clap_builder = { path = "./clap_builder", version = "=4.6.7", default-features = false } +clap_derive = { path = "./clap_derive", version = "=4.6.7", optional = true } [dev-dependencies] trybuild = "1.0.116" @@ -230,6 +250,10 @@ name = "find" required-features = ["cargo"] doc-scrape-examples = true +[[example]] +name = "git" +doc-scrape-examples = true + [[example]] name = "git-derive" required-features = ["derive"] @@ -532,12 +556,5 @@ path = "examples/derive_ref/flatten_hand_args.rs" required-features = ["derive"] doc-scrape-examples = true -[profile.test] -opt-level = 1 - -[profile.bench] -lto = true -codegen-units = 1 - [lints] workspace = true diff --git a/third_party/crates/clap_derive-4.6.4/LICENSE-APACHE b/third_party/crates/clap-4.6.7/LICENSE-APACHE similarity index 99% rename from third_party/crates/clap_derive-4.6.4/LICENSE-APACHE rename to third_party/crates/clap-4.6.7/LICENSE-APACHE index 8f71f43..6aa81fe 100644 --- a/third_party/crates/clap_derive-4.6.4/LICENSE-APACHE +++ b/third_party/crates/clap-4.6.7/LICENSE-APACHE @@ -186,7 +186,7 @@ same "printed page" as the copyright notice for easier identification within third-party archives. - Copyright {yyyy} {name of copyright owner} + Copyright Individual contributors Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/third_party/crates/clap-4.6.6/LICENSE-MIT b/third_party/crates/clap-4.6.7/LICENSE-MIT similarity index 100% rename from third_party/crates/clap-4.6.6/LICENSE-MIT rename to third_party/crates/clap-4.6.7/LICENSE-MIT diff --git a/third_party/crates/clap-4.6.6/README.md b/third_party/crates/clap-4.6.7/README.md similarity index 100% rename from third_party/crates/clap-4.6.6/README.md rename to third_party/crates/clap-4.6.7/README.md diff --git a/third_party/crates/clap-4.6.6/examples/README.md b/third_party/crates/clap-4.6.7/examples/README.md similarity index 100% rename from third_party/crates/clap-4.6.6/examples/README.md rename to third_party/crates/clap-4.6.7/examples/README.md diff --git a/third_party/crates/clap-4.6.6/examples/cargo-example-derive.md b/third_party/crates/clap-4.6.7/examples/cargo-example-derive.md similarity index 100% rename from third_party/crates/clap-4.6.6/examples/cargo-example-derive.md rename to third_party/crates/clap-4.6.7/examples/cargo-example-derive.md diff --git a/third_party/crates/clap-4.6.6/examples/cargo-example-derive.rs b/third_party/crates/clap-4.6.7/examples/cargo-example-derive.rs similarity index 100% rename from third_party/crates/clap-4.6.6/examples/cargo-example-derive.rs rename to third_party/crates/clap-4.6.7/examples/cargo-example-derive.rs diff --git a/third_party/crates/clap-4.6.6/examples/cargo-example.md b/third_party/crates/clap-4.6.7/examples/cargo-example.md similarity index 100% rename from third_party/crates/clap-4.6.6/examples/cargo-example.md rename to third_party/crates/clap-4.6.7/examples/cargo-example.md diff --git a/third_party/crates/clap-4.6.6/examples/cargo-example.rs b/third_party/crates/clap-4.6.7/examples/cargo-example.rs similarity index 100% rename from third_party/crates/clap-4.6.6/examples/cargo-example.rs rename to third_party/crates/clap-4.6.7/examples/cargo-example.rs diff --git a/third_party/crates/clap-4.6.6/examples/demo.md b/third_party/crates/clap-4.6.7/examples/demo.md similarity index 100% rename from third_party/crates/clap-4.6.6/examples/demo.md rename to third_party/crates/clap-4.6.7/examples/demo.md diff --git a/third_party/crates/clap-4.6.6/examples/demo.rs b/third_party/crates/clap-4.6.7/examples/demo.rs similarity index 100% rename from third_party/crates/clap-4.6.6/examples/demo.rs rename to third_party/crates/clap-4.6.7/examples/demo.rs diff --git a/third_party/crates/clap-4.6.6/examples/derive_ref/augment_args.rs b/third_party/crates/clap-4.6.7/examples/derive_ref/augment_args.rs similarity index 100% rename from third_party/crates/clap-4.6.6/examples/derive_ref/augment_args.rs rename to third_party/crates/clap-4.6.7/examples/derive_ref/augment_args.rs diff --git a/third_party/crates/clap-4.6.6/examples/derive_ref/augment_subcommands.rs b/third_party/crates/clap-4.6.7/examples/derive_ref/augment_subcommands.rs similarity index 100% rename from third_party/crates/clap-4.6.6/examples/derive_ref/augment_subcommands.rs rename to third_party/crates/clap-4.6.7/examples/derive_ref/augment_subcommands.rs diff --git a/third_party/crates/clap-4.6.6/examples/derive_ref/flatten_hand_args.rs b/third_party/crates/clap-4.6.7/examples/derive_ref/flatten_hand_args.rs similarity index 100% rename from third_party/crates/clap-4.6.6/examples/derive_ref/flatten_hand_args.rs rename to third_party/crates/clap-4.6.7/examples/derive_ref/flatten_hand_args.rs diff --git a/third_party/crates/clap-4.6.6/examples/derive_ref/hand_subcommand.rs b/third_party/crates/clap-4.6.7/examples/derive_ref/hand_subcommand.rs similarity index 100% rename from third_party/crates/clap-4.6.6/examples/derive_ref/hand_subcommand.rs rename to third_party/crates/clap-4.6.7/examples/derive_ref/hand_subcommand.rs diff --git a/third_party/crates/clap-4.6.6/examples/derive_ref/interop_tests.md b/third_party/crates/clap-4.6.7/examples/derive_ref/interop_tests.md similarity index 100% rename from third_party/crates/clap-4.6.6/examples/derive_ref/interop_tests.md rename to third_party/crates/clap-4.6.7/examples/derive_ref/interop_tests.md diff --git a/third_party/crates/clap-4.6.6/examples/escaped-positional-derive.md b/third_party/crates/clap-4.6.7/examples/escaped-positional-derive.md similarity index 100% rename from third_party/crates/clap-4.6.6/examples/escaped-positional-derive.md rename to third_party/crates/clap-4.6.7/examples/escaped-positional-derive.md diff --git a/third_party/crates/clap-4.6.6/examples/escaped-positional-derive.rs b/third_party/crates/clap-4.6.7/examples/escaped-positional-derive.rs similarity index 100% rename from third_party/crates/clap-4.6.6/examples/escaped-positional-derive.rs rename to third_party/crates/clap-4.6.7/examples/escaped-positional-derive.rs diff --git a/third_party/crates/clap-4.6.6/examples/escaped-positional.md b/third_party/crates/clap-4.6.7/examples/escaped-positional.md similarity index 100% rename from third_party/crates/clap-4.6.6/examples/escaped-positional.md rename to third_party/crates/clap-4.6.7/examples/escaped-positional.md diff --git a/third_party/crates/clap-4.6.6/examples/escaped-positional.rs b/third_party/crates/clap-4.6.7/examples/escaped-positional.rs similarity index 100% rename from third_party/crates/clap-4.6.6/examples/escaped-positional.rs rename to third_party/crates/clap-4.6.7/examples/escaped-positional.rs diff --git a/third_party/crates/clap-4.6.6/examples/find.md b/third_party/crates/clap-4.6.7/examples/find.md similarity index 100% rename from third_party/crates/clap-4.6.6/examples/find.md rename to third_party/crates/clap-4.6.7/examples/find.md diff --git a/third_party/crates/clap-4.6.6/examples/find.rs b/third_party/crates/clap-4.6.7/examples/find.rs similarity index 98% rename from third_party/crates/clap-4.6.6/examples/find.rs rename to third_party/crates/clap-4.6.7/examples/find.rs index 93e6edb..2b79b2e 100644 --- a/third_party/crates/clap-4.6.6/examples/find.rs +++ b/third_party/crates/clap-4.6.7/examples/find.rs @@ -83,7 +83,7 @@ impl Value { values.into_values().collect::>() } - fn extract + Send + Sync + 'static>( + fn extract + Send + Sync + 'static>( matches: &ArgMatches, id: &clap::Id, output: &mut BTreeMap, diff --git a/third_party/crates/clap-4.6.6/examples/git-derive.md b/third_party/crates/clap-4.6.7/examples/git-derive.md similarity index 100% rename from third_party/crates/clap-4.6.6/examples/git-derive.md rename to third_party/crates/clap-4.6.7/examples/git-derive.md diff --git a/third_party/crates/clap-4.6.6/examples/git-derive.rs b/third_party/crates/clap-4.6.7/examples/git-derive.rs similarity index 100% rename from third_party/crates/clap-4.6.6/examples/git-derive.rs rename to third_party/crates/clap-4.6.7/examples/git-derive.rs diff --git a/third_party/crates/clap-4.6.6/examples/git.md b/third_party/crates/clap-4.6.7/examples/git.md similarity index 100% rename from third_party/crates/clap-4.6.6/examples/git.md rename to third_party/crates/clap-4.6.7/examples/git.md diff --git a/third_party/crates/clap-4.6.6/examples/git.rs b/third_party/crates/clap-4.6.7/examples/git.rs similarity index 100% rename from third_party/crates/clap-4.6.6/examples/git.rs rename to third_party/crates/clap-4.6.7/examples/git.rs diff --git a/third_party/crates/clap-4.6.6/examples/multicall-busybox.md b/third_party/crates/clap-4.6.7/examples/multicall-busybox.md similarity index 100% rename from third_party/crates/clap-4.6.6/examples/multicall-busybox.md rename to third_party/crates/clap-4.6.7/examples/multicall-busybox.md diff --git a/third_party/crates/clap-4.6.6/examples/multicall-busybox.rs b/third_party/crates/clap-4.6.7/examples/multicall-busybox.rs similarity index 100% rename from third_party/crates/clap-4.6.6/examples/multicall-busybox.rs rename to third_party/crates/clap-4.6.7/examples/multicall-busybox.rs diff --git a/third_party/crates/clap-4.6.6/examples/multicall-hostname.md b/third_party/crates/clap-4.6.7/examples/multicall-hostname.md similarity index 100% rename from third_party/crates/clap-4.6.6/examples/multicall-hostname.md rename to third_party/crates/clap-4.6.7/examples/multicall-hostname.md diff --git a/third_party/crates/clap-4.6.6/examples/multicall-hostname.rs b/third_party/crates/clap-4.6.7/examples/multicall-hostname.rs similarity index 100% rename from third_party/crates/clap-4.6.6/examples/multicall-hostname.rs rename to third_party/crates/clap-4.6.7/examples/multicall-hostname.rs diff --git a/third_party/crates/clap-4.6.6/examples/pacman.md b/third_party/crates/clap-4.6.7/examples/pacman.md similarity index 100% rename from third_party/crates/clap-4.6.6/examples/pacman.md rename to third_party/crates/clap-4.6.7/examples/pacman.md diff --git a/third_party/crates/clap-4.6.6/examples/pacman.rs b/third_party/crates/clap-4.6.7/examples/pacman.rs similarity index 100% rename from third_party/crates/clap-4.6.6/examples/pacman.rs rename to third_party/crates/clap-4.6.7/examples/pacman.rs diff --git a/third_party/crates/clap-4.6.6/examples/repl-derive.rs b/third_party/crates/clap-4.6.7/examples/repl-derive.rs similarity index 100% rename from third_party/crates/clap-4.6.6/examples/repl-derive.rs rename to third_party/crates/clap-4.6.7/examples/repl-derive.rs diff --git a/third_party/crates/clap-4.6.6/examples/repl.rs b/third_party/crates/clap-4.6.7/examples/repl.rs similarity index 100% rename from third_party/crates/clap-4.6.6/examples/repl.rs rename to third_party/crates/clap-4.6.7/examples/repl.rs diff --git a/third_party/crates/clap-4.6.6/examples/snapshots/pacman.txt b/third_party/crates/clap-4.6.7/examples/snapshots/pacman.txt similarity index 100% rename from third_party/crates/clap-4.6.6/examples/snapshots/pacman.txt rename to third_party/crates/clap-4.6.7/examples/snapshots/pacman.txt diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_builder/01_quick.md b/third_party/crates/clap-4.6.7/examples/tutorial_builder/01_quick.md similarity index 100% rename from third_party/crates/clap-4.6.6/examples/tutorial_builder/01_quick.md rename to third_party/crates/clap-4.6.7/examples/tutorial_builder/01_quick.md diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_builder/01_quick.rs b/third_party/crates/clap-4.6.7/examples/tutorial_builder/01_quick.rs similarity index 100% rename from third_party/crates/clap-4.6.6/examples/tutorial_builder/01_quick.rs rename to third_party/crates/clap-4.6.7/examples/tutorial_builder/01_quick.rs diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_builder/02_app_settings.md b/third_party/crates/clap-4.6.7/examples/tutorial_builder/02_app_settings.md similarity index 100% rename from third_party/crates/clap-4.6.6/examples/tutorial_builder/02_app_settings.md rename to third_party/crates/clap-4.6.7/examples/tutorial_builder/02_app_settings.md diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_builder/02_app_settings.rs b/third_party/crates/clap-4.6.7/examples/tutorial_builder/02_app_settings.rs similarity index 100% rename from third_party/crates/clap-4.6.6/examples/tutorial_builder/02_app_settings.rs rename to third_party/crates/clap-4.6.7/examples/tutorial_builder/02_app_settings.rs diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_builder/02_apps.md b/third_party/crates/clap-4.6.7/examples/tutorial_builder/02_apps.md similarity index 100% rename from third_party/crates/clap-4.6.6/examples/tutorial_builder/02_apps.md rename to third_party/crates/clap-4.6.7/examples/tutorial_builder/02_apps.md diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_builder/02_apps.rs b/third_party/crates/clap-4.6.7/examples/tutorial_builder/02_apps.rs similarity index 100% rename from third_party/crates/clap-4.6.6/examples/tutorial_builder/02_apps.rs rename to third_party/crates/clap-4.6.7/examples/tutorial_builder/02_apps.rs diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_builder/02_crate.md b/third_party/crates/clap-4.6.7/examples/tutorial_builder/02_crate.md similarity index 100% rename from third_party/crates/clap-4.6.6/examples/tutorial_builder/02_crate.md rename to third_party/crates/clap-4.6.7/examples/tutorial_builder/02_crate.md diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_builder/02_crate.rs b/third_party/crates/clap-4.6.7/examples/tutorial_builder/02_crate.rs similarity index 100% rename from third_party/crates/clap-4.6.6/examples/tutorial_builder/02_crate.rs rename to third_party/crates/clap-4.6.7/examples/tutorial_builder/02_crate.rs diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_builder/03_01_flag_bool.md b/third_party/crates/clap-4.6.7/examples/tutorial_builder/03_01_flag_bool.md similarity index 100% rename from third_party/crates/clap-4.6.6/examples/tutorial_builder/03_01_flag_bool.md rename to third_party/crates/clap-4.6.7/examples/tutorial_builder/03_01_flag_bool.md diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_builder/03_01_flag_bool.rs b/third_party/crates/clap-4.6.7/examples/tutorial_builder/03_01_flag_bool.rs similarity index 100% rename from third_party/crates/clap-4.6.6/examples/tutorial_builder/03_01_flag_bool.rs rename to third_party/crates/clap-4.6.7/examples/tutorial_builder/03_01_flag_bool.rs diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_builder/03_01_flag_count.md b/third_party/crates/clap-4.6.7/examples/tutorial_builder/03_01_flag_count.md similarity index 100% rename from third_party/crates/clap-4.6.6/examples/tutorial_builder/03_01_flag_count.md rename to third_party/crates/clap-4.6.7/examples/tutorial_builder/03_01_flag_count.md diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_builder/03_01_flag_count.rs b/third_party/crates/clap-4.6.7/examples/tutorial_builder/03_01_flag_count.rs similarity index 100% rename from third_party/crates/clap-4.6.6/examples/tutorial_builder/03_01_flag_count.rs rename to third_party/crates/clap-4.6.7/examples/tutorial_builder/03_01_flag_count.rs diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_builder/03_02_option.md b/third_party/crates/clap-4.6.7/examples/tutorial_builder/03_02_option.md similarity index 100% rename from third_party/crates/clap-4.6.6/examples/tutorial_builder/03_02_option.md rename to third_party/crates/clap-4.6.7/examples/tutorial_builder/03_02_option.md diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_builder/03_02_option.rs b/third_party/crates/clap-4.6.7/examples/tutorial_builder/03_02_option.rs similarity index 100% rename from third_party/crates/clap-4.6.6/examples/tutorial_builder/03_02_option.rs rename to third_party/crates/clap-4.6.7/examples/tutorial_builder/03_02_option.rs diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_builder/03_02_option_mult.md b/third_party/crates/clap-4.6.7/examples/tutorial_builder/03_02_option_mult.md similarity index 100% rename from third_party/crates/clap-4.6.6/examples/tutorial_builder/03_02_option_mult.md rename to third_party/crates/clap-4.6.7/examples/tutorial_builder/03_02_option_mult.md diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_builder/03_02_option_mult.rs b/third_party/crates/clap-4.6.7/examples/tutorial_builder/03_02_option_mult.rs similarity index 100% rename from third_party/crates/clap-4.6.6/examples/tutorial_builder/03_02_option_mult.rs rename to third_party/crates/clap-4.6.7/examples/tutorial_builder/03_02_option_mult.rs diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_builder/03_03_positional.md b/third_party/crates/clap-4.6.7/examples/tutorial_builder/03_03_positional.md similarity index 100% rename from third_party/crates/clap-4.6.6/examples/tutorial_builder/03_03_positional.md rename to third_party/crates/clap-4.6.7/examples/tutorial_builder/03_03_positional.md diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_builder/03_03_positional.rs b/third_party/crates/clap-4.6.7/examples/tutorial_builder/03_03_positional.rs similarity index 100% rename from third_party/crates/clap-4.6.6/examples/tutorial_builder/03_03_positional.rs rename to third_party/crates/clap-4.6.7/examples/tutorial_builder/03_03_positional.rs diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_builder/03_03_positional_mult.md b/third_party/crates/clap-4.6.7/examples/tutorial_builder/03_03_positional_mult.md similarity index 100% rename from third_party/crates/clap-4.6.6/examples/tutorial_builder/03_03_positional_mult.md rename to third_party/crates/clap-4.6.7/examples/tutorial_builder/03_03_positional_mult.md diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_builder/03_03_positional_mult.rs b/third_party/crates/clap-4.6.7/examples/tutorial_builder/03_03_positional_mult.rs similarity index 100% rename from third_party/crates/clap-4.6.6/examples/tutorial_builder/03_03_positional_mult.rs rename to third_party/crates/clap-4.6.7/examples/tutorial_builder/03_03_positional_mult.rs diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_builder/03_04_subcommands.md b/third_party/crates/clap-4.6.7/examples/tutorial_builder/03_04_subcommands.md similarity index 100% rename from third_party/crates/clap-4.6.6/examples/tutorial_builder/03_04_subcommands.md rename to third_party/crates/clap-4.6.7/examples/tutorial_builder/03_04_subcommands.md diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_builder/03_04_subcommands.rs b/third_party/crates/clap-4.6.7/examples/tutorial_builder/03_04_subcommands.rs similarity index 100% rename from third_party/crates/clap-4.6.6/examples/tutorial_builder/03_04_subcommands.rs rename to third_party/crates/clap-4.6.7/examples/tutorial_builder/03_04_subcommands.rs diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_builder/03_05_default_values.md b/third_party/crates/clap-4.6.7/examples/tutorial_builder/03_05_default_values.md similarity index 100% rename from third_party/crates/clap-4.6.6/examples/tutorial_builder/03_05_default_values.md rename to third_party/crates/clap-4.6.7/examples/tutorial_builder/03_05_default_values.md diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_builder/03_05_default_values.rs b/third_party/crates/clap-4.6.7/examples/tutorial_builder/03_05_default_values.rs similarity index 100% rename from third_party/crates/clap-4.6.6/examples/tutorial_builder/03_05_default_values.rs rename to third_party/crates/clap-4.6.7/examples/tutorial_builder/03_05_default_values.rs diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_builder/03_06_required.md b/third_party/crates/clap-4.6.7/examples/tutorial_builder/03_06_required.md similarity index 100% rename from third_party/crates/clap-4.6.6/examples/tutorial_builder/03_06_required.md rename to third_party/crates/clap-4.6.7/examples/tutorial_builder/03_06_required.md diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_builder/03_06_required.rs b/third_party/crates/clap-4.6.7/examples/tutorial_builder/03_06_required.rs similarity index 100% rename from third_party/crates/clap-4.6.6/examples/tutorial_builder/03_06_required.rs rename to third_party/crates/clap-4.6.7/examples/tutorial_builder/03_06_required.rs diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_builder/04_01_enum.md b/third_party/crates/clap-4.6.7/examples/tutorial_builder/04_01_enum.md similarity index 100% rename from third_party/crates/clap-4.6.6/examples/tutorial_builder/04_01_enum.md rename to third_party/crates/clap-4.6.7/examples/tutorial_builder/04_01_enum.md diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_builder/04_01_enum.rs b/third_party/crates/clap-4.6.7/examples/tutorial_builder/04_01_enum.rs similarity index 90% rename from third_party/crates/clap-4.6.6/examples/tutorial_builder/04_01_enum.rs rename to third_party/crates/clap-4.6.7/examples/tutorial_builder/04_01_enum.rs index ad7929f..1ff7ce4 100644 --- a/third_party/crates/clap-4.6.6/examples/tutorial_builder/04_01_enum.rs +++ b/third_party/crates/clap-4.6.7/examples/tutorial_builder/04_01_enum.rs @@ -9,13 +9,13 @@ enum Mode { // Can also be derived with feature flag `derive` impl ValueEnum for Mode { fn value_variants<'a>() -> &'a [Self] { - &[Mode::Fast, Mode::Slow] + &[Self::Fast, Self::Slow] } fn to_possible_value(&self) -> Option { Some(match self { - Mode::Fast => PossibleValue::new("fast").help("Run swiftly"), - Mode::Slow => PossibleValue::new("slow").help("Crawl slowly but steadily"), + Self::Fast => PossibleValue::new("fast").help("Run swiftly"), + Self::Slow => PossibleValue::new("slow").help("Crawl slowly but steadily"), }) } } diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_builder/04_01_possible.md b/third_party/crates/clap-4.6.7/examples/tutorial_builder/04_01_possible.md similarity index 100% rename from third_party/crates/clap-4.6.6/examples/tutorial_builder/04_01_possible.md rename to third_party/crates/clap-4.6.7/examples/tutorial_builder/04_01_possible.md diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_builder/04_01_possible.rs b/third_party/crates/clap-4.6.7/examples/tutorial_builder/04_01_possible.rs similarity index 100% rename from third_party/crates/clap-4.6.6/examples/tutorial_builder/04_01_possible.rs rename to third_party/crates/clap-4.6.7/examples/tutorial_builder/04_01_possible.rs diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_builder/04_02_parse.md b/third_party/crates/clap-4.6.7/examples/tutorial_builder/04_02_parse.md similarity index 100% rename from third_party/crates/clap-4.6.6/examples/tutorial_builder/04_02_parse.md rename to third_party/crates/clap-4.6.7/examples/tutorial_builder/04_02_parse.md diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_builder/04_02_parse.rs b/third_party/crates/clap-4.6.7/examples/tutorial_builder/04_02_parse.rs similarity index 100% rename from third_party/crates/clap-4.6.6/examples/tutorial_builder/04_02_parse.rs rename to third_party/crates/clap-4.6.7/examples/tutorial_builder/04_02_parse.rs diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_builder/04_02_validate.md b/third_party/crates/clap-4.6.7/examples/tutorial_builder/04_02_validate.md similarity index 100% rename from third_party/crates/clap-4.6.6/examples/tutorial_builder/04_02_validate.md rename to third_party/crates/clap-4.6.7/examples/tutorial_builder/04_02_validate.md diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_builder/04_02_validate.rs b/third_party/crates/clap-4.6.7/examples/tutorial_builder/04_02_validate.rs similarity index 100% rename from third_party/crates/clap-4.6.6/examples/tutorial_builder/04_02_validate.rs rename to third_party/crates/clap-4.6.7/examples/tutorial_builder/04_02_validate.rs diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_builder/04_03_relations.md b/third_party/crates/clap-4.6.7/examples/tutorial_builder/04_03_relations.md similarity index 100% rename from third_party/crates/clap-4.6.6/examples/tutorial_builder/04_03_relations.md rename to third_party/crates/clap-4.6.7/examples/tutorial_builder/04_03_relations.md diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_builder/04_03_relations.rs b/third_party/crates/clap-4.6.7/examples/tutorial_builder/04_03_relations.rs similarity index 100% rename from third_party/crates/clap-4.6.6/examples/tutorial_builder/04_03_relations.rs rename to third_party/crates/clap-4.6.7/examples/tutorial_builder/04_03_relations.rs diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_builder/04_04_custom.md b/third_party/crates/clap-4.6.7/examples/tutorial_builder/04_04_custom.md similarity index 100% rename from third_party/crates/clap-4.6.6/examples/tutorial_builder/04_04_custom.md rename to third_party/crates/clap-4.6.7/examples/tutorial_builder/04_04_custom.md diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_builder/04_04_custom.rs b/third_party/crates/clap-4.6.7/examples/tutorial_builder/04_04_custom.rs similarity index 100% rename from third_party/crates/clap-4.6.6/examples/tutorial_builder/04_04_custom.rs rename to third_party/crates/clap-4.6.7/examples/tutorial_builder/04_04_custom.rs diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_builder/05_01_assert.rs b/third_party/crates/clap-4.6.7/examples/tutorial_builder/05_01_assert.rs similarity index 100% rename from third_party/crates/clap-4.6.6/examples/tutorial_builder/05_01_assert.rs rename to third_party/crates/clap-4.6.7/examples/tutorial_builder/05_01_assert.rs diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_derive/01_quick.md b/third_party/crates/clap-4.6.7/examples/tutorial_derive/01_quick.md similarity index 100% rename from third_party/crates/clap-4.6.6/examples/tutorial_derive/01_quick.md rename to third_party/crates/clap-4.6.7/examples/tutorial_derive/01_quick.md diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_derive/01_quick.rs b/third_party/crates/clap-4.6.7/examples/tutorial_derive/01_quick.rs similarity index 100% rename from third_party/crates/clap-4.6.6/examples/tutorial_derive/01_quick.rs rename to third_party/crates/clap-4.6.7/examples/tutorial_derive/01_quick.rs diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_derive/02_app_settings.md b/third_party/crates/clap-4.6.7/examples/tutorial_derive/02_app_settings.md similarity index 100% rename from third_party/crates/clap-4.6.6/examples/tutorial_derive/02_app_settings.md rename to third_party/crates/clap-4.6.7/examples/tutorial_derive/02_app_settings.md diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_derive/02_app_settings.rs b/third_party/crates/clap-4.6.7/examples/tutorial_derive/02_app_settings.rs similarity index 100% rename from third_party/crates/clap-4.6.6/examples/tutorial_derive/02_app_settings.rs rename to third_party/crates/clap-4.6.7/examples/tutorial_derive/02_app_settings.rs diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_derive/02_apps.md b/third_party/crates/clap-4.6.7/examples/tutorial_derive/02_apps.md similarity index 100% rename from third_party/crates/clap-4.6.6/examples/tutorial_derive/02_apps.md rename to third_party/crates/clap-4.6.7/examples/tutorial_derive/02_apps.md diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_derive/02_apps.rs b/third_party/crates/clap-4.6.7/examples/tutorial_derive/02_apps.rs similarity index 100% rename from third_party/crates/clap-4.6.6/examples/tutorial_derive/02_apps.rs rename to third_party/crates/clap-4.6.7/examples/tutorial_derive/02_apps.rs diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_derive/02_crate.md b/third_party/crates/clap-4.6.7/examples/tutorial_derive/02_crate.md similarity index 100% rename from third_party/crates/clap-4.6.6/examples/tutorial_derive/02_crate.md rename to third_party/crates/clap-4.6.7/examples/tutorial_derive/02_crate.md diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_derive/02_crate.rs b/third_party/crates/clap-4.6.7/examples/tutorial_derive/02_crate.rs similarity index 100% rename from third_party/crates/clap-4.6.6/examples/tutorial_derive/02_crate.rs rename to third_party/crates/clap-4.6.7/examples/tutorial_derive/02_crate.rs diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_derive/03_01_flag_bool.md b/third_party/crates/clap-4.6.7/examples/tutorial_derive/03_01_flag_bool.md similarity index 100% rename from third_party/crates/clap-4.6.6/examples/tutorial_derive/03_01_flag_bool.md rename to third_party/crates/clap-4.6.7/examples/tutorial_derive/03_01_flag_bool.md diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_derive/03_01_flag_bool.rs b/third_party/crates/clap-4.6.7/examples/tutorial_derive/03_01_flag_bool.rs similarity index 100% rename from third_party/crates/clap-4.6.6/examples/tutorial_derive/03_01_flag_bool.rs rename to third_party/crates/clap-4.6.7/examples/tutorial_derive/03_01_flag_bool.rs diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_derive/03_01_flag_count.md b/third_party/crates/clap-4.6.7/examples/tutorial_derive/03_01_flag_count.md similarity index 100% rename from third_party/crates/clap-4.6.6/examples/tutorial_derive/03_01_flag_count.md rename to third_party/crates/clap-4.6.7/examples/tutorial_derive/03_01_flag_count.md diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_derive/03_01_flag_count.rs b/third_party/crates/clap-4.6.7/examples/tutorial_derive/03_01_flag_count.rs similarity index 100% rename from third_party/crates/clap-4.6.6/examples/tutorial_derive/03_01_flag_count.rs rename to third_party/crates/clap-4.6.7/examples/tutorial_derive/03_01_flag_count.rs diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_derive/03_02_option.md b/third_party/crates/clap-4.6.7/examples/tutorial_derive/03_02_option.md similarity index 100% rename from third_party/crates/clap-4.6.6/examples/tutorial_derive/03_02_option.md rename to third_party/crates/clap-4.6.7/examples/tutorial_derive/03_02_option.md diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_derive/03_02_option.rs b/third_party/crates/clap-4.6.7/examples/tutorial_derive/03_02_option.rs similarity index 100% rename from third_party/crates/clap-4.6.6/examples/tutorial_derive/03_02_option.rs rename to third_party/crates/clap-4.6.7/examples/tutorial_derive/03_02_option.rs diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_derive/03_02_option_mult.md b/third_party/crates/clap-4.6.7/examples/tutorial_derive/03_02_option_mult.md similarity index 100% rename from third_party/crates/clap-4.6.6/examples/tutorial_derive/03_02_option_mult.md rename to third_party/crates/clap-4.6.7/examples/tutorial_derive/03_02_option_mult.md diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_derive/03_02_option_mult.rs b/third_party/crates/clap-4.6.7/examples/tutorial_derive/03_02_option_mult.rs similarity index 100% rename from third_party/crates/clap-4.6.6/examples/tutorial_derive/03_02_option_mult.rs rename to third_party/crates/clap-4.6.7/examples/tutorial_derive/03_02_option_mult.rs diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_derive/03_03_positional.md b/third_party/crates/clap-4.6.7/examples/tutorial_derive/03_03_positional.md similarity index 100% rename from third_party/crates/clap-4.6.6/examples/tutorial_derive/03_03_positional.md rename to third_party/crates/clap-4.6.7/examples/tutorial_derive/03_03_positional.md diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_derive/03_03_positional.rs b/third_party/crates/clap-4.6.7/examples/tutorial_derive/03_03_positional.rs similarity index 100% rename from third_party/crates/clap-4.6.6/examples/tutorial_derive/03_03_positional.rs rename to third_party/crates/clap-4.6.7/examples/tutorial_derive/03_03_positional.rs diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_derive/03_03_positional_mult.md b/third_party/crates/clap-4.6.7/examples/tutorial_derive/03_03_positional_mult.md similarity index 100% rename from third_party/crates/clap-4.6.6/examples/tutorial_derive/03_03_positional_mult.md rename to third_party/crates/clap-4.6.7/examples/tutorial_derive/03_03_positional_mult.md diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_derive/03_03_positional_mult.rs b/third_party/crates/clap-4.6.7/examples/tutorial_derive/03_03_positional_mult.rs similarity index 100% rename from third_party/crates/clap-4.6.6/examples/tutorial_derive/03_03_positional_mult.rs rename to third_party/crates/clap-4.6.7/examples/tutorial_derive/03_03_positional_mult.rs diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_derive/03_04_subcommands.md b/third_party/crates/clap-4.6.7/examples/tutorial_derive/03_04_subcommands.md similarity index 100% rename from third_party/crates/clap-4.6.6/examples/tutorial_derive/03_04_subcommands.md rename to third_party/crates/clap-4.6.7/examples/tutorial_derive/03_04_subcommands.md diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_derive/03_04_subcommands.rs b/third_party/crates/clap-4.6.7/examples/tutorial_derive/03_04_subcommands.rs similarity index 100% rename from third_party/crates/clap-4.6.6/examples/tutorial_derive/03_04_subcommands.rs rename to third_party/crates/clap-4.6.7/examples/tutorial_derive/03_04_subcommands.rs diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_derive/03_04_subcommands_alt.rs b/third_party/crates/clap-4.6.7/examples/tutorial_derive/03_04_subcommands_alt.rs similarity index 100% rename from third_party/crates/clap-4.6.6/examples/tutorial_derive/03_04_subcommands_alt.rs rename to third_party/crates/clap-4.6.7/examples/tutorial_derive/03_04_subcommands_alt.rs diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_derive/03_05_default_values.md b/third_party/crates/clap-4.6.7/examples/tutorial_derive/03_05_default_values.md similarity index 100% rename from third_party/crates/clap-4.6.6/examples/tutorial_derive/03_05_default_values.md rename to third_party/crates/clap-4.6.7/examples/tutorial_derive/03_05_default_values.md diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_derive/03_05_default_values.rs b/third_party/crates/clap-4.6.7/examples/tutorial_derive/03_05_default_values.rs similarity index 100% rename from third_party/crates/clap-4.6.6/examples/tutorial_derive/03_05_default_values.rs rename to third_party/crates/clap-4.6.7/examples/tutorial_derive/03_05_default_values.rs diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_derive/03_06_optional.md b/third_party/crates/clap-4.6.7/examples/tutorial_derive/03_06_optional.md similarity index 100% rename from third_party/crates/clap-4.6.6/examples/tutorial_derive/03_06_optional.md rename to third_party/crates/clap-4.6.7/examples/tutorial_derive/03_06_optional.md diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_derive/03_06_optional.rs b/third_party/crates/clap-4.6.7/examples/tutorial_derive/03_06_optional.rs similarity index 100% rename from third_party/crates/clap-4.6.6/examples/tutorial_derive/03_06_optional.rs rename to third_party/crates/clap-4.6.7/examples/tutorial_derive/03_06_optional.rs diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_derive/04_01_enum.md b/third_party/crates/clap-4.6.7/examples/tutorial_derive/04_01_enum.md similarity index 100% rename from third_party/crates/clap-4.6.6/examples/tutorial_derive/04_01_enum.md rename to third_party/crates/clap-4.6.7/examples/tutorial_derive/04_01_enum.md diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_derive/04_01_enum.rs b/third_party/crates/clap-4.6.7/examples/tutorial_derive/04_01_enum.rs similarity index 100% rename from third_party/crates/clap-4.6.6/examples/tutorial_derive/04_01_enum.rs rename to third_party/crates/clap-4.6.7/examples/tutorial_derive/04_01_enum.rs diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_derive/04_02_parse.md b/third_party/crates/clap-4.6.7/examples/tutorial_derive/04_02_parse.md similarity index 100% rename from third_party/crates/clap-4.6.6/examples/tutorial_derive/04_02_parse.md rename to third_party/crates/clap-4.6.7/examples/tutorial_derive/04_02_parse.md diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_derive/04_02_parse.rs b/third_party/crates/clap-4.6.7/examples/tutorial_derive/04_02_parse.rs similarity index 100% rename from third_party/crates/clap-4.6.6/examples/tutorial_derive/04_02_parse.rs rename to third_party/crates/clap-4.6.7/examples/tutorial_derive/04_02_parse.rs diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_derive/04_02_validate.md b/third_party/crates/clap-4.6.7/examples/tutorial_derive/04_02_validate.md similarity index 100% rename from third_party/crates/clap-4.6.6/examples/tutorial_derive/04_02_validate.md rename to third_party/crates/clap-4.6.7/examples/tutorial_derive/04_02_validate.md diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_derive/04_02_validate.rs b/third_party/crates/clap-4.6.7/examples/tutorial_derive/04_02_validate.rs similarity index 100% rename from third_party/crates/clap-4.6.6/examples/tutorial_derive/04_02_validate.rs rename to third_party/crates/clap-4.6.7/examples/tutorial_derive/04_02_validate.rs diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_derive/04_03_relations.md b/third_party/crates/clap-4.6.7/examples/tutorial_derive/04_03_relations.md similarity index 100% rename from third_party/crates/clap-4.6.6/examples/tutorial_derive/04_03_relations.md rename to third_party/crates/clap-4.6.7/examples/tutorial_derive/04_03_relations.md diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_derive/04_03_relations.rs b/third_party/crates/clap-4.6.7/examples/tutorial_derive/04_03_relations.rs similarity index 100% rename from third_party/crates/clap-4.6.6/examples/tutorial_derive/04_03_relations.rs rename to third_party/crates/clap-4.6.7/examples/tutorial_derive/04_03_relations.rs diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_derive/04_04_custom.md b/third_party/crates/clap-4.6.7/examples/tutorial_derive/04_04_custom.md similarity index 100% rename from third_party/crates/clap-4.6.6/examples/tutorial_derive/04_04_custom.md rename to third_party/crates/clap-4.6.7/examples/tutorial_derive/04_04_custom.md diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_derive/04_04_custom.rs b/third_party/crates/clap-4.6.7/examples/tutorial_derive/04_04_custom.rs similarity index 100% rename from third_party/crates/clap-4.6.6/examples/tutorial_derive/04_04_custom.rs rename to third_party/crates/clap-4.6.7/examples/tutorial_derive/04_04_custom.rs diff --git a/third_party/crates/clap-4.6.6/examples/tutorial_derive/05_01_assert.rs b/third_party/crates/clap-4.6.7/examples/tutorial_derive/05_01_assert.rs similarity index 100% rename from third_party/crates/clap-4.6.6/examples/tutorial_derive/05_01_assert.rs rename to third_party/crates/clap-4.6.7/examples/tutorial_derive/05_01_assert.rs diff --git a/third_party/crates/clap-4.6.6/examples/typed-derive/builtin.md b/third_party/crates/clap-4.6.7/examples/typed-derive/builtin.md similarity index 100% rename from third_party/crates/clap-4.6.6/examples/typed-derive/builtin.md rename to third_party/crates/clap-4.6.7/examples/typed-derive/builtin.md diff --git a/third_party/crates/clap-4.6.6/examples/typed-derive/builtin.rs b/third_party/crates/clap-4.6.7/examples/typed-derive/builtin.rs similarity index 100% rename from third_party/crates/clap-4.6.6/examples/typed-derive/builtin.rs rename to third_party/crates/clap-4.6.7/examples/typed-derive/builtin.rs diff --git a/third_party/crates/clap-4.6.6/examples/typed-derive/custom.md b/third_party/crates/clap-4.6.7/examples/typed-derive/custom.md similarity index 100% rename from third_party/crates/clap-4.6.6/examples/typed-derive/custom.md rename to third_party/crates/clap-4.6.7/examples/typed-derive/custom.md diff --git a/third_party/crates/clap-4.6.6/examples/typed-derive/custom.rs b/third_party/crates/clap-4.6.7/examples/typed-derive/custom.rs similarity index 91% rename from third_party/crates/clap-4.6.6/examples/typed-derive/custom.rs rename to third_party/crates/clap-4.6.7/examples/typed-derive/custom.rs index 7f3f072..8914c88 100644 --- a/third_party/crates/clap-4.6.6/examples/typed-derive/custom.rs +++ b/third_party/crates/clap-4.6.7/examples/typed-derive/custom.rs @@ -19,10 +19,10 @@ pub(crate) enum TargetVersion { impl std::fmt::Display for TargetVersion { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> { match self { - TargetVersion::Relative(bump_level) => { + Self::Relative(bump_level) => { write!(f, "{bump_level}") } - TargetVersion::Absolute(version) => { + Self::Absolute(version) => { write!(f, "{version}") } } @@ -34,9 +34,9 @@ impl std::str::FromStr for TargetVersion { fn from_str(s: &str) -> Result { if let Ok(bump_level) = BumpLevel::from_str(s) { - Ok(TargetVersion::Relative(bump_level)) + Ok(Self::Relative(bump_level)) } else { - Ok(TargetVersion::Absolute( + Ok(Self::Absolute( semver::Version::parse(s).map_err(|e| e.to_string())?, )) } diff --git a/third_party/crates/clap-4.6.6/examples/typed-derive/fn_parser.md b/third_party/crates/clap-4.6.7/examples/typed-derive/fn_parser.md similarity index 100% rename from third_party/crates/clap-4.6.6/examples/typed-derive/fn_parser.md rename to third_party/crates/clap-4.6.7/examples/typed-derive/fn_parser.md diff --git a/third_party/crates/clap-4.6.6/examples/typed-derive/fn_parser.rs b/third_party/crates/clap-4.6.7/examples/typed-derive/fn_parser.rs similarity index 100% rename from third_party/crates/clap-4.6.6/examples/typed-derive/fn_parser.rs rename to third_party/crates/clap-4.6.7/examples/typed-derive/fn_parser.rs diff --git a/third_party/crates/clap-4.6.6/examples/typed-derive/foreign_crate.rs b/third_party/crates/clap-4.6.7/examples/typed-derive/foreign_crate.rs similarity index 100% rename from third_party/crates/clap-4.6.6/examples/typed-derive/foreign_crate.rs rename to third_party/crates/clap-4.6.7/examples/typed-derive/foreign_crate.rs diff --git a/third_party/crates/clap-4.6.6/examples/typed-derive/implicit.md b/third_party/crates/clap-4.6.7/examples/typed-derive/implicit.md similarity index 100% rename from third_party/crates/clap-4.6.6/examples/typed-derive/implicit.md rename to third_party/crates/clap-4.6.7/examples/typed-derive/implicit.md diff --git a/third_party/crates/clap-4.6.6/examples/typed-derive/implicit.rs b/third_party/crates/clap-4.6.7/examples/typed-derive/implicit.rs similarity index 100% rename from third_party/crates/clap-4.6.6/examples/typed-derive/implicit.rs rename to third_party/crates/clap-4.6.7/examples/typed-derive/implicit.rs diff --git a/third_party/crates/clap-4.6.6/examples/typed-derive/main.rs b/third_party/crates/clap-4.6.7/examples/typed-derive/main.rs similarity index 100% rename from third_party/crates/clap-4.6.6/examples/typed-derive/main.rs rename to third_party/crates/clap-4.6.7/examples/typed-derive/main.rs diff --git a/third_party/crates/clap-4.6.6/src/_concepts.rs b/third_party/crates/clap-4.6.7/src/_concepts.rs similarity index 100% rename from third_party/crates/clap-4.6.6/src/_concepts.rs rename to third_party/crates/clap-4.6.7/src/_concepts.rs diff --git a/third_party/crates/clap-4.6.6/src/_cookbook/cargo_example.rs b/third_party/crates/clap-4.6.7/src/_cookbook/cargo_example.rs similarity index 100% rename from third_party/crates/clap-4.6.6/src/_cookbook/cargo_example.rs rename to third_party/crates/clap-4.6.7/src/_cookbook/cargo_example.rs diff --git a/third_party/crates/clap-4.6.6/src/_cookbook/cargo_example_derive.rs b/third_party/crates/clap-4.6.7/src/_cookbook/cargo_example_derive.rs similarity index 100% rename from third_party/crates/clap-4.6.6/src/_cookbook/cargo_example_derive.rs rename to third_party/crates/clap-4.6.7/src/_cookbook/cargo_example_derive.rs diff --git a/third_party/crates/clap-4.6.6/src/_cookbook/escaped_positional.rs b/third_party/crates/clap-4.6.7/src/_cookbook/escaped_positional.rs similarity index 100% rename from third_party/crates/clap-4.6.6/src/_cookbook/escaped_positional.rs rename to third_party/crates/clap-4.6.7/src/_cookbook/escaped_positional.rs diff --git a/third_party/crates/clap-4.6.6/src/_cookbook/escaped_positional_derive.rs b/third_party/crates/clap-4.6.7/src/_cookbook/escaped_positional_derive.rs similarity index 100% rename from third_party/crates/clap-4.6.6/src/_cookbook/escaped_positional_derive.rs rename to third_party/crates/clap-4.6.7/src/_cookbook/escaped_positional_derive.rs diff --git a/third_party/crates/clap-4.6.6/src/_cookbook/find.rs b/third_party/crates/clap-4.6.7/src/_cookbook/find.rs similarity index 100% rename from third_party/crates/clap-4.6.6/src/_cookbook/find.rs rename to third_party/crates/clap-4.6.7/src/_cookbook/find.rs diff --git a/third_party/crates/clap-4.6.6/src/_cookbook/git.rs b/third_party/crates/clap-4.6.7/src/_cookbook/git.rs similarity index 100% rename from third_party/crates/clap-4.6.6/src/_cookbook/git.rs rename to third_party/crates/clap-4.6.7/src/_cookbook/git.rs diff --git a/third_party/crates/clap-4.6.6/src/_cookbook/git_derive.rs b/third_party/crates/clap-4.6.7/src/_cookbook/git_derive.rs similarity index 100% rename from third_party/crates/clap-4.6.6/src/_cookbook/git_derive.rs rename to third_party/crates/clap-4.6.7/src/_cookbook/git_derive.rs diff --git a/third_party/crates/clap-4.6.6/src/_cookbook/mod.rs b/third_party/crates/clap-4.6.7/src/_cookbook/mod.rs similarity index 100% rename from third_party/crates/clap-4.6.6/src/_cookbook/mod.rs rename to third_party/crates/clap-4.6.7/src/_cookbook/mod.rs diff --git a/third_party/crates/clap-4.6.6/src/_cookbook/multicall_busybox.rs b/third_party/crates/clap-4.6.7/src/_cookbook/multicall_busybox.rs similarity index 100% rename from third_party/crates/clap-4.6.6/src/_cookbook/multicall_busybox.rs rename to third_party/crates/clap-4.6.7/src/_cookbook/multicall_busybox.rs diff --git a/third_party/crates/clap-4.6.6/src/_cookbook/multicall_hostname.rs b/third_party/crates/clap-4.6.7/src/_cookbook/multicall_hostname.rs similarity index 100% rename from third_party/crates/clap-4.6.6/src/_cookbook/multicall_hostname.rs rename to third_party/crates/clap-4.6.7/src/_cookbook/multicall_hostname.rs diff --git a/third_party/crates/clap-4.6.6/src/_cookbook/pacman.rs b/third_party/crates/clap-4.6.7/src/_cookbook/pacman.rs similarity index 100% rename from third_party/crates/clap-4.6.6/src/_cookbook/pacman.rs rename to third_party/crates/clap-4.6.7/src/_cookbook/pacman.rs diff --git a/third_party/crates/clap-4.6.6/src/_cookbook/repl.rs b/third_party/crates/clap-4.6.7/src/_cookbook/repl.rs similarity index 100% rename from third_party/crates/clap-4.6.6/src/_cookbook/repl.rs rename to third_party/crates/clap-4.6.7/src/_cookbook/repl.rs diff --git a/third_party/crates/clap-4.6.6/src/_cookbook/repl_derive.rs b/third_party/crates/clap-4.6.7/src/_cookbook/repl_derive.rs similarity index 100% rename from third_party/crates/clap-4.6.6/src/_cookbook/repl_derive.rs rename to third_party/crates/clap-4.6.7/src/_cookbook/repl_derive.rs diff --git a/third_party/crates/clap-4.6.6/src/_cookbook/typed_derive.rs b/third_party/crates/clap-4.6.7/src/_cookbook/typed_derive.rs similarity index 100% rename from third_party/crates/clap-4.6.6/src/_cookbook/typed_derive.rs rename to third_party/crates/clap-4.6.7/src/_cookbook/typed_derive.rs diff --git a/third_party/crates/clap-4.6.6/src/_derive/_tutorial.rs b/third_party/crates/clap-4.6.7/src/_derive/_tutorial.rs similarity index 100% rename from third_party/crates/clap-4.6.6/src/_derive/_tutorial.rs rename to third_party/crates/clap-4.6.7/src/_derive/_tutorial.rs diff --git a/third_party/crates/clap-4.6.6/src/_derive/mod.rs b/third_party/crates/clap-4.6.7/src/_derive/mod.rs similarity index 95% rename from third_party/crates/clap-4.6.6/src/_derive/mod.rs rename to third_party/crates/clap-4.6.7/src/_derive/mod.rs index 766a218..3d68a6f 100644 --- a/third_party/crates/clap-4.6.6/src/_derive/mod.rs +++ b/third_party/crates/clap-4.6.7/src/_derive/mod.rs @@ -161,6 +161,20 @@ //! - When not present: [Doc comment](#doc-comments) if there is a blank line, else nothing //! - When present without a value: [Doc comment](#doc-comments) //! - `verbatim_doc_comment`: Minimizes pre-processing when converting doc comments to [`about`][crate::Command::about] / [`long_about`][crate::Command::long_about] +//! - `defer = `: Delay argument construction for an enum's subcommands with +//! [`Command::defer`][crate::Command::defer]. Available on [`Parser`][crate::Parser] and +//! [`Subcommand`][crate::Subcommand] enum containers. +//! - When not present: `false`, or `true` with the `unstable-v5` feature. +//! - Subcommand names and attributes on the variants are applied eagerly, so their descriptions +//! are available in the parent's help. Arguments and groups in named variants, and the entire +//! [`Args::augment_args`][crate::Args::augment_args] call for newtype variants, are deferred. +//! - Put metadata needed by the parent's help on the enum variants. Metadata from an `Args` +//! container or its flattened fields is applied when the subcommand is built, and can then +//! override metadata on the variant. +//! - Flattened and nested `Subcommand` enums use their own `defer` setting. The setting is not +//! inherited by those enums and does not defer their registration in the parent. +//! - Call [`Command::build`][crate::Command::build] before inspecting deferred arguments or +//! nested commands. Parsing builds the selected commands automatically. //! - `next_display_order`: [`Command::next_display_order`][crate::Command::next_display_order] //! - `next_help_heading`: [`Command::next_help_heading`][crate::Command::next_help_heading] //! - When `flatten`ing [`Args`][crate::Args], this is scoped to just the args in this struct and any struct `flatten`ed into it diff --git a/third_party/crates/clap-4.6.6/src/_faq.rs b/third_party/crates/clap-4.6.7/src/_faq.rs similarity index 100% rename from third_party/crates/clap-4.6.6/src/_faq.rs rename to third_party/crates/clap-4.6.7/src/_faq.rs diff --git a/third_party/crates/clap-4.6.6/src/_features.rs b/third_party/crates/clap-4.6.7/src/_features.rs similarity index 100% rename from third_party/crates/clap-4.6.6/src/_features.rs rename to third_party/crates/clap-4.6.7/src/_features.rs diff --git a/third_party/crates/clap-4.6.6/src/_tutorial.rs b/third_party/crates/clap-4.6.7/src/_tutorial.rs similarity index 100% rename from third_party/crates/clap-4.6.6/src/_tutorial.rs rename to third_party/crates/clap-4.6.7/src/_tutorial.rs diff --git a/third_party/crates/clap-4.6.6/src/bin/stdio-fixture.rs b/third_party/crates/clap-4.6.7/src/bin/stdio-fixture.rs similarity index 100% rename from third_party/crates/clap-4.6.6/src/bin/stdio-fixture.rs rename to third_party/crates/clap-4.6.7/src/bin/stdio-fixture.rs diff --git a/third_party/crates/clap-4.6.6/src/lib.rs b/third_party/crates/clap-4.6.7/src/lib.rs similarity index 98% rename from third_party/crates/clap-4.6.6/src/lib.rs rename to third_party/crates/clap-4.6.7/src/lib.rs index 239aa2b..a127014 100644 --- a/third_party/crates/clap-4.6.6/src/lib.rs +++ b/third_party/crates/clap-4.6.7/src/lib.rs @@ -12,7 +12,7 @@ //! - [CLI Concepts][_concepts] //! - [FAQ][_faq] //! - [Discussions](https://github.com/clap-rs/clap/discussions) -//! - [CHANGELOG](https://github.com/clap-rs/clap/blob/v4.6.6/CHANGELOG.md) (includes major version migration +//! - [CHANGELOG](https://github.com/clap-rs/clap/blob/v4.6.7/CHANGELOG.md) (includes major version migration //! guides) //! //! ## Aspirations diff --git a/third_party/crates/clap_builder-4.6.6/.cargo_vcs_info.json b/third_party/crates/clap_builder-4.6.6/.cargo_vcs_info.json deleted file mode 100644 index ba0f0e6..0000000 --- a/third_party/crates/clap_builder-4.6.6/.cargo_vcs_info.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "git": { - "sha1": "4a622b4340d5e1fffff60c0ecefdc6882f738159" - }, - "path_in_vcs": "clap_builder" -} \ No newline at end of file diff --git a/third_party/crates/clap_builder-4.6.6/.cargo-checksum.json b/third_party/crates/clap_builder-4.6.7/.cargo-checksum.json similarity index 54% rename from third_party/crates/clap_builder-4.6.6/.cargo-checksum.json rename to third_party/crates/clap_builder-4.6.7/.cargo-checksum.json index fdeb558..c5265c7 100644 --- a/third_party/crates/clap_builder-4.6.6/.cargo-checksum.json +++ b/third_party/crates/clap_builder-4.6.7/.cargo-checksum.json @@ -1 +1 @@ -{"$comment":"This file only protects against accidental modifications. It is not a security mechanism and does not protect against malicious changes.","files":{".cargo_vcs_info.json":"971f53852330dfdc5baf2c6c9e999e6fc6547b07018abdc8497e3de4e385e5a0","Cargo.lock":"ef59da9a69ae4f552c17976f8708408e3d1ee965db729c7ac439d75163c89367","Cargo.toml":"7dd98cbe90c16f5ee39b52f0f71f4f1f2b8646d17e2d35afe09cc27d599bd5bb","Cargo.toml.orig":"b1d71dcb7672472687975cad958818d68df5c18727c3d1947170248aa588f659","LICENSE-APACHE":"c6596eb7be8581c18be736c846fb9173b69eccf6ef94c5135893ec56bd92ba08","LICENSE-MIT":"6efb0476a1cc085077ed49357026d8c173bf33017278ef440f222fb9cbcb66e6","README.md":"f42fbb1b8c923e94e17446f00e820da68ff3932d008610298e91ab68558326e7","src/builder/action.rs":"121e3f3f18094a47a9ff122ee0b6b8b2f07f49c52a7745bd504cec17f95048d5","src/builder/app_settings.rs":"05143ef7a7d318f5d56025e1633174c2d0e3fccb1918aee7fac77b453cc3a82e","src/builder/arg.rs":"b3b3cdb47feee4388ad24a6ed5edb86a743e8a27d615c5ef1ee284433c18d160","src/builder/arg_group.rs":"fdbf126726840340dc7fde5a088d899a1aa59dbb291f26cf23850130045306ea","src/builder/arg_predicate.rs":"4fe55fdd0441acb1577f28188c86f920df4863f451a7dcad8e050dbb6e1e7516","src/builder/arg_settings.rs":"e8ad1bd6d36da43d7329b6cd86833d4cc63734e64119c6b950a45ded5e3aec9c","src/builder/command.rs":"ec8854cb291bb4f666de87470c99459db312ba9addd0864cedf83e52225cd8fc","src/builder/debug_asserts.rs":"20dd51b8294080ea2854e535cbf3bb1317a23afeccf428f18e30e5bf9b9c407f","src/builder/ext.rs":"b337f096992d51f686e64096fc219340c38276c7cd27199711c5862f86925d59","src/builder/mod.rs":"c2b552aced3607ad926c72ad6fb4ccf7dfb0df57185084f0c0427b9b5136b1c8","src/builder/os_str.rs":"feaa8898a08f0112b08759692d66d286c6116579b72c8856057305369f4d5e9f","src/builder/possible_value.rs":"5f0fed011d0a713add63edeb1faacf1212ef095b6620ecb4449bddd737819d51","src/builder/range.rs":"ecc8f3f9a3344b25504e854cbe10db989fa613bfc71d0207211beb1cbe42b13b","src/builder/resettable.rs":"c4cd481051ec361529817ebae73b4dd307b0a4a3b88a3ddcecb8dd45b05db431","src/builder/str.rs":"0bdb58597d8568a2bc421a49953a2929de93a8f939a03cbb8a0791bb78326a82","src/builder/styled_str.rs":"c0fc67133db98a4ebf3bf9cf99e1f3891465f92530d6d69bf39c3025cff49d3d","src/builder/styling.rs":"e9b5de80b697e5386a2d6ebccadb737bccee37545f7b2840e66e6bc9a04495f7","src/builder/tests.rs":"98d8722732e1c45aee32960fdfd763dd03dae6a04e2e5198459b57f42ee7468b","src/builder/value_hint.rs":"9620c65897be73c09c53aaa6d74ea3cd07f0e23191f8d89420d6fb033e4b055e","src/builder/value_parser.rs":"4342c19e43fc783b7adea44c74d3bd35a13ee0f7982d79e63867c9d7258d4042","src/derive.rs":"dc791dba6b131831902ff1b38943b73a0b1ec22e9ae7d7243557d34a63d3f8e6","src/error/context.rs":"156d2611a349ce826378476c9dcb3242a01ad834a095baad096a10cc2f73e1ed","src/error/format.rs":"4d6ebf19760331de05cabcedffe33a297fab82c9252949d904e2fe88620ec50e","src/error/kind.rs":"63d46fcc06df195060b6a996659f7d39452b4a30597a081a7b4878c33b6b3a31","src/error/mod.rs":"deb632e970f060d95ba944f0cb273434b3fc94e4a47e5c6bc08672dc47d8e749","src/lib.rs":"bd8987448be4ace2a3501375f6850261252f3485ea1c9879e137a2245359fbf5","src/macros.rs":"3f60aff102fb43aaeeecac07c1a98b040205f41972a290e0f3fc2641e8dbbc4f","src/mkeymap.rs":"5ff664de7fa22e03e081dfddd59e0eecb9938dbf245e6f3730da6b32f8a07217","src/output/fmt.rs":"d35009cc66b455fad4ad6edfe22d201187985a7bd68615d37d29873b36666dd4","src/output/help.rs":"b3bb6cfffe9c1113d377f1f4951a22b6ad2ba2813dcc55a146899c808cd393d3","src/output/help_template.rs":"12a050e83acfeb1b9fb60267c8e3585ed3744d5e71ec27c2030e8ab3ce65d0df","src/output/mod.rs":"74ea52be8981c30d10fda3f6c80cf51aafb15700de99aa73bc94700bca25ae11","src/output/textwrap/core.rs":"0d45b1ebe8bba3e54e8bcbfec015be626d55803a0a46aef753eb3a4be3cabab4","src/output/textwrap/mod.rs":"37dd12c2c75d47129ee1213de019b0691f5f64d2389141e3c8e703665cb68669","src/output/textwrap/word_separators.rs":"ae3af310295e707ae1aa95633f6bb078cedf8f65662a86caa9d25420f459acc1","src/output/textwrap/wrap_algorithms.rs":"c1cee22c0a0dd0ffc18adb7cae8d5f105082d8b57569528cbaf778dec6b49871","src/output/usage.rs":"bc163453080573e8c9065ad69e0e5a5d89ed31af88f6b7444379f4696f5aef02","src/parser/arg_matcher.rs":"d4c06b94650c7b55eff41d454339c2ea4c76397719f571aa8be38019279fffce","src/parser/error.rs":"7503c057412325e1449e37981e9b3446a02b30a9fb7b69bedc39540555f5eef5","src/parser/features/mod.rs":"6ed075e97af56bff22f22ed1ee83ff6479360e05f9d3661a3145f822c242b694","src/parser/features/suggestions.rs":"53bc28bfcf16695a2c47a0f5e23ff1e17a0122b01a578058770b27d9559be4ad","src/parser/matches/arg_matches.rs":"bff90ec6afeaa8133369277036ab7c191274fe6751ed0c78b621d9ad6addedba","src/parser/matches/matched_arg.rs":"10d79cafdae5bd8fe29bff091600e15d921ca0b36a8e2e798d4dbd9fd13e0049","src/parser/matches/mod.rs":"5578335f4b9103cc4060546621e5664d5e92c43848ec48c2d95a4b045373de1f","src/parser/matches/value_source.rs":"ecb9e09db06579489daa9cbcf351381041dff7c5e2956fb96052b70b9360955b","src/parser/mod.rs":"985c4c3bf0167c0902a1063b19b14043bbdab5e54166554790388e323668f955","src/parser/parser.rs":"0347f3b3f6fc4665634050cbbe3dd88a9b98474e1312bdccfa8e9c119935faf3","src/parser/validator.rs":"6d8ab4e765833e592a11722e92f81881fee1e5e9443f8dfab497d0a672963037","src/util/any_value.rs":"ac88e78c520ae84edb160c121d1277ce64db3aea7199fbddfe1024d6c312f722","src/util/color.rs":"bb30d024f4d4af0de21d3d790d08ca8002c9ef97d4db1137d7db0179ebf75632","src/util/escape.rs":"ca4b06f64dee555ac4a92a3416b6880c771047ae5487d4aaf8265b1a0069196c","src/util/flat_map.rs":"b0ea1259d8983edd83011f71513f53a9585f9a7d075e53ff919b3f85069732ac","src/util/flat_set.rs":"6c7852c7fe57346ac77e84ca32a4856ebf55b6e7540cc15635077d548481160b","src/util/graph.rs":"f35396b6e2a427377dcbbca69b1b98737d89684a3834cfda98cbf8cc70ff9c2f","src/util/id.rs":"cf02de66ae49ff768100b135278f75d5c484921ab3b7c6358ac4dc0f12604adc","src/util/mod.rs":"ff57dfec6b3a71fc31d165a0d20b13cb772f3fe1f825ed478e9fda04cf85b6fc","src/util/str_to_bool.rs":"1ce90b4939a884eeefc73392722bdfcf906e3070c4398e1557c586c10c684cd0"},"package":"7b48fea5a88e9ae728a2dcbedbfc0e730f7d60da42e1cb049a83c9fb8b789889"} \ No newline at end of file +{"$comment":"This file only protects against accidental modifications. It is not a security mechanism and does not protect against malicious changes.","files":{".cargo_vcs_info.json":"49fa34d468f0664f68ef865ee8594d26e7001023c2e298c2295d5594e1c64849","Cargo.lock":"73c2d1f87a098ad1073c31434d7594e9df512966d6ff59420afa3f87ae9fd600","Cargo.toml":"6713390509693d70b80f30cecf55b09b4cc79d536dbd3252d2cacfb1abca9727","Cargo.toml.orig":"ff1473ffc20f0e61541ddbefd212caa595bd3033bd0556b4b48a516e77e5d3d1","LICENSE-APACHE":"249fdb6694467dd615b259f7ddde07be3f8ae5a72cecebb0e24f6629af4215fe","LICENSE-MIT":"6efb0476a1cc085077ed49357026d8c173bf33017278ef440f222fb9cbcb66e6","README.md":"f42fbb1b8c923e94e17446f00e820da68ff3932d008610298e91ab68558326e7","src/builder/action.rs":"121e3f3f18094a47a9ff122ee0b6b8b2f07f49c52a7745bd504cec17f95048d5","src/builder/app_settings.rs":"05143ef7a7d318f5d56025e1633174c2d0e3fccb1918aee7fac77b453cc3a82e","src/builder/arg.rs":"4c2281170249a34878ddab824c70e5a80a41f4eb11ac0e8b6f58303d3f01d2d8","src/builder/arg_group.rs":"d01681d1aaba0a376a92e5e2d1ca89c6be699a06da80365f72d52db5b5f82325","src/builder/arg_predicate.rs":"4fe55fdd0441acb1577f28188c86f920df4863f451a7dcad8e050dbb6e1e7516","src/builder/arg_settings.rs":"e8ad1bd6d36da43d7329b6cd86833d4cc63734e64119c6b950a45ded5e3aec9c","src/builder/command.rs":"495d471f5b60b0c61e926ac729f0ba34f835cff1119f8b0f87aee642b70cea11","src/builder/debug_asserts.rs":"20dd51b8294080ea2854e535cbf3bb1317a23afeccf428f18e30e5bf9b9c407f","src/builder/ext.rs":"b337f096992d51f686e64096fc219340c38276c7cd27199711c5862f86925d59","src/builder/mod.rs":"c2b552aced3607ad926c72ad6fb4ccf7dfb0df57185084f0c0427b9b5136b1c8","src/builder/os_str.rs":"d962afab42772b0429f6a570bd0fc8c1b47fc3c3073bb2ca2303474061f67e9b","src/builder/possible_value.rs":"3c174a11e4e893adb0912084ea2f0432258e773871f8c41813df176917cace08","src/builder/range.rs":"ecc8f3f9a3344b25504e854cbe10db989fa613bfc71d0207211beb1cbe42b13b","src/builder/resettable.rs":"e8e8c94b77ba1d226c609eb9044a035601a7c8f6f64fcae20052bf9e9c066902","src/builder/str.rs":"4d77e812cc5ea783f7065d239bad050ef340045a0dc50ded012b2c67241f7d11","src/builder/styled_str.rs":"e09663bcbd99b283794618331a8c31cbbf0f321ddd63c1bf5f118c45e084d751","src/builder/styling.rs":"e9b5de80b697e5386a2d6ebccadb737bccee37545f7b2840e66e6bc9a04495f7","src/builder/tests.rs":"98d8722732e1c45aee32960fdfd763dd03dae6a04e2e5198459b57f42ee7468b","src/builder/value_hint.rs":"94edd8bb17a898959a92b12d7556286b13612a25832dfe56de914c79d0d21f4f","src/builder/value_parser.rs":"408d538a5ec467ba22db1231d2b48f1ecc3cbe4c6b25eec968699e4ad3da18e4","src/derive.rs":"9435f58f2ebcc16aba2bbc3a5374e0dfd4fe1d1bfc4cd6dc5ca8a08d4e9e9680","src/error/context.rs":"156d2611a349ce826378476c9dcb3242a01ad834a095baad096a10cc2f73e1ed","src/error/format.rs":"4d6ebf19760331de05cabcedffe33a297fab82c9252949d904e2fe88620ec50e","src/error/kind.rs":"63d46fcc06df195060b6a996659f7d39452b4a30597a081a7b4878c33b6b3a31","src/error/mod.rs":"e1884c15bf526ad1334c39494a0ba0cf9652c2fa5b0a554367bc3c6373e93fe8","src/lib.rs":"bd8987448be4ace2a3501375f6850261252f3485ea1c9879e137a2245359fbf5","src/macros.rs":"3f60aff102fb43aaeeecac07c1a98b040205f41972a290e0f3fc2641e8dbbc4f","src/mkeymap.rs":"7911271311ef9ab092069fe93e6b9d6b86d2637c50655f335a81361694c2edc9","src/output/fmt.rs":"7404d4b7a284d858c33b479dcc87e1197f5575481a77105b3ffc8c604b9a8f0e","src/output/help.rs":"b3bb6cfffe9c1113d377f1f4951a22b6ad2ba2813dcc55a146899c808cd393d3","src/output/help_template.rs":"12a050e83acfeb1b9fb60267c8e3585ed3744d5e71ec27c2030e8ab3ce65d0df","src/output/mod.rs":"74ea52be8981c30d10fda3f6c80cf51aafb15700de99aa73bc94700bca25ae11","src/output/textwrap/core.rs":"0d45b1ebe8bba3e54e8bcbfec015be626d55803a0a46aef753eb3a4be3cabab4","src/output/textwrap/mod.rs":"37dd12c2c75d47129ee1213de019b0691f5f64d2389141e3c8e703665cb68669","src/output/textwrap/word_separators.rs":"ae3af310295e707ae1aa95633f6bb078cedf8f65662a86caa9d25420f459acc1","src/output/textwrap/wrap_algorithms.rs":"c1cee22c0a0dd0ffc18adb7cae8d5f105082d8b57569528cbaf778dec6b49871","src/output/usage.rs":"bc163453080573e8c9065ad69e0e5a5d89ed31af88f6b7444379f4696f5aef02","src/parser/arg_matcher.rs":"4d515740dfe1d8875747e191c3bc1a8f5e5ac4e133e294f9d1025fe875c577b3","src/parser/error.rs":"3b5d9cd00d37b62b9185ed264676993d28591112cdfe3475f89b1e476696da4d","src/parser/features/mod.rs":"6ed075e97af56bff22f22ed1ee83ff6479360e05f9d3661a3145f822c242b694","src/parser/features/suggestions.rs":"53bc28bfcf16695a2c47a0f5e23ff1e17a0122b01a578058770b27d9559be4ad","src/parser/matches/arg_matches.rs":"d024ce60b6bfeda2da51a0deb8086460bdca42657efadfcbeb35a595725e9176","src/parser/matches/matched_arg.rs":"a871fab7815e35dac1a021f5ac85a5226a3552cf3dbfa0363f15a821a2f858a5","src/parser/matches/mod.rs":"5578335f4b9103cc4060546621e5664d5e92c43848ec48c2d95a4b045373de1f","src/parser/matches/value_source.rs":"ecb9e09db06579489daa9cbcf351381041dff7c5e2956fb96052b70b9360955b","src/parser/mod.rs":"985c4c3bf0167c0902a1063b19b14043bbdab5e54166554790388e323668f955","src/parser/parser.rs":"0347f3b3f6fc4665634050cbbe3dd88a9b98474e1312bdccfa8e9c119935faf3","src/parser/validator.rs":"6d8ab4e765833e592a11722e92f81881fee1e5e9443f8dfab497d0a672963037","src/util/any_value.rs":"ac88e78c520ae84edb160c121d1277ce64db3aea7199fbddfe1024d6c312f722","src/util/color.rs":"bb30d024f4d4af0de21d3d790d08ca8002c9ef97d4db1137d7db0179ebf75632","src/util/escape.rs":"ca4b06f64dee555ac4a92a3416b6880c771047ae5487d4aaf8265b1a0069196c","src/util/flat_map.rs":"b0ea1259d8983edd83011f71513f53a9585f9a7d075e53ff919b3f85069732ac","src/util/flat_set.rs":"6c7852c7fe57346ac77e84ca32a4856ebf55b6e7540cc15635077d548481160b","src/util/graph.rs":"a2a62c8e2ff1987af26455f5c04894267a86ab87c71b845bd879192942c212cc","src/util/id.rs":"7fa7378e3183bbf0bf6970a57bd8baebc79ba235f030856637059689a6294b92","src/util/mod.rs":"ff57dfec6b3a71fc31d165a0d20b13cb772f3fe1f825ed478e9fda04cf85b6fc","src/util/str_to_bool.rs":"1ce90b4939a884eeefc73392722bdfcf906e3070c4398e1557c586c10c684cd0"},"package":"ec0797fb7aeb1406c84efac526901f7ec3ead2124f946b494e72879d4b54704d"} \ No newline at end of file diff --git a/third_party/crates/clap_builder-4.6.7/.cargo_vcs_info.json b/third_party/crates/clap_builder-4.6.7/.cargo_vcs_info.json new file mode 100644 index 0000000..819faa7 --- /dev/null +++ b/third_party/crates/clap_builder-4.6.7/.cargo_vcs_info.json @@ -0,0 +1,6 @@ +{ + "git": { + "sha1": "13f2db5072d600c11d8d6298e4e9ba53ffc6c1ab" + }, + "path_in_vcs": "clap_builder" +} \ No newline at end of file diff --git a/third_party/crates/clap_builder-4.6.6/BUILD.bazel b/third_party/crates/clap_builder-4.6.7/BUILD.bazel similarity index 98% rename from third_party/crates/clap_builder-4.6.6/BUILD.bazel rename to third_party/crates/clap_builder-4.6.7/BUILD.bazel index 7967e82..8dabff1 100644 --- a/third_party/crates/clap_builder-4.6.6/BUILD.bazel +++ b/third_party/crates/clap_builder-4.6.7/BUILD.bazel @@ -114,11 +114,11 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "4.6.6", + version = "4.6.7", deps = [ "//third_party/crates/anstream-1.0.0:anstream", "//third_party/crates/anstyle-1.0.14:anstyle", - "//third_party/crates/clap_lex-1.1.0:clap_lex", + "//third_party/crates/clap_lex-1.1.1:clap_lex", "//third_party/crates/strsim-0.11.1:strsim", ], ) diff --git a/third_party/crates/clap_builder-4.6.6/Cargo.lock b/third_party/crates/clap_builder-4.6.7/Cargo.lock similarity index 97% rename from third_party/crates/clap_builder-4.6.6/Cargo.lock rename to third_party/crates/clap_builder-4.6.7/Cargo.lock index da8dc8c..212768f 100644 --- a/third_party/crates/clap_builder-4.6.6/Cargo.lock +++ b/third_party/crates/clap_builder-4.6.7/Cargo.lock @@ -53,7 +53,7 @@ version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc" dependencies = [ - "windows-sys", + "windows-sys 0.61.2", ] [[package]] @@ -64,7 +64,7 @@ checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d" dependencies = [ "anstyle", "once_cell_polyfill", - "windows-sys", + "windows-sys 0.61.2", ] [[package]] @@ -106,7 +106,7 @@ checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" [[package]] name = "clap_builder" -version = "4.6.6" +version = "4.6.7" dependencies = [ "anstream", "anstyle", @@ -162,7 +162,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys", + "windows-sys 0.60.2", ] [[package]] @@ -275,7 +275,7 @@ dependencies = [ "errno", "libc", "linux-raw-sys", - "windows-sys", + "windows-sys 0.60.2", ] [[package]] @@ -379,7 +379,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "230a1b821ccbd75b185820a1f1ff7b14d21da1e442e22c0863ea5f08771a8874" dependencies = [ "rustix", - "windows-sys", + "windows-sys 0.61.2", ] [[package]] @@ -462,6 +462,15 @@ dependencies = [ "windows-targets", ] +[[package]] +name = "windows-sys" +version = "0.61.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc" +dependencies = [ + "windows-link", +] + [[package]] name = "windows-targets" version = "0.53.5" diff --git a/third_party/crates/clap_builder-4.6.6/Cargo.toml b/third_party/crates/clap_builder-4.6.7/Cargo.toml similarity index 89% rename from third_party/crates/clap_builder-4.6.6/Cargo.toml rename to third_party/crates/clap_builder-4.6.7/Cargo.toml index 5d27859..0f62c8f 100644 --- a/third_party/crates/clap_builder-4.6.6/Cargo.toml +++ b/third_party/crates/clap_builder-4.6.7/Cargo.toml @@ -13,15 +13,16 @@ edition = "2024" rust-version = "1.85" name = "clap_builder" -version = "4.6.6" +version = "4.6.7" build = false include = [ - "build.rs", - "src/**/*", - "Cargo.toml", - "LICENSE*", - "README.md", - "examples/**/*", + "/build.rs", + "/src/**/*", + "/Cargo.toml", + "/Cargo.lock", + "/LICENSE*", + "/README.md", + "/examples/**/*", ] autolib = false autobins = false @@ -149,8 +150,11 @@ assigning_clones = "allow" blocks_in_conditions = "allow" bool_assert_comparison = "allow" branches_sharing_code = "allow" +byte_char_slices = "allow" checked_conversions = "warn" collapsible_else_if = "allow" +collapsible_match = "allow" +collection_is_never_read = "warn" create_dir = "warn" dbg_macro = "warn" debug_assert_with_mut_call = "warn" @@ -163,9 +167,10 @@ explicit_into_iter_loop = "warn" fallible_impl_from = "warn" filter_map_next = "warn" flat_map_option = "warn" +float_cmp = "warn" float_cmp_const = "warn" fn_params_excessive_bools = "warn" -from_iter_instead_of_collect = "warn" +fn_to_numeric_cast_any = "warn" if_same_then_else = "allow" implicit_clone = "warn" imprecise_flops = "warn" @@ -181,11 +186,13 @@ linkedlist = "warn" lossy_float_literal = "warn" macro_use_imports = "warn" mem_forget = "warn" +mismatching_type_param_order = "warn" multiple_bound_locations = "allow" mutex_integer = "warn" needless_continue = "allow" needless_for_each = "warn" negative_feature_names = "warn" +partial_pub_fields = "warn" path_buf_push_overwrite = "warn" ptr_as_ptr = "warn" rc_mutex = "warn" @@ -203,11 +210,16 @@ string_lit_as_bytes = "warn" todo = "warn" trait_duplication_in_bounds = "warn" uninlined_format_args = "warn" +unnecessary_safety_comment = "warn" +unnecessary_safety_doc = "warn" +unseparated_literal_suffix = "warn" +use_self = "warn" verbose_file_reads = "warn" zero_sized_map_values = "warn" [lints.rust] -unnameable_types = "allow" +non_ascii_idents = "warn" +trivial_numeric_casts = "warn" unreachable_pub = "warn" unsafe_op_in_unsafe_fn = "warn" unused_lifetimes = "warn" diff --git a/third_party/crates/clap_builder-4.6.6/Cargo.toml.orig b/third_party/crates/clap_builder-4.6.7/Cargo.toml.orig similarity index 99% rename from third_party/crates/clap_builder-4.6.6/Cargo.toml.orig rename to third_party/crates/clap_builder-4.6.7/Cargo.toml.orig index 389e2fb..13a1e11 100644 --- a/third_party/crates/clap_builder-4.6.6/Cargo.toml.orig +++ b/third_party/crates/clap_builder-4.6.7/Cargo.toml.orig @@ -1,6 +1,6 @@ [package] name = "clap_builder" -version = "4.6.6" +version = "4.6.7" description = "A simple to use, efficient, and full-featured Command Line Argument Parser" categories = ["command-line-interface"] keywords = [ diff --git a/third_party/crates/clap_lex-1.1.0/LICENSE-APACHE b/third_party/crates/clap_builder-4.6.7/LICENSE-APACHE similarity index 99% rename from third_party/crates/clap_lex-1.1.0/LICENSE-APACHE rename to third_party/crates/clap_builder-4.6.7/LICENSE-APACHE index 8f71f43..6aa81fe 100644 --- a/third_party/crates/clap_lex-1.1.0/LICENSE-APACHE +++ b/third_party/crates/clap_builder-4.6.7/LICENSE-APACHE @@ -186,7 +186,7 @@ same "printed page" as the copyright notice for easier identification within third-party archives. - Copyright {yyyy} {name of copyright owner} + Copyright Individual contributors Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/third_party/crates/clap_builder-4.6.6/LICENSE-MIT b/third_party/crates/clap_builder-4.6.7/LICENSE-MIT similarity index 100% rename from third_party/crates/clap_builder-4.6.6/LICENSE-MIT rename to third_party/crates/clap_builder-4.6.7/LICENSE-MIT diff --git a/third_party/crates/clap_builder-4.6.6/README.md b/third_party/crates/clap_builder-4.6.7/README.md similarity index 100% rename from third_party/crates/clap_builder-4.6.6/README.md rename to third_party/crates/clap_builder-4.6.7/README.md diff --git a/third_party/crates/clap_builder-4.6.6/src/builder/action.rs b/third_party/crates/clap_builder-4.6.7/src/builder/action.rs similarity index 100% rename from third_party/crates/clap_builder-4.6.6/src/builder/action.rs rename to third_party/crates/clap_builder-4.6.7/src/builder/action.rs diff --git a/third_party/crates/clap_builder-4.6.6/src/builder/app_settings.rs b/third_party/crates/clap_builder-4.6.7/src/builder/app_settings.rs similarity index 100% rename from third_party/crates/clap_builder-4.6.6/src/builder/app_settings.rs rename to third_party/crates/clap_builder-4.6.7/src/builder/app_settings.rs diff --git a/third_party/crates/clap_builder-4.6.6/src/builder/arg.rs b/third_party/crates/clap_builder-4.6.7/src/builder/arg.rs similarity index 99% rename from third_party/crates/clap_builder-4.6.6/src/builder/arg.rs rename to third_party/crates/clap_builder-4.6.7/src/builder/arg.rs index f799dfa..318cb37 100644 --- a/third_party/crates/clap_builder-4.6.6/src/builder/arg.rs +++ b/third_party/crates/clap_builder-4.6.7/src/builder/arg.rs @@ -120,7 +120,7 @@ impl Arg { /// ``` /// [`Arg::action(ArgAction::Set)`]: Arg::action() pub fn new(id: impl Into) -> Self { - Arg::default().id(id) + Self::default().id(id) } /// Set the identifier used for referencing this argument in the clap API. @@ -4761,14 +4761,14 @@ impl Arg { } } -impl From<&'_ Arg> for Arg { - fn from(a: &Arg) -> Self { +impl From<&'_ Self> for Arg { + fn from(a: &Self) -> Self { a.clone() } } impl PartialEq for Arg { - fn eq(&self, other: &Arg) -> bool { + fn eq(&self, other: &Self) -> bool { self.get_id() == other.get_id() } } @@ -4780,7 +4780,7 @@ impl PartialOrd for Arg { } impl Ord for Arg { - fn cmp(&self, other: &Arg) -> Ordering { + fn cmp(&self, other: &Self) -> Ordering { self.get_id().cmp(other.get_id()) } } diff --git a/third_party/crates/clap_builder-4.6.6/src/builder/arg_group.rs b/third_party/crates/clap_builder-4.6.7/src/builder/arg_group.rs similarity index 99% rename from third_party/crates/clap_builder-4.6.6/src/builder/arg_group.rs rename to third_party/crates/clap_builder-4.6.7/src/builder/arg_group.rs index 0f207a9..a976e41 100644 --- a/third_party/crates/clap_builder-4.6.6/src/builder/arg_group.rs +++ b/third_party/crates/clap_builder-4.6.7/src/builder/arg_group.rs @@ -90,7 +90,7 @@ impl ArgGroup { /// # ; /// ``` pub fn new(id: impl Into) -> Self { - ArgGroup::default().id(id) + Self::default().id(id) } /// Sets the group name. @@ -528,8 +528,8 @@ impl ArgGroup { } } -impl From<&'_ ArgGroup> for ArgGroup { - fn from(g: &ArgGroup) -> Self { +impl From<&'_ Self> for ArgGroup { + fn from(g: &Self) -> Self { g.clone() } } diff --git a/third_party/crates/clap_builder-4.6.6/src/builder/arg_predicate.rs b/third_party/crates/clap_builder-4.6.7/src/builder/arg_predicate.rs similarity index 100% rename from third_party/crates/clap_builder-4.6.6/src/builder/arg_predicate.rs rename to third_party/crates/clap_builder-4.6.7/src/builder/arg_predicate.rs diff --git a/third_party/crates/clap_builder-4.6.6/src/builder/arg_settings.rs b/third_party/crates/clap_builder-4.6.7/src/builder/arg_settings.rs similarity index 100% rename from third_party/crates/clap_builder-4.6.6/src/builder/arg_settings.rs rename to third_party/crates/clap_builder-4.6.7/src/builder/arg_settings.rs diff --git a/third_party/crates/clap_builder-4.6.6/src/builder/command.rs b/third_party/crates/clap_builder-4.6.7/src/builder/command.rs similarity index 99% rename from third_party/crates/clap_builder-4.6.6/src/builder/command.rs rename to third_party/crates/clap_builder-4.6.7/src/builder/command.rs index 1218340..23bd95a 100644 --- a/third_party/crates/clap_builder-4.6.6/src/builder/command.rs +++ b/third_party/crates/clap_builder-4.6.7/src/builder/command.rs @@ -98,7 +98,7 @@ pub struct Command { settings: AppFlags, g_settings: AppFlags, args: MKeyMap, - subcommands: Vec, + subcommands: Vec, groups: Vec, current_help_heading: Option, current_disp_ord: Option, @@ -106,7 +106,7 @@ pub struct Command { subcommand_heading: Option, external_value_parser: Option, long_help_exists: bool, - deferred: Option Command>, + deferred: Option Self>, #[cfg(feature = "unstable-ext")] ext: Extensions, app_ext: Extensions, @@ -425,7 +425,7 @@ impl Command { #[cfg_attr(debug_assertions, track_caller)] pub fn mut_subcommands(mut self, f: F) -> Self where - F: FnMut(Command) -> Command, + F: FnMut(Self) -> Self, { self.subcommands = self.subcommands.into_iter().map(f).collect(); self @@ -524,7 +524,7 @@ impl Command { /// ``` #[inline] #[must_use] - pub fn subcommand(self, subcmd: impl Into) -> Self { + pub fn subcommand(self, subcmd: impl Into) -> Self { let subcmd = subcmd.into(); self.subcommand_internal(subcmd) } @@ -581,7 +581,7 @@ impl Command { /// ) /// # ; /// ``` - pub fn defer(mut self, deferred: fn(Command) -> Command) -> Self { + pub fn defer(mut self, deferred: fn(Self) -> Self) -> Self { self.deferred = Some(deferred); self } @@ -3929,13 +3929,13 @@ impl Command { /// Iterate through the set of subcommands, getting a reference to each. #[inline] - pub fn get_subcommands(&self) -> impl Iterator { + pub fn get_subcommands(&self) -> impl Iterator { self.subcommands.iter() } /// Iterate through the set of subcommands, getting a mutable reference to each. #[inline] - pub fn get_subcommands_mut(&mut self) -> impl Iterator { + pub fn get_subcommands_mut(&mut self) -> impl Iterator { self.subcommands.iter_mut() } @@ -3985,7 +3985,7 @@ impl Command { /// /// This does not recurse through subcommands of subcommands. #[inline] - pub fn find_subcommand(&self, name: impl AsRef) -> Option<&Command> { + pub fn find_subcommand(&self, name: impl AsRef) -> Option<&Self> { let name = name.as_ref(); self.get_subcommands().find(|s| s.aliases_to(name)) } @@ -3995,10 +3995,7 @@ impl Command { /// /// This does not recurse through subcommands of subcommands. #[inline] - pub fn find_subcommand_mut( - &mut self, - name: impl AsRef, - ) -> Option<&mut Command> { + pub fn find_subcommand_mut(&mut self, name: impl AsRef) -> Option<&mut Self> { let name = name.as_ref(); self.get_subcommands_mut().find(|s| s.aliases_to(name)) } @@ -4846,12 +4843,12 @@ impl Command { let mut help_subcmd = if expand_help_tree { // Slow code path to recursively clone all other subcommand subtrees under help - let help_subcmd = Command::new("help") + let help_subcmd = Self::new("help") .about(help_about) .global_setting(AppSettings::DisableHelpSubcommand) - .subcommands(self.get_subcommands().map(Command::_copy_subtree_for_help)); + .subcommands(self.get_subcommands().map(Self::_copy_subtree_for_help)); - let mut help_help_subcmd = Command::new("help").about(help_about); + let mut help_help_subcmd = Self::new("help").about(help_about); help_help_subcmd.version = None; help_help_subcmd.long_version = None; help_help_subcmd = help_help_subcmd @@ -4860,7 +4857,7 @@ impl Command { help_subcmd.subcommand(help_help_subcmd) } else { - Command::new("help").about(help_about).arg( + Self::new("help").about(help_about).arg( Arg::new("subcommand") .action(ArgAction::Append) .num_args(..) @@ -4883,12 +4880,12 @@ impl Command { } } - fn _copy_subtree_for_help(&self) -> Command { - let mut cmd = Command::new(self.name.clone()) + fn _copy_subtree_for_help(&self) -> Self { + let mut cmd = Self::new(self.name.clone()) .hide(self.is_hide_set()) .global_setting(AppSettings::DisableHelpFlag) .global_setting(AppSettings::DisableVersionFlag) - .subcommands(self.get_subcommands().map(Command::_copy_subtree_for_help)); + .subcommands(self.get_subcommands().map(Self::_copy_subtree_for_help)); if self.get_about().is_some() { cmd = cmd.about(self.get_about().unwrap().clone()); } @@ -5246,8 +5243,8 @@ impl Index<&'_ Id> for Command { } } -impl From<&'_ Command> for Command { - fn from(cmd: &'_ Command) -> Self { +impl From<&'_ Self> for Command { + fn from(cmd: &'_ Self) -> Self { cmd.clone() } } diff --git a/third_party/crates/clap_builder-4.6.6/src/builder/debug_asserts.rs b/third_party/crates/clap_builder-4.6.7/src/builder/debug_asserts.rs similarity index 100% rename from third_party/crates/clap_builder-4.6.6/src/builder/debug_asserts.rs rename to third_party/crates/clap_builder-4.6.7/src/builder/debug_asserts.rs diff --git a/third_party/crates/clap_builder-4.6.6/src/builder/ext.rs b/third_party/crates/clap_builder-4.6.7/src/builder/ext.rs similarity index 100% rename from third_party/crates/clap_builder-4.6.6/src/builder/ext.rs rename to third_party/crates/clap_builder-4.6.7/src/builder/ext.rs diff --git a/third_party/crates/clap_builder-4.6.6/src/builder/mod.rs b/third_party/crates/clap_builder-4.6.7/src/builder/mod.rs similarity index 100% rename from third_party/crates/clap_builder-4.6.6/src/builder/mod.rs rename to third_party/crates/clap_builder-4.6.7/src/builder/mod.rs diff --git a/third_party/crates/clap_builder-4.6.6/src/builder/os_str.rs b/third_party/crates/clap_builder-4.6.7/src/builder/os_str.rs similarity index 98% rename from third_party/crates/clap_builder-4.6.6/src/builder/os_str.rs rename to third_party/crates/clap_builder-4.6.7/src/builder/os_str.rs index 08b17fb..38e2b7b 100644 --- a/third_party/crates/clap_builder-4.6.6/src/builder/os_str.rs +++ b/third_party/crates/clap_builder-4.6.7/src/builder/os_str.rs @@ -47,8 +47,8 @@ impl OsStr { } } -impl From<&'_ OsStr> for OsStr { - fn from(id: &'_ OsStr) -> Self { +impl From<&'_ Self> for OsStr { + fn from(id: &'_ Self) -> Self { id.clone() } } @@ -315,7 +315,7 @@ impl Default for Inner { } impl PartialEq for Inner { - fn eq(&self, other: &Inner) -> bool { + fn eq(&self, other: &Self) -> bool { self.as_os_str() == other.as_os_str() } } @@ -327,7 +327,7 @@ impl PartialOrd for Inner { } impl Ord for Inner { - fn cmp(&self, other: &Inner) -> std::cmp::Ordering { + fn cmp(&self, other: &Self) -> std::cmp::Ordering { self.as_os_str().cmp(other.as_os_str()) } } diff --git a/third_party/crates/clap_builder-4.6.6/src/builder/possible_value.rs b/third_party/crates/clap_builder-4.6.7/src/builder/possible_value.rs similarity index 99% rename from third_party/crates/clap_builder-4.6.6/src/builder/possible_value.rs rename to third_party/crates/clap_builder-4.6.7/src/builder/possible_value.rs index f9cbad4..27c6323 100644 --- a/third_party/crates/clap_builder-4.6.6/src/builder/possible_value.rs +++ b/third_party/crates/clap_builder-4.6.7/src/builder/possible_value.rs @@ -70,7 +70,7 @@ impl PossibleValue { /// [possible value]: crate::builder::PossibleValuesParser /// [`Arg::hide_possible_values(true)`]: crate::Arg::hide_possible_values() pub fn new(name: impl Into) -> Self { - PossibleValue { + Self { name: name.into(), ..Default::default() } diff --git a/third_party/crates/clap_builder-4.6.6/src/builder/range.rs b/third_party/crates/clap_builder-4.6.7/src/builder/range.rs similarity index 100% rename from third_party/crates/clap_builder-4.6.6/src/builder/range.rs rename to third_party/crates/clap_builder-4.6.7/src/builder/range.rs diff --git a/third_party/crates/clap_builder-4.6.6/src/builder/resettable.rs b/third_party/crates/clap_builder-4.6.7/src/builder/resettable.rs similarity index 92% rename from third_party/crates/clap_builder-4.6.6/src/builder/resettable.rs rename to third_party/crates/clap_builder-4.6.7/src/builder/resettable.rs index 0572740..ce6da65 100644 --- a/third_party/crates/clap_builder-4.6.6/src/builder/resettable.rs +++ b/third_party/crates/clap_builder-4.6.7/src/builder/resettable.rs @@ -140,31 +140,31 @@ impl IntoResettable for Option<&'static str> { } impl IntoResettable for Resettable { - fn into_resettable(self) -> Resettable { + fn into_resettable(self) -> Self { self } } -impl IntoResettable for char { - fn into_resettable(self) -> Resettable { +impl IntoResettable for char { + fn into_resettable(self) -> Resettable { Resettable::Value(self) } } -impl IntoResettable for usize { - fn into_resettable(self) -> Resettable { +impl IntoResettable for usize { + fn into_resettable(self) -> Resettable { Resettable::Value(self) } } -impl IntoResettable for ArgAction { - fn into_resettable(self) -> Resettable { +impl IntoResettable for ArgAction { + fn into_resettable(self) -> Resettable { Resettable::Value(self) } } -impl IntoResettable for ValueHint { - fn into_resettable(self) -> Resettable { +impl IntoResettable for ValueHint { + fn into_resettable(self) -> Resettable { Resettable::Value(self) } } diff --git a/third_party/crates/clap_builder-4.6.6/src/builder/str.rs b/third_party/crates/clap_builder-4.6.7/src/builder/str.rs similarity index 97% rename from third_party/crates/clap_builder-4.6.6/src/builder/str.rs rename to third_party/crates/clap_builder-4.6.7/src/builder/str.rs index be0e0e3..3c4ac23 100644 --- a/third_party/crates/clap_builder-4.6.6/src/builder/str.rs +++ b/third_party/crates/clap_builder-4.6.7/src/builder/str.rs @@ -45,8 +45,8 @@ impl Str { } } -impl From<&'_ Str> for Str { - fn from(id: &'_ Str) -> Self { +impl From<&'_ Self> for Str { + fn from(id: &'_ Self) -> Self { id.clone() } } @@ -300,7 +300,7 @@ impl Default for Inner { } impl PartialEq for Inner { - fn eq(&self, other: &Inner) -> bool { + fn eq(&self, other: &Self) -> bool { self.as_str() == other.as_str() } } @@ -312,7 +312,7 @@ impl PartialOrd for Inner { } impl Ord for Inner { - fn cmp(&self, other: &Inner) -> std::cmp::Ordering { + fn cmp(&self, other: &Self) -> std::cmp::Ordering { self.as_str().cmp(other.as_str()) } } diff --git a/third_party/crates/clap_builder-4.6.6/src/builder/styled_str.rs b/third_party/crates/clap_builder-4.6.7/src/builder/styled_str.rs similarity index 96% rename from third_party/crates/clap_builder-4.6.6/src/builder/styled_str.rs rename to third_party/crates/clap_builder-4.6.7/src/builder/styled_str.rs index 853dd6c..dabe906 100644 --- a/third_party/crates/clap_builder-4.6.6/src/builder/styled_str.rs +++ b/third_party/crates/clap_builder-4.6.7/src/builder/styled_str.rs @@ -160,13 +160,13 @@ impl Default for &'_ StyledStr { impl From for StyledStr { fn from(name: String) -> Self { - StyledStr(name) + Self(name) } } impl From<&'_ String> for StyledStr { fn from(name: &'_ String) -> Self { - let mut styled = StyledStr::new(); + let mut styled = Self::new(); styled.push_str(name); styled } @@ -174,7 +174,7 @@ impl From<&'_ String> for StyledStr { impl From<&'static str> for StyledStr { fn from(name: &'static str) -> Self { - let mut styled = StyledStr::new(); + let mut styled = Self::new(); styled.push_str(name); styled } @@ -182,15 +182,15 @@ impl From<&'static str> for StyledStr { impl From<&'_ &'static str> for StyledStr { fn from(name: &'_ &'static str) -> Self { - StyledStr::from(*name) + Self::from(*name) } } impl From> for StyledStr { fn from(cow: Cow<'static, str>) -> Self { match cow { - Cow::Borrowed(s) => StyledStr::from(s), - Cow::Owned(s) => StyledStr::from(s), + Cow::Borrowed(s) => Self::from(s), + Cow::Owned(s) => Self::from(s), } } } diff --git a/third_party/crates/clap_builder-4.6.6/src/builder/styling.rs b/third_party/crates/clap_builder-4.6.7/src/builder/styling.rs similarity index 100% rename from third_party/crates/clap_builder-4.6.6/src/builder/styling.rs rename to third_party/crates/clap_builder-4.6.7/src/builder/styling.rs diff --git a/third_party/crates/clap_builder-4.6.6/src/builder/tests.rs b/third_party/crates/clap_builder-4.6.7/src/builder/tests.rs similarity index 100% rename from third_party/crates/clap_builder-4.6.6/src/builder/tests.rs rename to third_party/crates/clap_builder-4.6.7/src/builder/tests.rs diff --git a/third_party/crates/clap_builder-4.6.6/src/builder/value_hint.rs b/third_party/crates/clap_builder-4.6.7/src/builder/value_hint.rs similarity index 83% rename from third_party/crates/clap_builder-4.6.6/src/builder/value_hint.rs rename to third_party/crates/clap_builder-4.6.7/src/builder/value_hint.rs index 9c0537e..41e9337 100644 --- a/third_party/crates/clap_builder-4.6.6/src/builder/value_hint.rs +++ b/third_party/crates/clap_builder-4.6.7/src/builder/value_hint.rs @@ -74,19 +74,19 @@ impl FromStr for ValueHint { type Err = String; fn from_str(s: &str) -> Result::Err> { Ok(match &*s.to_ascii_lowercase() { - "unknown" => ValueHint::Unknown, - "other" => ValueHint::Other, - "anypath" => ValueHint::AnyPath, - "filepath" => ValueHint::FilePath, - "dirpath" => ValueHint::DirPath, - "executablepath" => ValueHint::ExecutablePath, - "commandname" => ValueHint::CommandName, - "commandstring" => ValueHint::CommandString, - "commandwitharguments" => ValueHint::CommandWithArguments, - "username" => ValueHint::Username, - "hostname" => ValueHint::Hostname, - "url" => ValueHint::Url, - "emailaddress" => ValueHint::EmailAddress, + "unknown" => Self::Unknown, + "other" => Self::Other, + "anypath" => Self::AnyPath, + "filepath" => Self::FilePath, + "dirpath" => Self::DirPath, + "executablepath" => Self::ExecutablePath, + "commandname" => Self::CommandName, + "commandstring" => Self::CommandString, + "commandwitharguments" => Self::CommandWithArguments, + "username" => Self::Username, + "hostname" => Self::Hostname, + "url" => Self::Url, + "emailaddress" => Self::EmailAddress, _ => return Err(format!("unknown ValueHint: `{s}`")), }) } diff --git a/third_party/crates/clap_builder-4.6.6/src/builder/value_parser.rs b/third_party/crates/clap_builder-4.6.7/src/builder/value_parser.rs similarity index 98% rename from third_party/crates/clap_builder-4.6.6/src/builder/value_parser.rs rename to third_party/crates/clap_builder-4.6.7/src/builder/value_parser.rs index 6525727..84746bf 100644 --- a/third_party/crates/clap_builder-4.6.6/src/builder/value_parser.rs +++ b/third_party/crates/clap_builder-4.6.7/src/builder/value_parser.rs @@ -1197,7 +1197,7 @@ pub struct PossibleValuesParser(Vec); impl PossibleValuesParser { /// Verify the value is from an enumerated set of [`PossibleValue`][crate::builder::PossibleValue]. - pub fn new(values: impl Into) -> Self { + pub fn new(values: impl Into) -> Self { values.into() } } @@ -2290,7 +2290,7 @@ impl ValueParserFactory for String { } } impl ValueParserFactory for Box { - type Parser = MapValueParser Box>; + type Parser = MapValueParser Self>; fn value_parser() -> Self::Parser { StringValueParser::new().map(String::into_boxed_str) } @@ -2302,8 +2302,7 @@ impl ValueParserFactory for std::ffi::OsString { } } impl ValueParserFactory for Box { - type Parser = - MapValueParser Box>; + type Parser = MapValueParser Self>; fn value_parser() -> Self::Parser { OsStringValueParser::new().map(std::ffi::OsString::into_boxed_os_str) } @@ -2315,8 +2314,7 @@ impl ValueParserFactory for std::path::PathBuf { } } impl ValueParserFactory for Box { - type Parser = - MapValueParser Box>; + type Parser = MapValueParser Self>; fn value_parser() -> Self::Parser { PathBufValueParser::new().map(std::path::PathBuf::into_boxed_path) } @@ -2328,61 +2326,61 @@ impl ValueParserFactory for bool { } } impl ValueParserFactory for u8 { - type Parser = RangedI64ValueParser; + type Parser = RangedI64ValueParser; fn value_parser() -> Self::Parser { - let start: i64 = u8::MIN.into(); - let end: i64 = u8::MAX.into(); + let start: i64 = Self::MIN.into(); + let end: i64 = Self::MAX.into(); RangedI64ValueParser::new().range(start..=end) } } impl ValueParserFactory for i8 { - type Parser = RangedI64ValueParser; + type Parser = RangedI64ValueParser; fn value_parser() -> Self::Parser { - let start: i64 = i8::MIN.into(); - let end: i64 = i8::MAX.into(); + let start: i64 = Self::MIN.into(); + let end: i64 = Self::MAX.into(); RangedI64ValueParser::new().range(start..=end) } } impl ValueParserFactory for u16 { - type Parser = RangedI64ValueParser; + type Parser = RangedI64ValueParser; fn value_parser() -> Self::Parser { - let start: i64 = u16::MIN.into(); - let end: i64 = u16::MAX.into(); + let start: i64 = Self::MIN.into(); + let end: i64 = Self::MAX.into(); RangedI64ValueParser::new().range(start..=end) } } impl ValueParserFactory for i16 { - type Parser = RangedI64ValueParser; + type Parser = RangedI64ValueParser; fn value_parser() -> Self::Parser { - let start: i64 = i16::MIN.into(); - let end: i64 = i16::MAX.into(); + let start: i64 = Self::MIN.into(); + let end: i64 = Self::MAX.into(); RangedI64ValueParser::new().range(start..=end) } } impl ValueParserFactory for u32 { - type Parser = RangedI64ValueParser; + type Parser = RangedI64ValueParser; fn value_parser() -> Self::Parser { - let start: i64 = u32::MIN.into(); - let end: i64 = u32::MAX.into(); + let start: i64 = Self::MIN.into(); + let end: i64 = Self::MAX.into(); RangedI64ValueParser::new().range(start..=end) } } impl ValueParserFactory for i32 { - type Parser = RangedI64ValueParser; + type Parser = RangedI64ValueParser; fn value_parser() -> Self::Parser { - let start: i64 = i32::MIN.into(); - let end: i64 = i32::MAX.into(); + let start: i64 = Self::MIN.into(); + let end: i64 = Self::MAX.into(); RangedI64ValueParser::new().range(start..=end) } } impl ValueParserFactory for u64 { - type Parser = RangedU64ValueParser; + type Parser = RangedU64ValueParser; fn value_parser() -> Self::Parser { RangedU64ValueParser::new() } } impl ValueParserFactory for i64 { - type Parser = RangedI64ValueParser; + type Parser = RangedI64ValueParser; fn value_parser() -> Self::Parser { RangedI64ValueParser::new() } @@ -2393,8 +2391,7 @@ where ::Parser: TypedValueParser, T: Send + Sync + Clone, { - type Parser = - MapValueParser<::Parser, fn(T) -> std::num::Saturating>; + type Parser = MapValueParser<::Parser, fn(T) -> Self>; fn value_parser() -> Self::Parser { T::value_parser().map(std::num::Saturating) } @@ -2405,7 +2402,7 @@ where ::Parser: TypedValueParser, T: Send + Sync + Clone, { - type Parser = MapValueParser<::Parser, fn(T) -> std::num::Wrapping>; + type Parser = MapValueParser<::Parser, fn(T) -> Self>; fn value_parser() -> Self::Parser { T::value_parser().map(std::num::Wrapping) } @@ -2416,9 +2413,9 @@ where ::Parser: TypedValueParser, T: Send + Sync + Clone, { - type Parser = MapValueParser<::Parser, fn(T) -> Box>; + type Parser = MapValueParser<::Parser, fn(T) -> Self>; fn value_parser() -> Self::Parser { - T::value_parser().map(Box::new) + T::value_parser().map(Self::new) } } impl ValueParserFactory for std::sync::Arc @@ -2427,9 +2424,9 @@ where ::Parser: TypedValueParser, T: Send + Sync + Clone, { - type Parser = MapValueParser<::Parser, fn(T) -> std::sync::Arc>; + type Parser = MapValueParser<::Parser, fn(T) -> Self>; fn value_parser() -> Self::Parser { - T::value_parser().map(std::sync::Arc::new) + T::value_parser().map(Self::new) } } diff --git a/third_party/crates/clap_builder-4.6.6/src/derive.rs b/third_party/crates/clap_builder-4.6.7/src/derive.rs similarity index 98% rename from third_party/crates/clap_builder-4.6.6/src/derive.rs rename to third_party/crates/clap_builder-4.6.7/src/derive.rs index 9b165dc..6de8320 100644 --- a/third_party/crates/clap_builder-4.6.6/src/derive.rs +++ b/third_party/crates/clap_builder-4.6.7/src/derive.rs @@ -315,11 +315,11 @@ pub trait ValueEnum: Sized + Clone { impl Parser for Box { fn parse() -> Self { - Box::new(::parse()) + Self::new(::parse()) } fn try_parse() -> Result { - ::try_parse().map(Box::new) + ::try_parse().map(Self::new) } fn parse_from(itr: I) -> Self @@ -327,7 +327,7 @@ impl Parser for Box { I: IntoIterator, It: Into + Clone, { - Box::new(::parse_from(itr)) + Self::new(::parse_from(itr)) } fn try_parse_from(itr: I) -> Result @@ -335,7 +335,7 @@ impl Parser for Box { I: IntoIterator, It: Into + Clone, { - ::try_parse_from(itr).map(Box::new) + ::try_parse_from(itr).map(Self::new) } } @@ -350,10 +350,10 @@ impl CommandFactory for Box { impl FromArgMatches for Box { fn from_arg_matches(matches: &ArgMatches) -> Result { - ::from_arg_matches(matches).map(Box::new) + ::from_arg_matches(matches).map(Self::new) } fn from_arg_matches_mut(matches: &mut ArgMatches) -> Result { - ::from_arg_matches_mut(matches).map(Box::new) + ::from_arg_matches_mut(matches).map(Self::new) } fn update_from_arg_matches(&mut self, matches: &ArgMatches) -> Result<(), Error> { ::update_from_arg_matches(self, matches) diff --git a/third_party/crates/clap_builder-4.6.6/src/error/context.rs b/third_party/crates/clap_builder-4.6.7/src/error/context.rs similarity index 100% rename from third_party/crates/clap_builder-4.6.6/src/error/context.rs rename to third_party/crates/clap_builder-4.6.7/src/error/context.rs diff --git a/third_party/crates/clap_builder-4.6.6/src/error/format.rs b/third_party/crates/clap_builder-4.6.7/src/error/format.rs similarity index 100% rename from third_party/crates/clap_builder-4.6.6/src/error/format.rs rename to third_party/crates/clap_builder-4.6.7/src/error/format.rs diff --git a/third_party/crates/clap_builder-4.6.6/src/error/kind.rs b/third_party/crates/clap_builder-4.6.7/src/error/kind.rs similarity index 100% rename from third_party/crates/clap_builder-4.6.6/src/error/kind.rs rename to third_party/crates/clap_builder-4.6.7/src/error/kind.rs diff --git a/third_party/crates/clap_builder-4.6.6/src/error/mod.rs b/third_party/crates/clap_builder-4.6.7/src/error/mod.rs similarity index 99% rename from third_party/crates/clap_builder-4.6.6/src/error/mod.rs rename to third_party/crates/clap_builder-4.6.7/src/error/mod.rs index c9c9c07..62b6eaa 100644 --- a/third_party/crates/clap_builder-4.6.6/src/error/mod.rs +++ b/third_party/crates/clap_builder-4.6.7/src/error/mod.rs @@ -817,13 +817,13 @@ impl Error { impl From for Error { fn from(e: io::Error) -> Self { - Error::raw(ErrorKind::Io, e) + Self::raw(ErrorKind::Io, e) } } impl From for Error { fn from(e: fmt::Error) -> Self { - Error::raw(ErrorKind::Format, e) + Self::raw(ErrorKind::Format, e) } } @@ -862,7 +862,7 @@ pub(crate) enum Message { impl Message { fn format(&mut self, cmd: &Command, usage: Option) { match self { - Message::Raw(s) => { + Self::Raw(s) => { let mut message = String::new(); std::mem::swap(s, &mut message); @@ -875,18 +875,18 @@ impl Message { *self = Self::Formatted(styled); } - Message::Formatted(_) => {} + Self::Formatted(_) => {} } } fn formatted(&self, styles: &Styles) -> Cow<'_, StyledStr> { match self { - Message::Raw(s) => { + Self::Raw(s) => { let styled = format::format_error_message(s, styles, None, None); Cow::Owned(styled) } - Message::Formatted(s) => Cow::Borrowed(s), + Self::Formatted(s) => Cow::Borrowed(s), } } } diff --git a/third_party/crates/clap_builder-4.6.6/src/lib.rs b/third_party/crates/clap_builder-4.6.7/src/lib.rs similarity index 100% rename from third_party/crates/clap_builder-4.6.6/src/lib.rs rename to third_party/crates/clap_builder-4.6.7/src/lib.rs diff --git a/third_party/crates/clap_builder-4.6.6/src/macros.rs b/third_party/crates/clap_builder-4.6.7/src/macros.rs similarity index 100% rename from third_party/crates/clap_builder-4.6.6/src/macros.rs rename to third_party/crates/clap_builder-4.6.7/src/macros.rs diff --git a/third_party/crates/clap_builder-4.6.6/src/mkeymap.rs b/third_party/crates/clap_builder-4.6.7/src/mkeymap.rs similarity index 94% rename from third_party/crates/clap_builder-4.6.6/src/mkeymap.rs rename to third_party/crates/clap_builder-4.6.7/src/mkeymap.rs index 328dd09..cdf788f 100644 --- a/third_party/crates/clap_builder-4.6.6/src/mkeymap.rs +++ b/third_party/crates/clap_builder-4.6.7/src/mkeymap.rs @@ -30,14 +30,14 @@ pub(crate) enum KeyType { impl KeyType { pub(crate) fn is_position(&self) -> bool { - matches!(self, KeyType::Position(_)) + matches!(self, Self::Position(_)) } } impl PartialEq for KeyType { fn eq(&self, rhs: &usize) -> bool { match self { - KeyType::Position(x) => x == rhs, + Self::Position(x) => x == rhs, _ => false, } } @@ -46,7 +46,7 @@ impl PartialEq for KeyType { impl PartialEq<&str> for KeyType { fn eq(&self, rhs: &&str) -> bool { match self { - KeyType::Long(l) => l == rhs, + Self::Long(l) => l == rhs, _ => false, } } @@ -55,7 +55,7 @@ impl PartialEq<&str> for KeyType { impl PartialEq for KeyType { fn eq(&self, rhs: &str) -> bool { match self { - KeyType::Long(l) => l == rhs, + Self::Long(l) => l == rhs, _ => false, } } @@ -64,7 +64,7 @@ impl PartialEq for KeyType { impl PartialEq for KeyType { fn eq(&self, rhs: &OsStr) -> bool { match self { - KeyType::Long(l) => l == rhs, + Self::Long(l) => l == rhs, _ => false, } } @@ -73,7 +73,7 @@ impl PartialEq for KeyType { impl PartialEq for KeyType { fn eq(&self, rhs: &char) -> bool { match self { - KeyType::Short(c) => c == rhs, + Self::Short(c) => c == rhs, _ => false, } } diff --git a/third_party/crates/clap_builder-4.6.6/src/output/fmt.rs b/third_party/crates/clap_builder-4.6.7/src/output/fmt.rs similarity index 99% rename from third_party/crates/clap_builder-4.6.6/src/output/fmt.rs rename to third_party/crates/clap_builder-4.6.7/src/output/fmt.rs index 77b84ba..3f6f634 100644 --- a/third_party/crates/clap_builder-4.6.6/src/output/fmt.rs +++ b/third_party/crates/clap_builder-4.6.7/src/output/fmt.rs @@ -17,7 +17,7 @@ pub(crate) struct Colorizer { impl Colorizer { pub(crate) fn new(stream: Stream, color_when: ColorChoice) -> Self { - Colorizer { + Self { stream, color_when, content: Default::default(), diff --git a/third_party/crates/clap_builder-4.6.6/src/output/help.rs b/third_party/crates/clap_builder-4.6.7/src/output/help.rs similarity index 100% rename from third_party/crates/clap_builder-4.6.6/src/output/help.rs rename to third_party/crates/clap_builder-4.6.7/src/output/help.rs diff --git a/third_party/crates/clap_builder-4.6.6/src/output/help_template.rs b/third_party/crates/clap_builder-4.6.7/src/output/help_template.rs similarity index 100% rename from third_party/crates/clap_builder-4.6.6/src/output/help_template.rs rename to third_party/crates/clap_builder-4.6.7/src/output/help_template.rs diff --git a/third_party/crates/clap_builder-4.6.6/src/output/mod.rs b/third_party/crates/clap_builder-4.6.7/src/output/mod.rs similarity index 100% rename from third_party/crates/clap_builder-4.6.6/src/output/mod.rs rename to third_party/crates/clap_builder-4.6.7/src/output/mod.rs diff --git a/third_party/crates/clap_builder-4.6.6/src/output/textwrap/core.rs b/third_party/crates/clap_builder-4.6.7/src/output/textwrap/core.rs similarity index 100% rename from third_party/crates/clap_builder-4.6.6/src/output/textwrap/core.rs rename to third_party/crates/clap_builder-4.6.7/src/output/textwrap/core.rs diff --git a/third_party/crates/clap_builder-4.6.6/src/output/textwrap/mod.rs b/third_party/crates/clap_builder-4.6.7/src/output/textwrap/mod.rs similarity index 100% rename from third_party/crates/clap_builder-4.6.6/src/output/textwrap/mod.rs rename to third_party/crates/clap_builder-4.6.7/src/output/textwrap/mod.rs diff --git a/third_party/crates/clap_builder-4.6.6/src/output/textwrap/word_separators.rs b/third_party/crates/clap_builder-4.6.7/src/output/textwrap/word_separators.rs similarity index 100% rename from third_party/crates/clap_builder-4.6.6/src/output/textwrap/word_separators.rs rename to third_party/crates/clap_builder-4.6.7/src/output/textwrap/word_separators.rs diff --git a/third_party/crates/clap_builder-4.6.6/src/output/textwrap/wrap_algorithms.rs b/third_party/crates/clap_builder-4.6.7/src/output/textwrap/wrap_algorithms.rs similarity index 100% rename from third_party/crates/clap_builder-4.6.6/src/output/textwrap/wrap_algorithms.rs rename to third_party/crates/clap_builder-4.6.7/src/output/textwrap/wrap_algorithms.rs diff --git a/third_party/crates/clap_builder-4.6.6/src/output/usage.rs b/third_party/crates/clap_builder-4.6.7/src/output/usage.rs similarity index 100% rename from third_party/crates/clap_builder-4.6.6/src/output/usage.rs rename to third_party/crates/clap_builder-4.6.7/src/output/usage.rs diff --git a/third_party/crates/clap_builder-4.6.6/src/parser/arg_matcher.rs b/third_party/crates/clap_builder-4.6.7/src/parser/arg_matcher.rs similarity index 99% rename from third_party/crates/clap_builder-4.6.6/src/parser/arg_matcher.rs rename to third_party/crates/clap_builder-4.6.7/src/parser/arg_matcher.rs index d38831e..46a7c15 100644 --- a/third_party/crates/clap_builder-4.6.6/src/parser/arg_matcher.rs +++ b/third_party/crates/clap_builder-4.6.7/src/parser/arg_matcher.rs @@ -21,7 +21,7 @@ pub(crate) struct ArgMatcher { impl ArgMatcher { pub(crate) fn new(_cmd: &Command) -> Self { - ArgMatcher { + Self { matches: ArgMatches { #[cfg(debug_assertions)] valid_args: { @@ -77,7 +77,7 @@ impl ArgMatcher { } } if let Some(ref mut sc) = self.matches.subcommand { - let mut am = ArgMatcher { + let mut am = Self { matches: mem::take(&mut sc.matches), pending: None, }; diff --git a/third_party/crates/clap_builder-4.6.6/src/parser/error.rs b/third_party/crates/clap_builder-4.6.7/src/parser/error.rs similarity index 96% rename from third_party/crates/clap_builder-4.6.6/src/parser/error.rs rename to third_party/crates/clap_builder-4.6.7/src/parser/error.rs index 1b3a323..d1852c9 100644 --- a/third_party/crates/clap_builder-4.6.6/src/parser/error.rs +++ b/third_party/crates/clap_builder-4.6.7/src/parser/error.rs @@ -22,7 +22,7 @@ pub enum MatchesError { impl MatchesError { #[cfg_attr(debug_assertions, track_caller)] - pub(crate) fn unwrap(id: &str, r: Result) -> T { + pub(crate) fn unwrap(id: &str, r: Result) -> T { let err = match r { Ok(t) => { return t; diff --git a/third_party/crates/clap_builder-4.6.6/src/parser/features/mod.rs b/third_party/crates/clap_builder-4.6.7/src/parser/features/mod.rs similarity index 100% rename from third_party/crates/clap_builder-4.6.6/src/parser/features/mod.rs rename to third_party/crates/clap_builder-4.6.7/src/parser/features/mod.rs diff --git a/third_party/crates/clap_builder-4.6.6/src/parser/features/suggestions.rs b/third_party/crates/clap_builder-4.6.7/src/parser/features/suggestions.rs similarity index 100% rename from third_party/crates/clap_builder-4.6.6/src/parser/features/suggestions.rs rename to third_party/crates/clap_builder-4.6.7/src/parser/features/suggestions.rs diff --git a/third_party/crates/clap_builder-4.6.6/src/parser/matches/arg_matches.rs b/third_party/crates/clap_builder-4.6.7/src/parser/matches/arg_matches.rs similarity index 99% rename from third_party/crates/clap_builder-4.6.6/src/parser/matches/arg_matches.rs rename to third_party/crates/clap_builder-4.6.7/src/parser/matches/arg_matches.rs index cff31a2..973657f 100644 --- a/third_party/crates/clap_builder-4.6.6/src/parser/matches/arg_matches.rs +++ b/third_party/crates/clap_builder-4.6.7/src/parser/matches/arg_matches.rs @@ -919,7 +919,7 @@ impl ArgMatches { /// ``` /// [subcommand]: crate::Command::subcommand #[inline] - pub fn subcommand(&self) -> Option<(&str, &ArgMatches)> { + pub fn subcommand(&self) -> Option<(&str, &Self)> { self.subcommand.as_ref().map(|sc| (&*sc.name, &sc.matches)) } @@ -979,7 +979,7 @@ impl ArgMatches { /// } /// ``` /// [subcommand]: crate::Command::subcommand - pub fn remove_subcommand(&mut self) -> Option<(String, ArgMatches)> { + pub fn remove_subcommand(&mut self) -> Option<(String, Self)> { self.subcommand.take().map(|sc| (sc.name, sc.matches)) } @@ -1023,7 +1023,7 @@ impl ArgMatches { /// /// [subcommand]: crate::Command::subcommand /// [`Command`]: crate::Command - pub fn subcommand_matches(&self, name: &str) -> Option<&ArgMatches> { + pub fn subcommand_matches(&self, name: &str) -> Option<&Self> { self.get_subcommand(name).map(|sc| &sc.matches) } @@ -1464,7 +1464,7 @@ impl ExactSizeIterator for Values {} impl Default for Values { fn default() -> Self { let empty: Vec> = Default::default(); - Values { + Self { iter: empty.into_iter().flatten().map(|_| unreachable!()), len: 0, } @@ -1646,7 +1646,7 @@ impl ExactSizeIterator for Occurrences {} impl Default for Occurrences { fn default() -> Self { let empty: Vec> = Default::default(); - Occurrences { + Self { iter: empty.into_iter().map(|_| unreachable!()), } } diff --git a/third_party/crates/clap_builder-4.6.6/src/parser/matches/matched_arg.rs b/third_party/crates/clap_builder-4.6.7/src/parser/matches/matched_arg.rs similarity index 98% rename from third_party/crates/clap_builder-4.6.6/src/parser/matches/matched_arg.rs rename to third_party/crates/clap_builder-4.6.7/src/parser/matches/matched_arg.rs index d4530ec..56f67ae 100644 --- a/third_party/crates/clap_builder-4.6.6/src/parser/matches/matched_arg.rs +++ b/third_party/crates/clap_builder-4.6.7/src/parser/matches/matched_arg.rs @@ -178,8 +178,8 @@ impl MatchedArg { } impl PartialEq for MatchedArg { - fn eq(&self, other: &MatchedArg) -> bool { - let MatchedArg { + fn eq(&self, other: &Self) -> bool { + let Self { source: self_source, indices: self_indices, type_id: self_type_id, @@ -187,7 +187,7 @@ impl PartialEq for MatchedArg { raw_vals: self_raw_vals, ignore_case: self_ignore_case, } = self; - let MatchedArg { + let Self { source: other_source, indices: other_indices, type_id: other_type_id, diff --git a/third_party/crates/clap_builder-4.6.6/src/parser/matches/mod.rs b/third_party/crates/clap_builder-4.6.7/src/parser/matches/mod.rs similarity index 100% rename from third_party/crates/clap_builder-4.6.6/src/parser/matches/mod.rs rename to third_party/crates/clap_builder-4.6.7/src/parser/matches/mod.rs diff --git a/third_party/crates/clap_builder-4.6.6/src/parser/matches/value_source.rs b/third_party/crates/clap_builder-4.6.7/src/parser/matches/value_source.rs similarity index 100% rename from third_party/crates/clap_builder-4.6.6/src/parser/matches/value_source.rs rename to third_party/crates/clap_builder-4.6.7/src/parser/matches/value_source.rs diff --git a/third_party/crates/clap_builder-4.6.6/src/parser/mod.rs b/third_party/crates/clap_builder-4.6.7/src/parser/mod.rs similarity index 100% rename from third_party/crates/clap_builder-4.6.6/src/parser/mod.rs rename to third_party/crates/clap_builder-4.6.7/src/parser/mod.rs diff --git a/third_party/crates/clap_builder-4.6.6/src/parser/parser.rs b/third_party/crates/clap_builder-4.6.7/src/parser/parser.rs similarity index 100% rename from third_party/crates/clap_builder-4.6.6/src/parser/parser.rs rename to third_party/crates/clap_builder-4.6.7/src/parser/parser.rs diff --git a/third_party/crates/clap_builder-4.6.6/src/parser/validator.rs b/third_party/crates/clap_builder-4.6.7/src/parser/validator.rs similarity index 100% rename from third_party/crates/clap_builder-4.6.6/src/parser/validator.rs rename to third_party/crates/clap_builder-4.6.7/src/parser/validator.rs diff --git a/third_party/crates/clap_builder-4.6.6/src/util/any_value.rs b/third_party/crates/clap_builder-4.6.7/src/util/any_value.rs similarity index 100% rename from third_party/crates/clap_builder-4.6.6/src/util/any_value.rs rename to third_party/crates/clap_builder-4.6.7/src/util/any_value.rs diff --git a/third_party/crates/clap_builder-4.6.6/src/util/color.rs b/third_party/crates/clap_builder-4.6.7/src/util/color.rs similarity index 100% rename from third_party/crates/clap_builder-4.6.6/src/util/color.rs rename to third_party/crates/clap_builder-4.6.7/src/util/color.rs diff --git a/third_party/crates/clap_builder-4.6.6/src/util/escape.rs b/third_party/crates/clap_builder-4.6.7/src/util/escape.rs similarity index 100% rename from third_party/crates/clap_builder-4.6.6/src/util/escape.rs rename to third_party/crates/clap_builder-4.6.7/src/util/escape.rs diff --git a/third_party/crates/clap_builder-4.6.6/src/util/flat_map.rs b/third_party/crates/clap_builder-4.6.7/src/util/flat_map.rs similarity index 100% rename from third_party/crates/clap_builder-4.6.6/src/util/flat_map.rs rename to third_party/crates/clap_builder-4.6.7/src/util/flat_map.rs diff --git a/third_party/crates/clap_builder-4.6.6/src/util/flat_set.rs b/third_party/crates/clap_builder-4.6.7/src/util/flat_set.rs similarity index 100% rename from third_party/crates/clap_builder-4.6.6/src/util/flat_set.rs rename to third_party/crates/clap_builder-4.6.7/src/util/flat_set.rs diff --git a/third_party/crates/clap_builder-4.6.6/src/util/graph.rs b/third_party/crates/clap_builder-4.6.7/src/util/graph.rs similarity index 94% rename from third_party/crates/clap_builder-4.6.6/src/util/graph.rs rename to third_party/crates/clap_builder-4.6.7/src/util/graph.rs index d646400..5fd4f6b 100644 --- a/third_party/crates/clap_builder-4.6.6/src/util/graph.rs +++ b/third_party/crates/clap_builder-4.6.7/src/util/graph.rs @@ -6,7 +6,7 @@ struct Child { impl Child { fn new(id: T) -> Self { - Child { + Self { id, children: vec![], } @@ -21,7 +21,7 @@ where T: Sized + PartialEq + Clone, { pub(crate) fn with_capacity(s: usize) -> Self { - ChildGraph(Vec::with_capacity(s)) + Self(Vec::with_capacity(s)) } pub(crate) fn insert(&mut self, req: T) -> usize { diff --git a/third_party/crates/clap_builder-4.6.6/src/util/id.rs b/third_party/crates/clap_builder-4.6.7/src/util/id.rs similarity index 98% rename from third_party/crates/clap_builder-4.6.6/src/util/id.rs rename to third_party/crates/clap_builder-4.6.7/src/util/id.rs index 45bd8d8..f96d894 100644 --- a/third_party/crates/clap_builder-4.6.6/src/util/id.rs +++ b/third_party/crates/clap_builder-4.6.7/src/util/id.rs @@ -29,8 +29,8 @@ impl Id { } } -impl From<&'_ Id> for Id { - fn from(id: &'_ Id) -> Self { +impl From<&'_ Self> for Id { + fn from(id: &'_ Self) -> Self { id.clone() } } diff --git a/third_party/crates/clap_builder-4.6.6/src/util/mod.rs b/third_party/crates/clap_builder-4.6.7/src/util/mod.rs similarity index 100% rename from third_party/crates/clap_builder-4.6.6/src/util/mod.rs rename to third_party/crates/clap_builder-4.6.7/src/util/mod.rs diff --git a/third_party/crates/clap_builder-4.6.6/src/util/str_to_bool.rs b/third_party/crates/clap_builder-4.6.7/src/util/str_to_bool.rs similarity index 100% rename from third_party/crates/clap_builder-4.6.6/src/util/str_to_bool.rs rename to third_party/crates/clap_builder-4.6.7/src/util/str_to_bool.rs diff --git a/third_party/crates/clap_derive-4.6.4/.cargo-checksum.json b/third_party/crates/clap_derive-4.6.4/.cargo-checksum.json deleted file mode 100644 index e4307f9..0000000 --- a/third_party/crates/clap_derive-4.6.4/.cargo-checksum.json +++ /dev/null @@ -1 +0,0 @@ -{"$comment":"This file only protects against accidental modifications. It is not a security mechanism and does not protect against malicious changes.","files":{".cargo_vcs_info.json":"d2491ae1c941fcf564908e689ff17d8a25a5930af4e0f741dfa538bb8ab39c32","Cargo.lock":"dcb0f8f3185bfd120ab9275f8d679a9ab7f47e36176e4fa6f83846a36ab63328","Cargo.toml":"782a9596e3b1c58c16f4bb665b77e04fc09edea18b70a782f6800fe6b4092287","Cargo.toml.orig":"75f14353d728577e3292fe826bbbedabc29d2257db0cc7e9e913b7b8267bdcd8","LICENSE-APACHE":"c6596eb7be8581c18be736c846fb9173b69eccf6ef94c5135893ec56bd92ba08","LICENSE-MIT":"6efb0476a1cc085077ed49357026d8c173bf33017278ef440f222fb9cbcb66e6","README.md":"c7e86ee3235f6db632c6b6666508c0db60f3572a83fe69b2b920bf4e6f98e11e","src/attr.rs":"29783c4d7b9499315679711bea94476da6fef2c73f6a1b1f6c808e71330fbb02","src/derives/args.rs":"b9c766b770d5dd02855e3897978e23b07ce78d4afbce8851240d228fdb64484a","src/derives/into_app.rs":"fb1d0708ede65e15ae3ec80ced5a38fa4960c372ceae65c916b48bcc9bd5a9dc","src/derives/mod.rs":"660c5d27942993d7331025ddfc29ee4c1d7f3a7f49ae2ee2293624e6b2abd952","src/derives/parser.rs":"11af0826ebec312d44dfec3d94d8c516e4bf9fdb1bd0712e26fd9207b643fbc0","src/derives/subcommand.rs":"2e4a569fe37a4a682b9b26a42ad117160c9fd1dd1caf497eece0a9bf9cf71ac5","src/derives/value_enum.rs":"251a794bfa7e8a267abca8db518175ddfaeb6b68e75591742bae06f986da722a","src/dummies.rs":"f3217ddec1c671e37c6efbc471cda390b0a98092c1bc8b019b02ed3379dca498","src/item.rs":"382ef691d65bdc867eaa5465a408374ffda528e96824cebeff88de7f9d40e2eb","src/lib.rs":"ecb7d751f03cb24ae5ba7c963d2298716d67cae9baa16c7b301b198e810ca893","src/macros.rs":"3f60c5673c005548bbcd47f84e1f0fc6d1fb190d467681c3d9c52014bb4c6d36","src/utils/doc_comments.rs":"1f106617e61102c267f69ab82aadf38174c75e62a065eb751014ec885e349069","src/utils/error.rs":"977fd26c7ec7c33e20b1cf20944ed1e529b52a8f733694e30c211f97c8c32e72","src/utils/mod.rs":"d7fd1c1a8f45816b49d22c224546dcd11939c7c5fe7d38944e76abe1d78e13d6","src/utils/spanned.rs":"e2e3baaafe94a5ae271859576da79e602c7aaa7a6f22919c2ea3fdb23c8c91a9","src/utils/ty.rs":"8e9a298c7b990a1d067ad9a883f3ffbf27cd0adb05cc7e348eafb7a4d46dbb79"},"package":"d012d2b9d65aca7f18f4d9878a045bc17899bba951561ba5ec3c2ba1eed9a061"} \ No newline at end of file diff --git a/third_party/crates/clap_derive-4.6.4/.cargo_vcs_info.json b/third_party/crates/clap_derive-4.6.4/.cargo_vcs_info.json deleted file mode 100644 index 766494e..0000000 --- a/third_party/crates/clap_derive-4.6.4/.cargo_vcs_info.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "git": { - "sha1": "466b2be56c5811d1af62c407f5a00456350ece62" - }, - "path_in_vcs": "clap_derive" -} \ No newline at end of file diff --git a/third_party/crates/clap_derive-4.6.7/.cargo-checksum.json b/third_party/crates/clap_derive-4.6.7/.cargo-checksum.json new file mode 100644 index 0000000..fbc3cf9 --- /dev/null +++ b/third_party/crates/clap_derive-4.6.7/.cargo-checksum.json @@ -0,0 +1 @@ +{"$comment":"This file only protects against accidental modifications. It is not a security mechanism and does not protect against malicious changes.","files":{".cargo_vcs_info.json":"98d476fa0ef38d822c751f33bee6f693d821ae676b29a3d28f9156533fca4250","Cargo.lock":"ee882cf89c1d1c0172059f84548ca26a6b8b9e60047fab6b99414ae43347ce88","Cargo.toml":"6055bb6c6476792910d3e50a1edd321fda0bf4ae48e0a2d3cb07e89e4736a676","Cargo.toml.orig":"9d29042b9ecbc3de54af196ef3c8237bfdd8380b17db60fdd08e6f85da2f9aa0","LICENSE-APACHE":"249fdb6694467dd615b259f7ddde07be3f8ae5a72cecebb0e24f6629af4215fe","LICENSE-MIT":"6efb0476a1cc085077ed49357026d8c173bf33017278ef440f222fb9cbcb66e6","README.md":"c7e86ee3235f6db632c6b6666508c0db60f3572a83fe69b2b920bf4e6f98e11e","src/attr.rs":"94861c00bc57d3b063d6042673752b6b708fbfa12f75aa02f2e414fa5da64bbf","src/derives/args.rs":"ef2fe1a4d886b42984c29b59bdeb1c86949c023ac66fa48bef22eb9d2aa00016","src/derives/into_app.rs":"fb1d0708ede65e15ae3ec80ced5a38fa4960c372ceae65c916b48bcc9bd5a9dc","src/derives/mod.rs":"660c5d27942993d7331025ddfc29ee4c1d7f3a7f49ae2ee2293624e6b2abd952","src/derives/parser.rs":"11af0826ebec312d44dfec3d94d8c516e4bf9fdb1bd0712e26fd9207b643fbc0","src/derives/subcommand.rs":"dc86761722cd4b8f781e343cd8e9142aa54fcdd937ec7caff1028605204daff9","src/derives/value_enum.rs":"251a794bfa7e8a267abca8db518175ddfaeb6b68e75591742bae06f986da722a","src/dummies.rs":"f3217ddec1c671e37c6efbc471cda390b0a98092c1bc8b019b02ed3379dca498","src/item.rs":"e62a263bbfece319b5b844d592b2f362f9b9c3f4c5b04759d4d14edb66aca67f","src/lib.rs":"ecb7d751f03cb24ae5ba7c963d2298716d67cae9baa16c7b301b198e810ca893","src/macros.rs":"3f60c5673c005548bbcd47f84e1f0fc6d1fb190d467681c3d9c52014bb4c6d36","src/utils/doc_comments.rs":"1f106617e61102c267f69ab82aadf38174c75e62a065eb751014ec885e349069","src/utils/error.rs":"977fd26c7ec7c33e20b1cf20944ed1e529b52a8f733694e30c211f97c8c32e72","src/utils/mod.rs":"d7fd1c1a8f45816b49d22c224546dcd11939c7c5fe7d38944e76abe1d78e13d6","src/utils/spanned.rs":"4ed8b8d350f7ee3c15a3a108856c6fb011637fa3a583ae128573061bd5291faf","src/utils/ty.rs":"8e9a298c7b990a1d067ad9a883f3ffbf27cd0adb05cc7e348eafb7a4d46dbb79"},"package":"f9c751b79415d4e559e3d1fcf128e09e720eb673a06d26cf6f392d37d75b66e0"} \ No newline at end of file diff --git a/third_party/crates/clap_derive-4.6.7/.cargo_vcs_info.json b/third_party/crates/clap_derive-4.6.7/.cargo_vcs_info.json new file mode 100644 index 0000000..7b09988 --- /dev/null +++ b/third_party/crates/clap_derive-4.6.7/.cargo_vcs_info.json @@ -0,0 +1,6 @@ +{ + "git": { + "sha1": "13f2db5072d600c11d8d6298e4e9ba53ffc6c1ab" + }, + "path_in_vcs": "clap_derive" +} \ No newline at end of file diff --git a/third_party/crates/clap_derive-4.6.4/BUILD.bazel b/third_party/crates/clap_derive-4.6.7/BUILD.bazel similarity index 98% rename from third_party/crates/clap_derive-4.6.4/BUILD.bazel rename to third_party/crates/clap_derive-4.6.7/BUILD.bazel index fb13ee7..34198ee 100644 --- a/third_party/crates/clap_derive-4.6.4/BUILD.bazel +++ b/third_party/crates/clap_derive-4.6.7/BUILD.bazel @@ -109,11 +109,11 @@ rust_proc_macro( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "4.6.4", + version = "4.6.7", deps = [ "//third_party/crates/heck-0.5.0:heck", "//third_party/crates/proc-macro2-1.0.107:proc_macro2", "//third_party/crates/quote-1.0.47:quote", - "//third_party/crates/syn-3.0.5:syn", + "//third_party/crates/syn-3.0.6:syn", ], ) diff --git a/third_party/crates/clap_derive-4.6.4/Cargo.lock b/third_party/crates/clap_derive-4.6.7/Cargo.lock similarity index 99% rename from third_party/crates/clap_derive-4.6.4/Cargo.lock rename to third_party/crates/clap_derive-4.6.7/Cargo.lock index 8ce7bde..f9ffc8b 100644 --- a/third_party/crates/clap_derive-4.6.4/Cargo.lock +++ b/third_party/crates/clap_derive-4.6.7/Cargo.lock @@ -16,7 +16,7 @@ checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af" [[package]] name = "clap_derive" -version = "4.6.4" +version = "4.6.7" dependencies = [ "anstyle", "heck", diff --git a/third_party/crates/clap_derive-4.6.4/Cargo.toml b/third_party/crates/clap_derive-4.6.7/Cargo.toml similarity index 87% rename from third_party/crates/clap_derive-4.6.4/Cargo.toml rename to third_party/crates/clap_derive-4.6.7/Cargo.toml index 169ef70..32d5f81 100644 --- a/third_party/crates/clap_derive-4.6.4/Cargo.toml +++ b/third_party/crates/clap_derive-4.6.7/Cargo.toml @@ -13,15 +13,16 @@ edition = "2024" rust-version = "1.85" name = "clap_derive" -version = "4.6.4" +version = "4.6.7" build = false include = [ - "build.rs", - "src/**/*", - "Cargo.toml", - "LICENSE*", - "README.md", - "examples/**/*", + "/build.rs", + "/src/**/*", + "/Cargo.toml", + "/Cargo.lock", + "/LICENSE*", + "/README.md", + "/examples/**/*", ] autolib = false autobins = false @@ -98,8 +99,11 @@ assigning_clones = "allow" blocks_in_conditions = "allow" bool_assert_comparison = "allow" branches_sharing_code = "allow" +byte_char_slices = "allow" checked_conversions = "warn" collapsible_else_if = "allow" +collapsible_match = "allow" +collection_is_never_read = "warn" create_dir = "warn" dbg_macro = "warn" debug_assert_with_mut_call = "warn" @@ -112,9 +116,10 @@ explicit_into_iter_loop = "warn" fallible_impl_from = "warn" filter_map_next = "warn" flat_map_option = "warn" +float_cmp = "warn" float_cmp_const = "warn" fn_params_excessive_bools = "warn" -from_iter_instead_of_collect = "warn" +fn_to_numeric_cast_any = "warn" if_same_then_else = "allow" implicit_clone = "warn" imprecise_flops = "warn" @@ -130,11 +135,13 @@ linkedlist = "warn" lossy_float_literal = "warn" macro_use_imports = "warn" mem_forget = "warn" +mismatching_type_param_order = "warn" multiple_bound_locations = "allow" mutex_integer = "warn" needless_continue = "allow" needless_for_each = "warn" negative_feature_names = "warn" +partial_pub_fields = "warn" path_buf_push_overwrite = "warn" ptr_as_ptr = "warn" rc_mutex = "warn" @@ -152,11 +159,16 @@ string_lit_as_bytes = "warn" todo = "warn" trait_duplication_in_bounds = "warn" uninlined_format_args = "warn" +unnecessary_safety_comment = "warn" +unnecessary_safety_doc = "warn" +unseparated_literal_suffix = "warn" +use_self = "warn" verbose_file_reads = "warn" zero_sized_map_values = "warn" [lints.rust] -unnameable_types = "allow" +non_ascii_idents = "warn" +trivial_numeric_casts = "warn" unreachable_pub = "warn" unsafe_op_in_unsafe_fn = "warn" unused_lifetimes = "warn" diff --git a/third_party/crates/clap_derive-4.6.4/Cargo.toml.orig b/third_party/crates/clap_derive-4.6.7/Cargo.toml.orig similarity index 98% rename from third_party/crates/clap_derive-4.6.4/Cargo.toml.orig rename to third_party/crates/clap_derive-4.6.7/Cargo.toml.orig index b9b24a9..27d8213 100644 --- a/third_party/crates/clap_derive-4.6.4/Cargo.toml.orig +++ b/third_party/crates/clap_derive-4.6.7/Cargo.toml.orig @@ -1,6 +1,6 @@ [package] name = "clap_derive" -version = "4.6.4" +version = "4.6.7" description = "Parse command line argument by defining a struct, derive crate." categories = ["command-line-interface", "development-tools::procedural-macro-helpers"] keywords = [ diff --git a/third_party/crates/clap_builder-4.6.6/LICENSE-APACHE b/third_party/crates/clap_derive-4.6.7/LICENSE-APACHE similarity index 99% rename from third_party/crates/clap_builder-4.6.6/LICENSE-APACHE rename to third_party/crates/clap_derive-4.6.7/LICENSE-APACHE index 8f71f43..6aa81fe 100644 --- a/third_party/crates/clap_builder-4.6.6/LICENSE-APACHE +++ b/third_party/crates/clap_derive-4.6.7/LICENSE-APACHE @@ -186,7 +186,7 @@ same "printed page" as the copyright notice for easier identification within third-party archives. - Copyright {yyyy} {name of copyright owner} + Copyright Individual contributors Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/third_party/crates/clap_derive-4.6.4/LICENSE-MIT b/third_party/crates/clap_derive-4.6.7/LICENSE-MIT similarity index 100% rename from third_party/crates/clap_derive-4.6.4/LICENSE-MIT rename to third_party/crates/clap_derive-4.6.7/LICENSE-MIT diff --git a/third_party/crates/clap_derive-4.6.4/README.md b/third_party/crates/clap_derive-4.6.7/README.md similarity index 100% rename from third_party/crates/clap_derive-4.6.4/README.md rename to third_party/crates/clap_derive-4.6.7/README.md diff --git a/third_party/crates/clap_derive-4.6.4/src/attr.rs b/third_party/crates/clap_derive-4.6.7/src/attr.rs similarity index 91% rename from third_party/crates/clap_derive-4.6.4/src/attr.rs rename to third_party/crates/clap_derive-4.6.7/src/attr.rs index cb58ce7..80e0a08 100644 --- a/third_party/crates/clap_derive-4.6.4/src/attr.rs +++ b/third_party/crates/clap_derive-4.6.7/src/attr.rs @@ -39,9 +39,7 @@ impl ClapAttr { } else { continue; }; - for mut attr in - attr.parse_args_with(Punctuated::::parse_terminated)? - { + for mut attr in attr.parse_args_with(Punctuated::::parse_terminated)? { attr.kind = kind; parsed.push(attr); } @@ -84,6 +82,21 @@ impl ClapAttr { } } } + + pub(crate) fn lit_bool_or_abort(&self) -> Result { + let value = self.value_or_abort()?; + match value { + AttrValue::Expr(Expr::Lit(syn::ExprLit { + lit: syn::Lit::Bool(lit), + .. + })) => Ok(lit.value()), + _ => abort!( + self.name, + "attribute `{}` can only accept bool literals", + self.name + ), + } + } } impl Parse for ClapAttr { @@ -117,6 +130,7 @@ impl Parse for ClapAttr { "long_help" => Some(MagicAttrName::LongHelp), "author" => Some(MagicAttrName::Author), "version" => Some(MagicAttrName::Version), + "defer" => Some(MagicAttrName::Defer), _ => None, }; @@ -178,6 +192,7 @@ pub(crate) enum MagicAttrName { DefaultValuesOsT, NextDisplayOrder, NextHelpHeading, + Defer, } #[derive(Clone)] diff --git a/third_party/crates/clap_derive-4.6.4/src/derives/args.rs b/third_party/crates/clap_derive-4.6.7/src/derives/args.rs similarity index 98% rename from third_party/crates/clap_derive-4.6.4/src/derives/args.rs rename to third_party/crates/clap_derive-4.6.7/src/derives/args.rs index d1162c6..7d23896 100644 --- a/third_party/crates/clap_derive-4.6.4/src/derives/args.rs +++ b/third_party/crates/clap_derive-4.6.7/src/derives/args.rs @@ -77,6 +77,8 @@ pub(crate) fn gen_for_struct( let app_var = Ident::new("__clap_app", Span::call_site()); let augmentation = gen_augment(fields, &app_var, item, false)?; let augmentation_update = gen_augment(fields, &app_var, item, true)?; + let initial_app_methods = item.initial_top_level_methods(); + let final_app_methods = item.final_top_level_methods(); let group_id = if item.skip_group() { quote!(None) @@ -155,10 +157,14 @@ pub(crate) fn gen_for_struct( #group_id } fn augment_args<'b>(#app_var: clap::Command) -> clap::Command { - #augmentation + let #app_var = #app_var #initial_app_methods; + let #app_var = #augmentation; + #app_var #final_app_methods } fn augment_args_for_update<'b>(#app_var: clap::Command) -> clap::Command { - #augmentation_update + let #app_var = #app_var #initial_app_methods; + let #app_var = #augmentation_update; + #app_var #final_app_methods } } }) @@ -380,8 +386,6 @@ pub(crate) fn gen_augment( } else { quote!() }; - let initial_app_methods = parent_item.initial_top_level_methods(); - let final_app_methods = parent_item.final_top_level_methods(); let group_app_methods = if parent_item.skip_group() { quote!() } else { @@ -432,11 +436,10 @@ pub(crate) fn gen_augment( Ok(quote! {{ #deprecations let #app_var = #app_var - #initial_app_methods #group_app_methods ; #( #args )* - #app_var #final_app_methods + #app_var }}) } diff --git a/third_party/crates/clap_derive-4.6.4/src/derives/into_app.rs b/third_party/crates/clap_derive-4.6.7/src/derives/into_app.rs similarity index 100% rename from third_party/crates/clap_derive-4.6.4/src/derives/into_app.rs rename to third_party/crates/clap_derive-4.6.7/src/derives/into_app.rs diff --git a/third_party/crates/clap_derive-4.6.4/src/derives/mod.rs b/third_party/crates/clap_derive-4.6.7/src/derives/mod.rs similarity index 100% rename from third_party/crates/clap_derive-4.6.4/src/derives/mod.rs rename to third_party/crates/clap_derive-4.6.7/src/derives/mod.rs diff --git a/third_party/crates/clap_derive-4.6.4/src/derives/parser.rs b/third_party/crates/clap_derive-4.6.7/src/derives/parser.rs similarity index 100% rename from third_party/crates/clap_derive-4.6.4/src/derives/parser.rs rename to third_party/crates/clap_derive-4.6.7/src/derives/parser.rs diff --git a/third_party/crates/clap_derive-4.6.4/src/derives/subcommand.rs b/third_party/crates/clap_derive-4.6.7/src/derives/subcommand.rs similarity index 93% rename from third_party/crates/clap_derive-4.6.4/src/derives/subcommand.rs rename to third_party/crates/clap_derive-4.6.7/src/derives/subcommand.rs index 8b9584b..b424b09 100644 --- a/third_party/crates/clap_derive-4.6.4/src/derives/subcommand.rs +++ b/third_party/crates/clap_derive-4.6.7/src/derives/subcommand.rs @@ -64,6 +64,8 @@ pub(crate) fn gen_for_enum( let augmentation = gen_augment(variants, item, false)?; let augmentation_update = gen_augment(variants, item, true)?; let has_subcommand = gen_has_subcommand(variants)?; + let initial_app_methods = item.initial_top_level_methods(); + let final_app_methods = item.final_top_level_methods(); Ok(quote! { #[allow( @@ -123,10 +125,14 @@ pub(crate) fn gen_for_enum( #[automatically_derived] impl #impl_generics clap::Subcommand for #item_name #ty_generics #where_clause { fn augment_subcommands <'b>(__clap_app: clap::Command) -> clap::Command { - #augmentation + let __clap_app = __clap_app #initial_app_methods; + let __clap_app = #augmentation; + __clap_app #final_app_methods } fn augment_subcommands_for_update <'b>(__clap_app: clap::Command) -> clap::Command { - #augmentation_update + let __clap_app = __clap_app #initial_app_methods; + let __clap_app = #augmentation_update; + __clap_app #final_app_methods } fn has_subcommand(__clap_name: &str) -> bool { #has_subcommand @@ -281,22 +287,22 @@ fn gen_augment( Kind::Command(_) => { let subcommand_var = Ident::new("__clap_subcommand", Span::call_site()); - let sub_augment = match variant.fields { + let (sub_augment, initial_app_methods, final_from_attrs) = match variant.fields { Named(ref fields) => { - // Defer to `gen_augment` for adding cmd methods let fields = collect_args_fields(item, fields)?; - args::gen_augment(&fields, &subcommand_var, item, override_required)? - } - Unit => { - let arg_block = quote!( #subcommand_var ); - let initial_app_methods = item.initial_top_level_methods(); - let final_from_attrs = item.final_top_level_methods(); - quote! { - let #subcommand_var = #subcommand_var #initial_app_methods; - let #subcommand_var = #arg_block; - #subcommand_var #final_from_attrs - } + let sub_augment = + args::gen_augment(&fields, &subcommand_var, item, override_required)?; + ( + sub_augment, + item.initial_top_level_methods(), + item.final_top_level_methods(), + ) } + Unit => ( + quote! { #subcommand_var }, + item.initial_top_level_methods(), + item.final_top_level_methods(), + ), Unnamed(FieldsUnnamed { ref unnamed, .. }) if unnamed.len() == 1 => { let ty = &unnamed[0].ty; let arg_block = if override_required { @@ -312,13 +318,11 @@ fn gen_augment( } } }; - let initial_app_methods = item.initial_top_level_methods(); - let final_from_attrs = item.final_top_level_methods(); - quote! { - let #subcommand_var = #subcommand_var #initial_app_methods; - let #subcommand_var = #arg_block; - #subcommand_var #final_from_attrs - } + ( + arg_block, + item.initial_top_level_methods(), + item.final_top_level_methods(), + ) } Unnamed(..) => { abort!( @@ -328,6 +332,14 @@ fn gen_augment( } }; + let sub_augment = if parent_item.defer() { + quote! { + #subcommand_var.defer(|#subcommand_var| { #sub_augment }) + } + } else { + sub_augment + }; + let deprecations = if !override_required { item.deprecations() } else { @@ -337,8 +349,10 @@ fn gen_augment( let subcommand = quote! { let #app_var = #app_var.subcommand({ #deprecations - let #subcommand_var = clap::Command::new(#name); - #sub_augment + let #subcommand_var = clap::Command::new(#name) + #initial_app_methods; + let #subcommand_var = #sub_augment; + #subcommand_var #final_from_attrs }); }; Some(subcommand) @@ -352,14 +366,11 @@ fn gen_augment( } else { quote!() }; - let initial_app_methods = parent_item.initial_top_level_methods(); - let final_app_methods = parent_item.final_top_level_methods(); - Ok(quote! { + Ok(quote! {{ #deprecations; - let #app_var = #app_var #initial_app_methods; #( #subcommands )*; - #app_var #final_app_methods - }) + #app_var + }}) } fn gen_has_subcommand(variants: &[(&Variant, Item)]) -> Result { diff --git a/third_party/crates/clap_derive-4.6.4/src/derives/value_enum.rs b/third_party/crates/clap_derive-4.6.7/src/derives/value_enum.rs similarity index 100% rename from third_party/crates/clap_derive-4.6.4/src/derives/value_enum.rs rename to third_party/crates/clap_derive-4.6.7/src/derives/value_enum.rs diff --git a/third_party/crates/clap_derive-4.6.4/src/dummies.rs b/third_party/crates/clap_derive-4.6.7/src/dummies.rs similarity index 100% rename from third_party/crates/clap_derive-4.6.4/src/dummies.rs rename to third_party/crates/clap_derive-4.6.7/src/dummies.rs diff --git a/third_party/crates/clap_derive-4.6.4/src/item.rs b/third_party/crates/clap_derive-4.6.7/src/item.rs similarity index 97% rename from third_party/crates/clap_derive-4.6.4/src/item.rs rename to third_party/crates/clap_derive-4.6.7/src/item.rs index 4dc95c0..fed9ffe 100644 --- a/third_party/crates/clap_derive-4.6.4/src/item.rs +++ b/third_party/crates/clap_derive-4.6.7/src/item.rs @@ -50,6 +50,7 @@ pub(crate) struct Item { group_id: Name, group_methods: Vec, kind: Sp, + defer: Option>, } impl Item { @@ -65,6 +66,7 @@ impl Item { let parsed_attrs = ClapAttr::parse_all(attrs)?; res.infer_kind(&parsed_attrs)?; res.push_attrs(&parsed_attrs)?; + res.assert_no_defer()?; res.push_doc_comment(attrs, "about", Some("long_about")); Ok(res) @@ -102,6 +104,7 @@ impl Item { let parsed_attrs = ClapAttr::parse_all(attrs)?; res.infer_kind(&parsed_attrs)?; res.push_attrs(&parsed_attrs)?; + res.assert_no_defer()?; // Ignoring `push_doc_comment` as there is no top-level clap builder to add documentation // to @@ -144,6 +147,7 @@ impl Item { let parsed_attrs = ClapAttr::parse_all(&variant.attrs)?; res.infer_kind(&parsed_attrs)?; res.push_attrs(&parsed_attrs)?; + res.assert_no_defer()?; if matches!(&*res.kind, Kind::Command(_) | Kind::Subcommand(_)) { res.push_doc_comment(&variant.attrs, "about", Some("long_about")); } @@ -189,6 +193,7 @@ impl Item { let parsed_attrs = ClapAttr::parse_all(&variant.attrs)?; res.infer_kind(&parsed_attrs)?; res.push_attrs(&parsed_attrs)?; + res.assert_no_defer()?; if matches!(&*res.kind, Kind::Value) { res.push_doc_comment(&variant.attrs, "help", None); } @@ -217,6 +222,7 @@ impl Item { let parsed_attrs = ClapAttr::parse_all(&field.attrs)?; res.infer_kind(&parsed_attrs)?; res.push_attrs(&parsed_attrs)?; + res.assert_no_defer()?; if matches!(&*res.kind, Kind::Arg(_)) { res.push_doc_comment(&field.attrs, "help", Some("long_help")); } @@ -279,6 +285,7 @@ impl Item { group_id, group_methods: vec![], kind, + defer: None, } } @@ -835,6 +842,11 @@ impl Item { self.skip_group = true; } + Some(MagicAttrName::Defer) => { + assert_attr_kind(attr, &[AttrKind::Command])?; + self.defer = Some(Sp::new(attr.lit_bool_or_abort()?, attr.name.span())); + } + None // Magic only for the default, otherwise just forward to the builder | Some(MagicAttrName::Short) @@ -1090,6 +1102,23 @@ impl Item { pub(crate) fn skip_group(&self) -> bool { self.skip_group } + + pub(crate) fn defer(&self) -> bool { + self.defer + .as_ref() + .map(|defer| **defer) + .unwrap_or(cfg!(feature = "unstable-v5")) + } + + fn assert_no_defer(&self) -> Result<(), syn::Error> { + if let Some(defer) = &self.defer { + abort!( + defer.span(), + "`defer` is only supported on `Parser` and `Subcommand` enums" + ); + } + Ok(()) + } } #[derive(Clone)] @@ -1236,7 +1265,7 @@ pub(crate) struct Method { impl Method { pub(crate) fn new(name: Ident, args: TokenStream) -> Self { - Method { name, args } + Self { name, args } } fn from_env(ident: Ident, env_var: &str) -> Result, syn::Error> { @@ -1264,7 +1293,7 @@ impl Method { } let env_var_lit = LitStr::new(env_var, ident.span()); - Ok(Some(Method::new( + Ok(Some(Self::new( ident, quote!({ let _ = ::core::env!(#env_var_lit); @@ -1280,7 +1309,7 @@ impl Method { impl ToTokens for Method { fn to_tokens(&self, ts: &mut TokenStream) { - let Method { name, args } = self; + let Self { name, args } = self; let tokens = quote!( .#name(#args) ); @@ -1314,7 +1343,7 @@ impl Deprecation { impl ToTokens for Deprecation { fn to_tokens(&self, ts: &mut TokenStream) { let tokens = if cfg!(feature = "deprecated") { - let Deprecation { + let Self { span, id, version, @@ -1361,7 +1390,7 @@ fn assert_attr_kind(attr: &ClapAttr, possible_kind: &[AttrKind]) -> Result<(), s /// `"author1 :author2" => "author1 , author2"` fn process_author_str(author: &str) -> String { let mut res = String::with_capacity(author.len()); - let mut inside_angle_braces = 0usize; + let mut inside_angle_braces = 0_usize; for ch in author.chars() { if inside_angle_braces > 0 && ch == '>' { @@ -1436,8 +1465,8 @@ impl Name { use CasingStyle::{Camel, Kebab, Lower, Pascal, ScreamingSnake, Snake, Upper, Verbatim}; match self { - Name::Assigned(tokens) => tokens, - Name::Derived(ident) => { + Self::Assigned(tokens) => tokens, + Self::Derived(ident) => { let s = ident.unraw().to_string(); let s = match style { Pascal => s.to_upper_camel_case(), @@ -1458,8 +1487,8 @@ impl Name { use CasingStyle::{Camel, Kebab, Lower, Pascal, ScreamingSnake, Snake, Upper, Verbatim}; match self { - Name::Assigned(tokens) => quote!( (#tokens).chars().next().unwrap() ), - Name::Derived(ident) => { + Self::Assigned(tokens) => quote!( (#tokens).chars().next().unwrap() ), + Self::Derived(ident) => { let s = ident.unraw().to_string(); let s = match style { Pascal => s.to_upper_camel_case(), @@ -1482,8 +1511,8 @@ impl Name { impl ToTokens for Name { fn to_tokens(&self, tokens: &mut TokenStream) { match self { - Name::Assigned(t) => t.to_tokens(tokens), - Name::Derived(ident) => { + Self::Assigned(t) => t.to_tokens(tokens), + Self::Derived(ident) => { let s = ident.unraw().to_string(); quote_spanned!(ident.span()=> #s).to_tokens(tokens); } diff --git a/third_party/crates/clap_derive-4.6.4/src/lib.rs b/third_party/crates/clap_derive-4.6.7/src/lib.rs similarity index 100% rename from third_party/crates/clap_derive-4.6.4/src/lib.rs rename to third_party/crates/clap_derive-4.6.7/src/lib.rs diff --git a/third_party/crates/clap_derive-4.6.4/src/macros.rs b/third_party/crates/clap_derive-4.6.7/src/macros.rs similarity index 100% rename from third_party/crates/clap_derive-4.6.4/src/macros.rs rename to third_party/crates/clap_derive-4.6.7/src/macros.rs diff --git a/third_party/crates/clap_derive-4.6.4/src/utils/doc_comments.rs b/third_party/crates/clap_derive-4.6.7/src/utils/doc_comments.rs similarity index 100% rename from third_party/crates/clap_derive-4.6.4/src/utils/doc_comments.rs rename to third_party/crates/clap_derive-4.6.7/src/utils/doc_comments.rs diff --git a/third_party/crates/clap_derive-4.6.4/src/utils/error.rs b/third_party/crates/clap_derive-4.6.7/src/utils/error.rs similarity index 100% rename from third_party/crates/clap_derive-4.6.4/src/utils/error.rs rename to third_party/crates/clap_derive-4.6.7/src/utils/error.rs diff --git a/third_party/crates/clap_derive-4.6.4/src/utils/mod.rs b/third_party/crates/clap_derive-4.6.7/src/utils/mod.rs similarity index 100% rename from third_party/crates/clap_derive-4.6.4/src/utils/mod.rs rename to third_party/crates/clap_derive-4.6.7/src/utils/mod.rs diff --git a/third_party/crates/clap_derive-4.6.4/src/utils/spanned.rs b/third_party/crates/clap_derive-4.6.7/src/utils/spanned.rs similarity index 94% rename from third_party/crates/clap_derive-4.6.4/src/utils/spanned.rs rename to third_party/crates/clap_derive-4.6.7/src/utils/spanned.rs index 32f566e..7910092 100644 --- a/third_party/crates/clap_derive-4.6.4/src/utils/spanned.rs +++ b/third_party/crates/clap_derive-4.6.7/src/utils/spanned.rs @@ -13,7 +13,7 @@ pub(crate) struct Sp { impl Sp { pub(crate) fn new(val: T, span: Span) -> Self { - Sp { val, span } + Self { val, span } } pub(crate) fn get(&self) -> &T { @@ -41,7 +41,7 @@ impl DerefMut for Sp { impl From for Sp { fn from(ident: Ident) -> Self { - Sp { + Self { val: ident.to_string(), span: ident.span(), } @@ -50,7 +50,7 @@ impl From for Sp { impl From for Sp { fn from(lit: LitStr) -> Self { - Sp { + Self { val: lit.value(), span: lit.span(), } @@ -59,7 +59,7 @@ impl From for Sp { impl<'a> From> for Sp { fn from(sp: Sp<&'a str>) -> Self { - Sp::new(sp.val.into(), sp.span) + Self::new(sp.val.into(), sp.span) } } diff --git a/third_party/crates/clap_derive-4.6.4/src/utils/ty.rs b/third_party/crates/clap_derive-4.6.7/src/utils/ty.rs similarity index 100% rename from third_party/crates/clap_derive-4.6.4/src/utils/ty.rs rename to third_party/crates/clap_derive-4.6.7/src/utils/ty.rs diff --git a/third_party/crates/clap_lex-1.1.0/.cargo-checksum.json b/third_party/crates/clap_lex-1.1.0/.cargo-checksum.json deleted file mode 100644 index 89328c4..0000000 --- a/third_party/crates/clap_lex-1.1.0/.cargo-checksum.json +++ /dev/null @@ -1 +0,0 @@ -{"$comment":"This file only protects against accidental modifications. It is not a security mechanism and does not protect against malicious changes.","files":{".cargo_vcs_info.json":"4e9b39a453ddbe92ad5578c165df4886bca66fc4d941728a0a7b460dc652e4bb","Cargo.lock":"ededdbf03c19344e8da99f9f674171ae9728ecadfd54de64c192e3c35bd99517","Cargo.toml":"01d043b9d8911420d51b1b21313278cbcdac10cd852e277b25260a458f5f8fee","Cargo.toml.orig":"512c754086f24697abd3c8e762766a36012dd8d1b087861dd7ecd696b5ceaeab","LICENSE-APACHE":"c6596eb7be8581c18be736c846fb9173b69eccf6ef94c5135893ec56bd92ba08","LICENSE-MIT":"6efb0476a1cc085077ed49357026d8c173bf33017278ef440f222fb9cbcb66e6","README.md":"0260bbc467aad78b827f2ffa5b2731e942ee4b53c3e648735c8d74044862ec34","src/ext.rs":"6bfe8f85529a93566898e2d73df450504a8fb3c64c0c22334b14c3919db40f2c","src/lib.rs":"5ea6362c3fe3f140c837446310cc83afe689d7460ecc8533760836b751ab1a83"},"package":"c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9"} \ No newline at end of file diff --git a/third_party/crates/clap_lex-1.1.0/.cargo_vcs_info.json b/third_party/crates/clap_lex-1.1.0/.cargo_vcs_info.json deleted file mode 100644 index 5dcceff..0000000 --- a/third_party/crates/clap_lex-1.1.0/.cargo_vcs_info.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "git": { - "sha1": "9ab6dee710aa384e02ec5e9e2cfeadb2f35abf2a" - }, - "path_in_vcs": "clap_lex" -} \ No newline at end of file diff --git a/third_party/crates/clap_lex-1.1.1/.cargo-checksum.json b/third_party/crates/clap_lex-1.1.1/.cargo-checksum.json new file mode 100644 index 0000000..cd85bed --- /dev/null +++ b/third_party/crates/clap_lex-1.1.1/.cargo-checksum.json @@ -0,0 +1 @@ +{"$comment":"This file only protects against accidental modifications. It is not a security mechanism and does not protect against malicious changes.","files":{".cargo_vcs_info.json":"3c66365ed8cb533ed286ac1a4d8e4bd65c414059bbe8d669ca48af4dc7e302b9","Cargo.lock":"ab6ff99e7aa380606a5177ad57d5cdcab689aebf3126b1ede42389f34d652b18","Cargo.toml":"0fba3575d7ecb08dd83b5b0020c017e8f774d19021fb922775675f66ae4c4874","Cargo.toml.orig":"622136d7e3e5fb5cdecb565ac51c0cdca747d5bd046b8b86d5f1a0d06306ab6b","LICENSE-APACHE":"249fdb6694467dd615b259f7ddde07be3f8ae5a72cecebb0e24f6629af4215fe","LICENSE-MIT":"6efb0476a1cc085077ed49357026d8c173bf33017278ef440f222fb9cbcb66e6","README.md":"32bf96a821edf229cb5d30e7b66cfc526ed70cde7f1690b7cb10b542449b6012","src/ext.rs":"2261786f7d085bb9b36af8b8629633d531b348300de826c0881a4385e9da127f","src/lib.rs":"5ea6362c3fe3f140c837446310cc83afe689d7460ecc8533760836b751ab1a83"},"package":"1c133bc6a41be0d194c306b5506d15e6feeea7b1d6604bd3f8310dfb2ca96486"} \ No newline at end of file diff --git a/third_party/crates/clap_lex-1.1.1/.cargo_vcs_info.json b/third_party/crates/clap_lex-1.1.1/.cargo_vcs_info.json new file mode 100644 index 0000000..d6150d8 --- /dev/null +++ b/third_party/crates/clap_lex-1.1.1/.cargo_vcs_info.json @@ -0,0 +1,6 @@ +{ + "git": { + "sha1": "13f2db5072d600c11d8d6298e4e9ba53ffc6c1ab" + }, + "path_in_vcs": "clap_lex" +} \ No newline at end of file diff --git a/third_party/crates/clap_lex-1.1.0/BUILD.bazel b/third_party/crates/clap_lex-1.1.1/BUILD.bazel similarity index 99% rename from third_party/crates/clap_lex-1.1.0/BUILD.bazel rename to third_party/crates/clap_lex-1.1.1/BUILD.bazel index 5c72887..80f512a 100644 --- a/third_party/crates/clap_lex-1.1.0/BUILD.bazel +++ b/third_party/crates/clap_lex-1.1.1/BUILD.bazel @@ -106,5 +106,5 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "1.1.0", + version = "1.1.1", ) diff --git a/third_party/crates/clap_lex-1.1.0/Cargo.lock b/third_party/crates/clap_lex-1.1.1/Cargo.lock similarity index 69% rename from third_party/crates/clap_lex-1.1.0/Cargo.lock rename to third_party/crates/clap_lex-1.1.1/Cargo.lock index 56741a3..ebfcfa3 100644 --- a/third_party/crates/clap_lex-1.1.0/Cargo.lock +++ b/third_party/crates/clap_lex-1.1.1/Cargo.lock @@ -4,9 +4,9 @@ version = 4 [[package]] name = "automod" -version = "1.0.16" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8b5778837666541195063243828c5b6139221b47dc4ec3ba81738e532469ab1" +checksum = "a273e731a7fb8c2268fd2932c9e9a3469f4fd171d85d070d2687190229653bd3" dependencies = [ "proc-macro2", "quote", @@ -15,34 +15,34 @@ dependencies = [ [[package]] name = "clap_lex" -version = "1.1.0" +version = "1.1.1" dependencies = [ "automod", ] [[package]] name = "proc-macro2" -version = "1.0.106" +version = "1.0.107" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" +checksum = "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.45" +version = "1.0.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924" +checksum = "1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001" dependencies = [ "proc-macro2", ] [[package]] name = "syn" -version = "2.0.117" +version = "2.0.119" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" +checksum = "872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297" dependencies = [ "proc-macro2", "quote", diff --git a/third_party/crates/clap_lex-1.1.0/Cargo.toml b/third_party/crates/clap_lex-1.1.1/Cargo.toml similarity index 87% rename from third_party/crates/clap_lex-1.1.0/Cargo.toml rename to third_party/crates/clap_lex-1.1.1/Cargo.toml index 949628b..f417434 100644 --- a/third_party/crates/clap_lex-1.1.0/Cargo.toml +++ b/third_party/crates/clap_lex-1.1.1/Cargo.toml @@ -13,15 +13,16 @@ edition = "2024" rust-version = "1.85" name = "clap_lex" -version = "1.1.0" +version = "1.1.1" build = false include = [ - "build.rs", - "src/**/*", - "Cargo.toml", - "LICENSE*", - "README.md", - "examples/**/*", + "/build.rs", + "/src/**/*", + "/Cargo.toml", + "/Cargo.lock", + "/LICENSE*", + "/README.md", + "/examples/**/*", ] autolib = false autobins = false @@ -97,8 +98,11 @@ assigning_clones = "allow" blocks_in_conditions = "allow" bool_assert_comparison = "allow" branches_sharing_code = "allow" +byte_char_slices = "allow" checked_conversions = "warn" collapsible_else_if = "allow" +collapsible_match = "allow" +collection_is_never_read = "warn" create_dir = "warn" dbg_macro = "warn" debug_assert_with_mut_call = "warn" @@ -111,9 +115,10 @@ explicit_into_iter_loop = "warn" fallible_impl_from = "warn" filter_map_next = "warn" flat_map_option = "warn" +float_cmp = "warn" float_cmp_const = "warn" fn_params_excessive_bools = "warn" -from_iter_instead_of_collect = "warn" +fn_to_numeric_cast_any = "warn" if_same_then_else = "allow" implicit_clone = "warn" imprecise_flops = "warn" @@ -129,11 +134,13 @@ linkedlist = "warn" lossy_float_literal = "warn" macro_use_imports = "warn" mem_forget = "warn" +mismatching_type_param_order = "warn" multiple_bound_locations = "allow" mutex_integer = "warn" needless_continue = "allow" needless_for_each = "warn" negative_feature_names = "warn" +partial_pub_fields = "warn" path_buf_push_overwrite = "warn" ptr_as_ptr = "warn" rc_mutex = "warn" @@ -144,16 +151,23 @@ result_large_err = "allow" same_functions_in_if_condition = "warn" self_named_module_files = "warn" semicolon_if_nothing_returned = "warn" +str_to_string = "warn" +string_add = "warn" string_add_assign = "warn" string_lit_as_bytes = "warn" todo = "warn" trait_duplication_in_bounds = "warn" uninlined_format_args = "warn" +unnecessary_safety_comment = "warn" +unnecessary_safety_doc = "warn" +unseparated_literal_suffix = "warn" +use_self = "warn" verbose_file_reads = "warn" zero_sized_map_values = "warn" [lints.rust] -unnameable_types = "allow" +non_ascii_idents = "warn" +trivial_numeric_casts = "warn" unreachable_pub = "warn" unsafe_op_in_unsafe_fn = "warn" unused_lifetimes = "warn" diff --git a/third_party/crates/clap_lex-1.1.0/Cargo.toml.orig b/third_party/crates/clap_lex-1.1.1/Cargo.toml.orig similarity index 98% rename from third_party/crates/clap_lex-1.1.0/Cargo.toml.orig rename to third_party/crates/clap_lex-1.1.1/Cargo.toml.orig index 43a80c1..6d82867 100644 --- a/third_party/crates/clap_lex-1.1.0/Cargo.toml.orig +++ b/third_party/crates/clap_lex-1.1.1/Cargo.toml.orig @@ -1,6 +1,6 @@ [package] name = "clap_lex" -version = "1.1.0" +version = "1.1.1" description = "Minimal, flexible command line parser" categories = ["command-line-interface"] keywords = [ diff --git a/third_party/crates/clap-4.6.6/LICENSE-APACHE b/third_party/crates/clap_lex-1.1.1/LICENSE-APACHE similarity index 99% rename from third_party/crates/clap-4.6.6/LICENSE-APACHE rename to third_party/crates/clap_lex-1.1.1/LICENSE-APACHE index 8f71f43..6aa81fe 100644 --- a/third_party/crates/clap-4.6.6/LICENSE-APACHE +++ b/third_party/crates/clap_lex-1.1.1/LICENSE-APACHE @@ -186,7 +186,7 @@ same "printed page" as the copyright notice for easier identification within third-party archives. - Copyright {yyyy} {name of copyright owner} + Copyright Individual contributors Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/third_party/crates/clap_lex-1.1.0/LICENSE-MIT b/third_party/crates/clap_lex-1.1.1/LICENSE-MIT similarity index 100% rename from third_party/crates/clap_lex-1.1.0/LICENSE-MIT rename to third_party/crates/clap_lex-1.1.1/LICENSE-MIT diff --git a/third_party/crates/clap_lex-1.1.0/README.md b/third_party/crates/clap_lex-1.1.1/README.md similarity index 90% rename from third_party/crates/clap_lex-1.1.0/README.md rename to third_party/crates/clap_lex-1.1.1/README.md index b6a002c..7b18577 100644 --- a/third_party/crates/clap_lex-1.1.0/README.md +++ b/third_party/crates/clap_lex-1.1.1/README.md @@ -5,15 +5,15 @@ [![Crates.io](https://img.shields.io/crates/v/clap_lex?style=flat-square)](https://crates.io/crates/clap_lex) [![Crates.io](https://img.shields.io/crates/d/clap_lex?style=flat-square)](https://crates.io/crates/clap_lex) -[![License](https://img.shields.io/badge/license-Apache%202.0-blue?style=flat-square)](https://github.com/clap-rs/clap/blob/clap_lex-v1.1.0/LICENSE-APACHE) -[![License](https://img.shields.io/badge/license-MIT-blue?style=flat-square)](https://github.com/clap-rs/clap/blob/clap_lex-v1.1.0/LICENSE-MIT) +[![License](https://img.shields.io/badge/license-Apache%202.0-blue?style=flat-square)](https://github.com/clap-rs/clap/blob/clap_lex-v1.1.1/LICENSE-APACHE) +[![License](https://img.shields.io/badge/license-MIT-blue?style=flat-square)](https://github.com/clap-rs/clap/blob/clap_lex-v1.1.1/LICENSE-MIT) Dual-licensed under [Apache 2.0](LICENSE-APACHE) or [MIT](LICENSE-MIT). 1. [About](#about) 2. [API Reference](https://docs.rs/clap_lex) 3. [Questions & Discussions](https://github.com/clap-rs/clap/discussions) -4. [CONTRIBUTING](https://github.com/clap-rs/clap/blob/clap_lex-v1.1.0/clap_lex/CONTRIBUTING.md) -5. [Sponsors](https://github.com/clap-rs/clap/blob/clap_lex-v1.1.0/README.md#sponsors) +4. [CONTRIBUTING](https://github.com/clap-rs/clap/blob/clap_lex-v1.1.1/clap_lex/CONTRIBUTING.md) +5. [Sponsors](https://github.com/clap-rs/clap/blob/clap_lex-v1.1.1/README.md#sponsors) ## About diff --git a/third_party/crates/clap_lex-1.1.0/src/ext.rs b/third_party/crates/clap_lex-1.1.1/src/ext.rs similarity index 98% rename from third_party/crates/clap_lex-1.1.0/src/ext.rs rename to third_party/crates/clap_lex-1.1.1/src/ext.rs index fe2ac9b..fc4506e 100644 --- a/third_party/crates/clap_lex-1.1.0/src/ext.rs +++ b/third_party/crates/clap_lex-1.1.1/src/ext.rs @@ -204,7 +204,7 @@ impl OsStrExt for OsStr { // SAFETY: // - This came from `as_encoded_bytes` // - Since `prefix` is `&str`, any split will be along UTF-8 boundary - unsafe { OsStr::from_encoded_bytes_unchecked(s) } + unsafe { Self::from_encoded_bytes_unchecked(s) } }) } fn starts_with(&self, prefix: &str) -> bool { @@ -231,8 +231,8 @@ impl OsStrExt for OsStr { // - Since `needle` is `&str`, any split will be along UTF-8 boundary unsafe { Some(( - OsStr::from_encoded_bytes_unchecked(first), - OsStr::from_encoded_bytes_unchecked(second), + Self::from_encoded_bytes_unchecked(first), + Self::from_encoded_bytes_unchecked(second), )) } } diff --git a/third_party/crates/clap_lex-1.1.0/src/lib.rs b/third_party/crates/clap_lex-1.1.1/src/lib.rs similarity index 100% rename from third_party/crates/clap_lex-1.1.0/src/lib.rs rename to third_party/crates/clap_lex-1.1.1/src/lib.rs diff --git a/third_party/crates/crates.bzl b/third_party/crates/crates.bzl index 821af61..b372049 100644 --- a/third_party/crates/crates.bzl +++ b/third_party/crates/crates.bzl @@ -313,7 +313,8 @@ _CRATE_EDITIONS = { "": "2018", "src/ariadne": "2024", "src/machoke": "2024", - "src/nix-style-linter": "2024", + "src/monorepo": "2024", + "src/xatu": "2024", } _NORMAL_DEPENDENCIES = { @@ -324,17 +325,19 @@ _NORMAL_DEPENDENCIES = { }, "src/ariadne": { _COMMON_CONDITION: { - "clap": Label("//third_party/crates/clap-4.6.6:clap"), + "clap": Label("//third_party/crates/clap-4.6.7:clap"), "serde": Label("//third_party/crates/serde-1.0.229:serde"), "serde_json": Label("//third_party/crates/serde_json-1.0.151:serde_json"), }, }, "src/machoke": { }, - "src/nix-style-linter": { + "src/monorepo": { + }, + "src/xatu": { _COMMON_CONDITION: { - "rnix": Label("//third_party/crates/rnix-0.14.0:rnix"), - "rowan": Label("//third_party/crates/rowan-0.16.1:rowan"), + "anyhow": Label("//third_party/crates/anyhow-1.0.104:anyhow"), + "clap": Label("//third_party/crates/clap-4.6.7:clap"), }, }, } @@ -350,7 +353,9 @@ _NORMAL_ALIASES = { }, "src/machoke": { }, - "src/nix-style-linter": { + "src/monorepo": { + }, + "src/xatu": { _COMMON_CONDITION: { }, }, @@ -363,7 +368,9 @@ _NORMAL_DEV_DEPENDENCIES = { }, "src/machoke": { }, - "src/nix-style-linter": { + "src/monorepo": { + }, + "src/xatu": { }, } @@ -374,7 +381,9 @@ _NORMAL_DEV_ALIASES = { }, "src/machoke": { }, - "src/nix-style-linter": { + "src/monorepo": { + }, + "src/xatu": { }, } @@ -385,7 +394,9 @@ _PROC_MACRO_DEPENDENCIES = { }, "src/machoke": { }, - "src/nix-style-linter": { + "src/monorepo": { + }, + "src/xatu": { }, } @@ -396,7 +407,9 @@ _PROC_MACRO_ALIASES = { }, "src/machoke": { }, - "src/nix-style-linter": { + "src/monorepo": { + }, + "src/xatu": { }, } @@ -407,7 +420,9 @@ _PROC_MACRO_DEV_DEPENDENCIES = { }, "src/machoke": { }, - "src/nix-style-linter": { + "src/monorepo": { + }, + "src/xatu": { }, } @@ -418,7 +433,9 @@ _PROC_MACRO_DEV_ALIASES = { }, "src/machoke": { }, - "src/nix-style-linter": { + "src/monorepo": { + }, + "src/xatu": { }, } @@ -429,7 +446,9 @@ _BUILD_DEPENDENCIES = { }, "src/machoke": { }, - "src/nix-style-linter": { + "src/monorepo": { + }, + "src/xatu": { }, } @@ -440,7 +459,9 @@ _BUILD_ALIASES = { }, "src/machoke": { }, - "src/nix-style-linter": { + "src/monorepo": { + }, + "src/xatu": { }, } @@ -451,7 +472,9 @@ _BUILD_PROC_MACRO_DEPENDENCIES = { }, "src/machoke": { }, - "src/nix-style-linter": { + "src/monorepo": { + }, + "src/xatu": { }, } @@ -462,7 +485,9 @@ _BUILD_PROC_MACRO_ALIASES = { }, "src/machoke": { }, - "src/nix-style-linter": { + "src/monorepo": { + }, + "src/xatu": { }, } diff --git a/third_party/crates/proc-macro2-1.0.107/BUILD.bazel b/third_party/crates/proc-macro2-1.0.107/BUILD.bazel index 1dc9e88..bb5aabe 100644 --- a/third_party/crates/proc-macro2-1.0.107/BUILD.bazel +++ b/third_party/crates/proc-macro2-1.0.107/BUILD.bazel @@ -117,7 +117,7 @@ rust_library( version = "1.0.107", deps = [ ":build_script_build", - "//third_party/crates/unicode-ident-1.0.24:unicode_ident", + "//third_party/crates/unicode-ident-1.0.26:unicode_ident", ], ) diff --git a/third_party/crates/serde_derive-1.0.229/BUILD.bazel b/third_party/crates/serde_derive-1.0.229/BUILD.bazel index 70b9202..e07d293 100644 --- a/third_party/crates/serde_derive-1.0.229/BUILD.bazel +++ b/third_party/crates/serde_derive-1.0.229/BUILD.bazel @@ -113,6 +113,6 @@ rust_proc_macro( deps = [ "//third_party/crates/proc-macro2-1.0.107:proc_macro2", "//third_party/crates/quote-1.0.47:quote", - "//third_party/crates/syn-3.0.5:syn", + "//third_party/crates/syn-3.0.6:syn", ], ) diff --git a/third_party/crates/syn-3.0.5/.cargo_vcs_info.json b/third_party/crates/syn-3.0.5/.cargo_vcs_info.json deleted file mode 100644 index f8dfb21..0000000 --- a/third_party/crates/syn-3.0.5/.cargo_vcs_info.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "git": { - "sha1": "e0ad92d68b588c964e82bb74c3bd3e1e99f97ceb" - }, - "path_in_vcs": "" -} \ No newline at end of file diff --git a/third_party/crates/syn-3.0.5/.cargo-checksum.json b/third_party/crates/syn-3.0.6/.cargo-checksum.json similarity index 89% rename from third_party/crates/syn-3.0.5/.cargo-checksum.json rename to third_party/crates/syn-3.0.6/.cargo-checksum.json index c0818f6..fef1b05 100644 --- a/third_party/crates/syn-3.0.5/.cargo-checksum.json +++ b/third_party/crates/syn-3.0.6/.cargo-checksum.json @@ -1 +1 @@ -{"$comment":"This file only protects against accidental modifications. It is not a security mechanism and does not protect against malicious changes.","files":{".cargo_vcs_info.json":"d1ccb7a3cb07e9478916c1b8fa72b85f75f35b2823ccd937e64538e6c1ece7d1","Cargo.lock":"e2223ded58505049d0513b0b8929cec1b27fc11cb6418f2764484e9a1242e37d","Cargo.toml":"6447bd9e45a88d404c311a5ff4e16018f468c5739723f7d5caf61887dbff7caf","Cargo.toml.orig":"c5c3d398ef17ea056964ee24a9f54e56782810746efd46d3e4f3563ac19b46a7","LICENSE-APACHE":"62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a","LICENSE-MIT":"23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3","README.md":"a00f270c7f468863f28b9984547872efb57c7db1b9beb6e685852dc24de6846e","benches/file.rs":"6f2ae7748d1576cff48e4ef55d4e87e2f5bb7898a36aa99ea6dd6ed0f72a4e3c","benches/rust.rs":"4ad250087795831d7c79b130d47927b5c733052c9659de039c08835b74be72b1","src/attr.rs":"2108cf48c98ed0a7833ec73b841fccc254c733453a7e69127b0255541bbc9572","src/bigint.rs":"21cf6cf0c8e175421a6579321878e140d6cd2c975e5bdac4eadde25907d7e879","src/buffer.rs":"ddb6d50a9e79dc1db86d819d41dbf532e172997c8e0101d73c95052835756c50","src/classify.rs":"980e81540ddf0414bbfa6fc4f543127d39da84337732a6353473afbd547267f0","src/custom_keyword.rs":"322114e36ae43a2f8605506fb4568efdbc2986853e2fee74bd10a4ca0fb60c69","src/custom_punctuation.rs":"67134b7685ce89eddb7bf4ee3c9a48e5eb8ecbb1703cd49a01cbb115239fb814","src/data.rs":"78280858745d59b721098c7d7f8aa99dddd9e519908d75a1c4444c9c455875d6","src/derive.rs":"4927cfd64d2c61bb9ee8462b83d5bbce77e3f85c3a03a5565ecf6f08d55367c3","src/discouraged.rs":"7b5ca0fb3120970d028ddd4efc69363fea278a0b6ed5160d82295c326b3b08ac","src/drops.rs":"c48e679507424c08716b48256a06d59fe55e877de336c40f0df56cfd80e23826","src/error.rs":"5ed698f9dd63f16775e48455919a626a246d2ac38d682c1ba37a0ff561ed0a7b","src/export.rs":"d9039ba7f1455089139cf8a6871159f0ec57949cc730b42fe3c318a8397d3368","src/expr.rs":"5a3dc478d7b76a13f2bd7632ccb8f2f9733c1081fce527a17dabd7a7e99161a2","src/ext.rs":"8bc0d0ffab88c73d2305c9f588e6b5285501de8869308162f91019c83bc5bdf1","src/file.rs":"4513d0f1f4a4d78ba94c0895e97aadc0c2ebcf6f5da36abf762e77e813bc9aea","src/fixup.rs":"7647cde30efdce96b1488ae805788c168d4499b464b7d421abc17ea8ffde66f2","src/gen/clone.rs":"342704f87c06f11b4b6b60689df5f55e7a9a67d656b9286cc23a364f485c135f","src/gen/debug.rs":"29782ea05d86b95e98bb664d6688c413c871dc78f5dc9ee81f584aaa63e85558","src/gen/eq.rs":"15f2b5070ea8fccf07dbff6bf2fdc027c6d913599b5c1a8e8a5bc9e39e601133","src/gen/fold.rs":"4804ee04ce6ed8437a9e5d2a54a3ca91f711098034f95ac7102ca0928783dc3e","src/gen/hash.rs":"ac638e8b56722dd890bd06297a2902b9015cf85e2c50432258b050e43cc1d4cf","src/gen/token.css":"f79afb8272b8c9b6fe63716c6be5c53d8e7c5ca5473bf3ec891b6e1be9887716","src/gen/visit.rs":"32414282294ae0d0fbbe863c51cf26c2fc3fb6843dbf715d96f5ad69f3048c2c","src/gen/visit_mut.rs":"1d76d69baddc4f1354399cab7309a5a2738b3850ad249f793b596fc854c4e8d1","src/generics.rs":"a563693b6c9ec11d61b2ce7f869763a3c967879dd9306743f01203cd9555cda1","src/group.rs":"61e067094aa930b6550dc3717a5aaeef7dabfdcf1a177f83fb636598fa7e4e72","src/ident.rs":"a17e32b0d997649c4c986d1c9eef24be5331cd9ab478604932297b55f785487a","src/item.rs":"11529dc48c5045d3b0f7947d05ea5aadf0f389f4a8e0b25222333042721ab10f","src/lib.rs":"7a274648ad0364fff73af90e8cc9b2cf404604b8364c82648398417d520421d5","src/lifetime.rs":"2f3a240a4a0d9536dd1e3255d5ae0d64efcc46f295cf565a09e8ac33cd3d3487","src/lit.rs":"b474ef6e974844ba972c0fcedf3e075f03e822faf4e55a9b27f648efe7121098","src/lookahead.rs":"ea51bbf9a23d68238f8324a51675f5815fb3e5fc08c6bab93bc2648d3342c38f","src/mac.rs":"fdce8291f71adef3f69975f229156dca2309ca232ed943061afaf96220908ab8","src/macros.rs":"dfc278625948d727ef06e058a94483bbcc551b62b8eb736dc7cd9e0a4777866f","src/meta.rs":"d8703f8cbc5fd6465c367214eac38efca0f8388bdef8ac5e6f863835fbd3b30f","src/op.rs":"a61757370f802e44efa3c4a1057ae2cd26e64e273f7d76c06d5ffb49602319e2","src/parse.rs":"e692d6e895ac79a14680b89a7c29611995126953238176bdb50d2a3c2fb2d9e3","src/parse_macro_input.rs":"e4e22b63d0496d06a4ca17742a22467ed93f08a739081324773828bad63175ee","src/parse_quote.rs":"c0ae210cfe6d6b8f6758cff1f44283acd9df5ed67d88911875079fb28d4d1b67","src/pat.rs":"3258bdaca2be2c692cd9bb09a89f811f53b176939a57ce46c0d89284628fc830","src/path.rs":"088ff7dc2cd278efc32017722887d6849866e54ab7d7ae47710edf785c0cc478","src/precedence.rs":"301f5cc51e1bbb35aeb64f6ed1b21d6f61d83f6c048aec9896976ee0011b948e","src/print.rs":"22910bf0521ab868ebd7c62601c55912d12cfb400c65723e08e5cfa3a2d111c0","src/punctuated.rs":"6b70fd15cc662260c2c0f20cd35a777351b2c5199b299cf5c8d8972723bd0f04","src/restriction.rs":"9506f1dd5710a380a8298dc8b345a0849a011e447e1aca08c4ca29543a65273b","src/scan_expr.rs":"1afda43a7f4e9d426859a90d8a62a58c6654f3be41bb274d4884a56ac08f8eee","src/sealed.rs":"6ece3b3dcb30f6bb98b93d83759ca7712ee8592bef9c0511141039c38765db0e","src/span.rs":"0a48e375e5c9768f6f64174a91ba6a255f4b021e2fb3548d8494e617f142601b","src/spanned.rs":"b53ce23f10935cf202da0f5a430e9feca9f4858bbd6efbe896acf17d3cfce540","src/stmt.rs":"60718ffd8e4b72bae9ea620670276af3bd407f248f2c5e3bd945a2ea8c541661","src/thread.rs":"b91e33c563c2ea584fcd7c5454998303173f4227bdb19504776e61d09b60675c","src/token.rs":"fddf7540f6c87e088ca2e4cd59a4769bc99989907a71e0d7cb42ee6ec067a6ac","src/tt.rs":"d5b9df076504b1506e0b05dafb9006fd0772fdb8d4b8b8dcc315dbca3277331a","src/ty.rs":"63bbf2272575d40ba632b54ca51857f43410bc22c20ff3ecedee3d3f52dd84e5","src/verbatim.rs":"503055ba92ebb97da71a8a7cae1e6606969aadfb965b0d6c7e56693f9ef66b0a","src/whitespace.rs":"9cdcbfe9045b259046329a795bc1105ab5a871471a6d3f7318d275ee53f7a825","tests/common/eq.rs":"6960fd58a534c3371d1671aaf35f9498222a4c3bca2e952e6208e084adf0fe85","tests/common/mod.rs":"b752aa8f1faf8c6abf1286a12fb50b6c257ec1889d81bcdb3dc3257134695a89","tests/common/parse.rs":"b1685e9e0f0569f48d66ddd92d787a12933a1d2f95e7c9ae974a3648763f989b","tests/common/visit.rs":"a260ecd2ce7853cd3644e19aba08e8d358a656fd3fb0f1287cea40c59c9e62c9","tests/debug/gen.rs":"75b59398bb58e8d05c5ee5598b88163564b480c866af3dddb9bcc69e8df8459a","tests/debug/mod.rs":"1259df940bbcaa968a837e402d6853f2efa38d2260e306d42f17f9e8ef74fae5","tests/macros/mod.rs":"d2294a79e341c623ae671dd363e99965d78dda7f340b0cc038267207adfacae2","tests/regression.rs":"e9565ea0efecb4136f099164ffcfa26e1996b0a27fb9c6659e90ad9bdd42e7b6","tests/regression/issue1108.rs":"f32db35244a674e22ff824ca9e5bbec2184e287b59f022db68c418b5878a2edc","tests/regression/issue1235.rs":"a2266b10c3f7c7af5734817ab0a3e8b309b51e7d177b63f26e67e6b744d280b0","tests/repo/mod.rs":"a86074ef6992d93768d9af0e6d8bac21cc9a3378d158a3e1edde0e12a9ebf959","tests/repo/progress.rs":"11219e4ae5e0175d5ddc743907a57b8c4e750e709687c3df53728d6af994a86f","tests/snapshot/mod.rs":"4a101272c5abe6ca9f3501e0cacacee9a0ccf7ca773348a239e5b046d0316a7e","tests/test_attribute.rs":"8a4429b7cfe2360bb73beae54a62ae3255ebbd5181467a8608d6f858c2711728","tests/test_derive_input.rs":"ac6fff053bded4ca30f88343cbf984a319119b58805f56058bd6ad61a1f60972","tests/test_expr.rs":"478d1f99f5cf001f3566ea01ee9a54cf913f47a0d0eb96bc2b3dbc78c8745cba","tests/test_generics.rs":"2bd20cbaab8ff268e6e283ae9564f064f352deab7d3d4beafb7f41baa2b862cf","tests/test_grouping.rs":"fe3de6e8824f0722ab6450c6dfc374f6e0f8fe75c87c4dd56b2cb00a2197ed58","tests/test_ident.rs":"d5850e817720e774cd397a46dbc5298c57933823c18e20805e84503fc9387e8f","tests/test_item.rs":"49f7130127da9077dc39cb1c3b9a70b55f62c39555b48bf9c7f5bb07fc506531","tests/test_lit.rs":"4130efa425d14ed3ad9a1c2a00ef4b29782c9d1cf9e29ff9dddd3b23b2e3ddee","tests/test_meta.rs":"5b0fdee0decbd07476c9673403a662de385901b4bf60600c26ac879893f5bf9c","tests/test_parse_buffer.rs":"1c8cbbf457603bd0a83348079591f843f7ef0533a6275a0c76533e2d07dd321a","tests/test_parse_quote.rs":"2fc6fcd5f6ab063fb26dd64e087a8a0799f0650b7249c1c4f3b08b870b89ed22","tests/test_parse_stream.rs":"b6b533432173123d6d01d8d2cb33714bc50b30b16ffbb6116f93937221ad4594","tests/test_pat.rs":"91458c108f6d8a1660e5633cde6441b0e583f7fa8f36375dcf0a051301eb3d34","tests/test_path.rs":"4957de8bd9e0c158cfa91dc12ec3b16132d243f0d1f3184d827ac6da5ab1739f","tests/test_precedence.rs":"fd6da10bb2414f1a6fc6d18dbbcd773bae9179b405abb06de5874f09848f3887","tests/test_punctuated.rs":"efed2c281b6965d71b065c7606631ba1989af6e7b5f5d1ca1033f8b968dc076c","tests/test_receiver.rs":"c94e39e57b21844b9c89f9da672da33e83046a409f6d8d00422652f92e703d43","tests/test_round_trip.rs":"b784443cfc084e48f1b9fd4d1b2583d19d6e1ec9e5f4137fafc288dd3a44fc49","tests/test_shebang.rs":"785345c798689328060d59a715ed1a54f7a72e9d0305f2f2a1ed84102bcf100b","tests/test_size.rs":"2928bfc73c6a1dc1a7a4fc31bbd1ce8583f97aea4b3adf747dad325bfa748ef0","tests/test_stmt.rs":"17a3f6f7bbd25b428e8761de34b628c99afceacd339350909bbad13614a96cec","tests/test_token_trees.rs":"c30b921a96739c9334ec2bdd06552729891e0251b9d8fbdf0b8f5cc897babee5","tests/test_ty.rs":"5b70d0bc3a02ef6b06f39e4ba5a29df56f1e2237b365f9a0ea1f146b1e2386d2","tests/test_unparenthesize.rs":"a304a65af2cd4ec4b9ab1925727ebfc25b8cb39296f8e6d316d882c381c568da","tests/test_visibility.rs":"811a5df8923426bc24f1bc5e6e346dbbde5ce2ae3143867d81332200ad082494","tests/zzz_stable.rs":"2a862e59cb446235ed99aec0e6ada8e16d3ecc30229b29d825b7c0bbc2602989"},"package":"12df2e0110f65b775f769bb17ef989067a1d931b2eb822bd4346631eeada89f9"} \ No newline at end of file +{"$comment":"This file only protects against accidental modifications. It is not a security mechanism and does not protect against malicious changes.","files":{".cargo_vcs_info.json":"725d637955bb2847884c5ae0b11422cf79c191fbba2a8351cbd9147b3c44138f","Cargo.lock":"15b3f23b9e44527e604b25804b82f73248cef3c3c9454afac026998b98843e10","Cargo.toml":"69b7b5a4f75d37bac9745ced65bf9b715ddc4ecb32308df7d796c55e9cbae40f","Cargo.toml.orig":"517f44287d62f1621dae6d7934686a29e264c1e667ec185f5bb51e5bc1a3fa5e","LICENSE-APACHE":"62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a","LICENSE-MIT":"23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3","README.md":"a00f270c7f468863f28b9984547872efb57c7db1b9beb6e685852dc24de6846e","benches/file.rs":"6f2ae7748d1576cff48e4ef55d4e87e2f5bb7898a36aa99ea6dd6ed0f72a4e3c","benches/rust.rs":"4ad250087795831d7c79b130d47927b5c733052c9659de039c08835b74be72b1","src/attr.rs":"2108cf48c98ed0a7833ec73b841fccc254c733453a7e69127b0255541bbc9572","src/bigint.rs":"21cf6cf0c8e175421a6579321878e140d6cd2c975e5bdac4eadde25907d7e879","src/buffer.rs":"ddb6d50a9e79dc1db86d819d41dbf532e172997c8e0101d73c95052835756c50","src/classify.rs":"980e81540ddf0414bbfa6fc4f543127d39da84337732a6353473afbd547267f0","src/custom_keyword.rs":"322114e36ae43a2f8605506fb4568efdbc2986853e2fee74bd10a4ca0fb60c69","src/custom_punctuation.rs":"67134b7685ce89eddb7bf4ee3c9a48e5eb8ecbb1703cd49a01cbb115239fb814","src/data.rs":"78280858745d59b721098c7d7f8aa99dddd9e519908d75a1c4444c9c455875d6","src/derive.rs":"4927cfd64d2c61bb9ee8462b83d5bbce77e3f85c3a03a5565ecf6f08d55367c3","src/discouraged.rs":"7b5ca0fb3120970d028ddd4efc69363fea278a0b6ed5160d82295c326b3b08ac","src/drops.rs":"c48e679507424c08716b48256a06d59fe55e877de336c40f0df56cfd80e23826","src/error.rs":"5ed698f9dd63f16775e48455919a626a246d2ac38d682c1ba37a0ff561ed0a7b","src/export.rs":"d9039ba7f1455089139cf8a6871159f0ec57949cc730b42fe3c318a8397d3368","src/expr.rs":"c43c4a5bfdab10b6dd9efc292f6a091584be62608be58d962760eeaa7b41753d","src/ext.rs":"8bc0d0ffab88c73d2305c9f588e6b5285501de8869308162f91019c83bc5bdf1","src/file.rs":"4513d0f1f4a4d78ba94c0895e97aadc0c2ebcf6f5da36abf762e77e813bc9aea","src/fixup.rs":"7647cde30efdce96b1488ae805788c168d4499b464b7d421abc17ea8ffde66f2","src/gen/clone.rs":"342704f87c06f11b4b6b60689df5f55e7a9a67d656b9286cc23a364f485c135f","src/gen/debug.rs":"29782ea05d86b95e98bb664d6688c413c871dc78f5dc9ee81f584aaa63e85558","src/gen/eq.rs":"15f2b5070ea8fccf07dbff6bf2fdc027c6d913599b5c1a8e8a5bc9e39e601133","src/gen/fold.rs":"4804ee04ce6ed8437a9e5d2a54a3ca91f711098034f95ac7102ca0928783dc3e","src/gen/hash.rs":"ac638e8b56722dd890bd06297a2902b9015cf85e2c50432258b050e43cc1d4cf","src/gen/token.css":"f79afb8272b8c9b6fe63716c6be5c53d8e7c5ca5473bf3ec891b6e1be9887716","src/gen/visit.rs":"32414282294ae0d0fbbe863c51cf26c2fc3fb6843dbf715d96f5ad69f3048c2c","src/gen/visit_mut.rs":"1d76d69baddc4f1354399cab7309a5a2738b3850ad249f793b596fc854c4e8d1","src/generics.rs":"a563693b6c9ec11d61b2ce7f869763a3c967879dd9306743f01203cd9555cda1","src/group.rs":"61e067094aa930b6550dc3717a5aaeef7dabfdcf1a177f83fb636598fa7e4e72","src/ident.rs":"a17e32b0d997649c4c986d1c9eef24be5331cd9ab478604932297b55f785487a","src/item.rs":"11529dc48c5045d3b0f7947d05ea5aadf0f389f4a8e0b25222333042721ab10f","src/lib.rs":"c82344b478843da382750fb99de0e83eaf1f16331ba69c0085f53be59047d62a","src/lifetime.rs":"2f3a240a4a0d9536dd1e3255d5ae0d64efcc46f295cf565a09e8ac33cd3d3487","src/lit.rs":"b474ef6e974844ba972c0fcedf3e075f03e822faf4e55a9b27f648efe7121098","src/lookahead.rs":"ea51bbf9a23d68238f8324a51675f5815fb3e5fc08c6bab93bc2648d3342c38f","src/mac.rs":"fdce8291f71adef3f69975f229156dca2309ca232ed943061afaf96220908ab8","src/macros.rs":"dfc278625948d727ef06e058a94483bbcc551b62b8eb736dc7cd9e0a4777866f","src/meta.rs":"d8703f8cbc5fd6465c367214eac38efca0f8388bdef8ac5e6f863835fbd3b30f","src/op.rs":"a61757370f802e44efa3c4a1057ae2cd26e64e273f7d76c06d5ffb49602319e2","src/parse.rs":"e692d6e895ac79a14680b89a7c29611995126953238176bdb50d2a3c2fb2d9e3","src/parse_macro_input.rs":"e4e22b63d0496d06a4ca17742a22467ed93f08a739081324773828bad63175ee","src/parse_quote.rs":"c0ae210cfe6d6b8f6758cff1f44283acd9df5ed67d88911875079fb28d4d1b67","src/pat.rs":"3258bdaca2be2c692cd9bb09a89f811f53b176939a57ce46c0d89284628fc830","src/path.rs":"088ff7dc2cd278efc32017722887d6849866e54ab7d7ae47710edf785c0cc478","src/precedence.rs":"301f5cc51e1bbb35aeb64f6ed1b21d6f61d83f6c048aec9896976ee0011b948e","src/print.rs":"22910bf0521ab868ebd7c62601c55912d12cfb400c65723e08e5cfa3a2d111c0","src/punctuated.rs":"6b70fd15cc662260c2c0f20cd35a777351b2c5199b299cf5c8d8972723bd0f04","src/restriction.rs":"9506f1dd5710a380a8298dc8b345a0849a011e447e1aca08c4ca29543a65273b","src/scan_expr.rs":"1afda43a7f4e9d426859a90d8a62a58c6654f3be41bb274d4884a56ac08f8eee","src/sealed.rs":"6ece3b3dcb30f6bb98b93d83759ca7712ee8592bef9c0511141039c38765db0e","src/span.rs":"0a48e375e5c9768f6f64174a91ba6a255f4b021e2fb3548d8494e617f142601b","src/spanned.rs":"b53ce23f10935cf202da0f5a430e9feca9f4858bbd6efbe896acf17d3cfce540","src/stmt.rs":"60718ffd8e4b72bae9ea620670276af3bd407f248f2c5e3bd945a2ea8c541661","src/thread.rs":"b91e33c563c2ea584fcd7c5454998303173f4227bdb19504776e61d09b60675c","src/token.rs":"fddf7540f6c87e088ca2e4cd59a4769bc99989907a71e0d7cb42ee6ec067a6ac","src/tt.rs":"d5b9df076504b1506e0b05dafb9006fd0772fdb8d4b8b8dcc315dbca3277331a","src/ty.rs":"63bbf2272575d40ba632b54ca51857f43410bc22c20ff3ecedee3d3f52dd84e5","src/verbatim.rs":"503055ba92ebb97da71a8a7cae1e6606969aadfb965b0d6c7e56693f9ef66b0a","src/whitespace.rs":"9cdcbfe9045b259046329a795bc1105ab5a871471a6d3f7318d275ee53f7a825","tests/common/eq.rs":"9e8c1a6634aa951f8a674ecb44086879f357273bf7b6f5a193d2af6a21253004","tests/common/mod.rs":"b752aa8f1faf8c6abf1286a12fb50b6c257ec1889d81bcdb3dc3257134695a89","tests/common/parse.rs":"b1685e9e0f0569f48d66ddd92d787a12933a1d2f95e7c9ae974a3648763f989b","tests/common/visit.rs":"a260ecd2ce7853cd3644e19aba08e8d358a656fd3fb0f1287cea40c59c9e62c9","tests/debug/gen.rs":"75b59398bb58e8d05c5ee5598b88163564b480c866af3dddb9bcc69e8df8459a","tests/debug/mod.rs":"1259df940bbcaa968a837e402d6853f2efa38d2260e306d42f17f9e8ef74fae5","tests/macros/mod.rs":"d2294a79e341c623ae671dd363e99965d78dda7f340b0cc038267207adfacae2","tests/regression.rs":"e9565ea0efecb4136f099164ffcfa26e1996b0a27fb9c6659e90ad9bdd42e7b6","tests/regression/issue1108.rs":"f32db35244a674e22ff824ca9e5bbec2184e287b59f022db68c418b5878a2edc","tests/regression/issue1235.rs":"a2266b10c3f7c7af5734817ab0a3e8b309b51e7d177b63f26e67e6b744d280b0","tests/repo/mod.rs":"a86074ef6992d93768d9af0e6d8bac21cc9a3378d158a3e1edde0e12a9ebf959","tests/repo/progress.rs":"11219e4ae5e0175d5ddc743907a57b8c4e750e709687c3df53728d6af994a86f","tests/snapshot/mod.rs":"4a101272c5abe6ca9f3501e0cacacee9a0ccf7ca773348a239e5b046d0316a7e","tests/test_attribute.rs":"8a4429b7cfe2360bb73beae54a62ae3255ebbd5181467a8608d6f858c2711728","tests/test_derive_input.rs":"ac6fff053bded4ca30f88343cbf984a319119b58805f56058bd6ad61a1f60972","tests/test_expr.rs":"478d1f99f5cf001f3566ea01ee9a54cf913f47a0d0eb96bc2b3dbc78c8745cba","tests/test_generics.rs":"2bd20cbaab8ff268e6e283ae9564f064f352deab7d3d4beafb7f41baa2b862cf","tests/test_grouping.rs":"fe3de6e8824f0722ab6450c6dfc374f6e0f8fe75c87c4dd56b2cb00a2197ed58","tests/test_ident.rs":"d5850e817720e774cd397a46dbc5298c57933823c18e20805e84503fc9387e8f","tests/test_item.rs":"49f7130127da9077dc39cb1c3b9a70b55f62c39555b48bf9c7f5bb07fc506531","tests/test_lit.rs":"4130efa425d14ed3ad9a1c2a00ef4b29782c9d1cf9e29ff9dddd3b23b2e3ddee","tests/test_meta.rs":"5b0fdee0decbd07476c9673403a662de385901b4bf60600c26ac879893f5bf9c","tests/test_parse_buffer.rs":"1c8cbbf457603bd0a83348079591f843f7ef0533a6275a0c76533e2d07dd321a","tests/test_parse_quote.rs":"2fc6fcd5f6ab063fb26dd64e087a8a0799f0650b7249c1c4f3b08b870b89ed22","tests/test_parse_stream.rs":"b6b533432173123d6d01d8d2cb33714bc50b30b16ffbb6116f93937221ad4594","tests/test_pat.rs":"91458c108f6d8a1660e5633cde6441b0e583f7fa8f36375dcf0a051301eb3d34","tests/test_path.rs":"4957de8bd9e0c158cfa91dc12ec3b16132d243f0d1f3184d827ac6da5ab1739f","tests/test_precedence.rs":"fd6da10bb2414f1a6fc6d18dbbcd773bae9179b405abb06de5874f09848f3887","tests/test_punctuated.rs":"efed2c281b6965d71b065c7606631ba1989af6e7b5f5d1ca1033f8b968dc076c","tests/test_receiver.rs":"c94e39e57b21844b9c89f9da672da33e83046a409f6d8d00422652f92e703d43","tests/test_round_trip.rs":"b784443cfc084e48f1b9fd4d1b2583d19d6e1ec9e5f4137fafc288dd3a44fc49","tests/test_shebang.rs":"785345c798689328060d59a715ed1a54f7a72e9d0305f2f2a1ed84102bcf100b","tests/test_size.rs":"2928bfc73c6a1dc1a7a4fc31bbd1ce8583f97aea4b3adf747dad325bfa748ef0","tests/test_stmt.rs":"7f54d395303447bdb639cb100d8611c2d945cab975c9efbb8569c78e4b333f07","tests/test_token_trees.rs":"c30b921a96739c9334ec2bdd06552729891e0251b9d8fbdf0b8f5cc897babee5","tests/test_ty.rs":"5b70d0bc3a02ef6b06f39e4ba5a29df56f1e2237b365f9a0ea1f146b1e2386d2","tests/test_unparenthesize.rs":"a304a65af2cd4ec4b9ab1925727ebfc25b8cb39296f8e6d316d882c381c568da","tests/test_visibility.rs":"811a5df8923426bc24f1bc5e6e346dbbde5ce2ae3143867d81332200ad082494","tests/zzz_stable.rs":"2a862e59cb446235ed99aec0e6ada8e16d3ecc30229b29d825b7c0bbc2602989"},"package":"8593e8e72159ed2257d083c7a454a85cbf854f37a0966d8d483aff8c8a3ebcee"} \ No newline at end of file diff --git a/third_party/crates/syn-3.0.6/.cargo_vcs_info.json b/third_party/crates/syn-3.0.6/.cargo_vcs_info.json new file mode 100644 index 0000000..305c7a3 --- /dev/null +++ b/third_party/crates/syn-3.0.6/.cargo_vcs_info.json @@ -0,0 +1,6 @@ +{ + "git": { + "sha1": "559cab55ef0c644f77660840edc3620d0d99d3d7" + }, + "path_in_vcs": "" +} \ No newline at end of file diff --git a/third_party/crates/syn-3.0.5/BUILD.bazel b/third_party/crates/syn-3.0.6/BUILD.bazel similarity index 98% rename from third_party/crates/syn-3.0.5/BUILD.bazel rename to third_party/crates/syn-3.0.6/BUILD.bazel index a9dc77c..03d77a6 100644 --- a/third_party/crates/syn-3.0.5/BUILD.bazel +++ b/third_party/crates/syn-3.0.6/BUILD.bazel @@ -115,10 +115,10 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "3.0.5", + version = "3.0.6", deps = [ "//third_party/crates/proc-macro2-1.0.107:proc_macro2", "//third_party/crates/quote-1.0.47:quote", - "//third_party/crates/unicode-ident-1.0.24:unicode_ident", + "//third_party/crates/unicode-ident-1.0.26:unicode_ident", ], ) diff --git a/third_party/crates/syn-3.0.5/Cargo.lock b/third_party/crates/syn-3.0.6/Cargo.lock similarity index 91% rename from third_party/crates/syn-3.0.5/Cargo.lock rename to third_party/crates/syn-3.0.6/Cargo.lock index f159469..d80901b 100644 --- a/third_party/crates/syn-3.0.5/Cargo.lock +++ b/third_party/crates/syn-3.0.6/Cargo.lock @@ -61,10 +61,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] -name = "bitflags" -version = "2.13.1" +name = "base64" +version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b588b76d00fde79687d7646a9b5bdf3cc0f655e0bbd080335a95d7e96f3587da" +checksum = "ac07cdecf99051d9a5238b80f35af32cdeba5b336e55d957b318b50137e18da5" + +[[package]] +name = "bitflags" +version = "2.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ded4057c258ba199e2d26386d3af3780957ecaee6c4ef4041c6b4b8b97c0b06" [[package]] name = "bumpalo" @@ -80,9 +86,9 @@ checksum = "fc652a48c352aef3ea3aed32080501cf3ef6ed5da78602a020c991775b0aff04" [[package]] name = "cc" -version = "1.4.5" +version = "1.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "005ec2760ca554fae18df7a11195552ec576cd665632a881bc011d5bb2fd4d80" +checksum = "a3eb0f42d6c360dc3f8a821f6bf2fdea7f72bfd36b3076eb0e6d1e9e0752fff4" dependencies = [ "find-msvc-tools", "jobserver", @@ -92,9 +98,9 @@ dependencies = [ [[package]] name = "cfg-if" -version = "1.0.4" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" +checksum = "4e7648175b45a9a48536d676f68d918270699102aa8dab5496df06904c914600" [[package]] name = "cfg_aliases" @@ -134,9 +140,9 @@ dependencies = [ [[package]] name = "console" -version = "0.16.4" +version = "0.16.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fe5f465a4f6fee88fad41b85d990f84c835335e85b5d9e6e63e0d06d28cba7c" +checksum = "e96a4956774c13c126a8b5af4daa79384f4d826534c95a02d76afb39e2ab64e3" dependencies = [ "encode_unicode", "libc", @@ -169,6 +175,12 @@ version = "0.8.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" +[[package]] +name = "core_detect" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f8f80099a98041a3d1622845c271458a2d73e688351bf3cb999266764b81d48" + [[package]] name = "cpufeatures" version = "0.3.1" @@ -180,18 +192,18 @@ dependencies = [ [[package]] name = "crc32fast" -version = "1.5.1" +version = "1.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8498c871161e1742aaa9d52551b2d6ebdd4c3d45a3be423e3728f33b955be550" +checksum = "01a7799fd6b852db0e61728dde9a204c423b44d689dbd432522543614b490e78" dependencies = [ "cfg-if", ] [[package]] name = "crossbeam-deque" -version = "0.8.7" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5181e0de7b61eb03a81e347d6dd8797bae9da5146707b51077e2d71a54ec0ceb" +checksum = "622f3fc73690be383c7214310406f28a90e6edeadc3cea882f9d71e495b9711a" dependencies = [ "crossbeam-epoch", "crossbeam-utils", @@ -199,18 +211,18 @@ dependencies = [ [[package]] name = "crossbeam-epoch" -version = "0.9.20" +version = "0.9.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d6914041f254d6e9176c01941b21115dcfb7089e55135a35411081bd106ef3f" +checksum = "dc74980687109a3b14c72fd458107bf0baa1da1a1a805e178d15501ba9b86d9d" dependencies = [ "crossbeam-utils", ] [[package]] name = "crossbeam-utils" -version = "0.8.22" +version = "0.8.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61803da095bee82a81bb1a452ecc25d3b2f1416d1897eb86430c6159ef717c17" +checksum = "a31eee39dddec8330830986fcd7625edb5a24ec90ea038215273bbc3adb08ac6" [[package]] name = "displaydoc" @@ -220,7 +232,7 @@ checksum = "c6232dd377dcc64799954cbd3a9bb882e9cdc1308ccd87b1c098f1fb2eaf82a8" dependencies = [ "proc-macro2", "quote", - "syn 3.0.4", + "syn 3.0.5", ] [[package]] @@ -243,11 +255,17 @@ checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0" [[package]] name = "encoding_rs" -version = "0.8.35" +version = "0.8.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" +checksum = "7b5ef0006ac9ab233c38522f5ae99cae3625151de8f706cacee1cba4b8e2832a" dependencies = [ "cfg-if", + "core_detect", + "multiversion", + "multiversion_no_op", + "rustversion", + "scopeguard", + "simdutf8", ] [[package]] @@ -502,7 +520,7 @@ version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96547c2556ec9d12fb1578c4eaf448b04993e7fb79cbaad930a656880a6bdfa0" dependencies = [ - "base64", + "base64 0.22.1", "bytes", "futures-channel", "futures-util", @@ -627,9 +645,9 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.14.1" +version = "2.14.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07aa2048142242915a31d35844fb311e0e53fcca590c3a0a40dcf1b841fa09eb" +checksum = "cc4e190f5d26ca7051642629da2c52fc03bde85a03197c99408dcd291734c855" dependencies = [ "equivalent", "hashbrown", @@ -649,9 +667,9 @@ dependencies = [ [[package]] name = "ipnet" -version = "2.12.1" +version = "2.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a756c3fac73139e83f14c2d742155dd2b78d3ee56597b419a0579b7bdd6dd78" +checksum = "791930b43c0d5973160d90a8f3894509f2b273430f5c5c73b668636d0287c5c0" [[package]] name = "itoa" @@ -720,9 +738,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.104" +version = "0.3.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e0c1080212aad755ea003d18543e8768dd432c48819efd73a7bf1e39b7a5a3a" +checksum = "ce57d20d1ea864ce2ac172ab472d409214f4fd359f0b2a2775abdf522e2af99e" dependencies = [ "cfg-if", "futures-util", @@ -755,9 +773,9 @@ checksum = "f9f8bd3e56ce4dfc153cf470fffbfa98c7620958b312ca5c3a4b8d5181fd13c6" [[package]] name = "lru-slab" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "112b39cec0b298b6c1999fee3e31427f74f676e4cb9879ed1a121b43661a4154" +checksum = "4050469837a6ff301cd14c1f8f24f88549e6d548f24f64e2148eb0f72cebc51f" [[package]] name = "memchr" @@ -792,6 +810,33 @@ dependencies = [ "windows-sys 0.61.2", ] +[[package]] +name = "multiversion" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4ca4bea16ffc3f443cf7d866912118196bfef4c6a1556ca00f9f9b00bb43f7c" +dependencies = [ + "multiversion-macros", +] + +[[package]] +name = "multiversion-macros" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d416831a7317ef4b08bee00b69cbbb9c8763da7959a7026244d6266869f9c83" +dependencies = [ + "proc-macro2", + "quote", + "rustversion", + "syn 3.0.5", +] + +[[package]] +name = "multiversion_no_op" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "743fb55ba31b18fb1ecef6bdc9aa2743314978ac084044301a7eee33fb99a20d" + [[package]] name = "once_cell" version = "1.21.4" @@ -842,9 +887,9 @@ dependencies = [ [[package]] name = "quinn" -version = "0.11.11" +version = "0.11.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c1a41e437b6bbd489372cd4971de128e85c855f56c57f283d20ff016cf7c0a8" +checksum = "4051e23e9185c255a7e33ef59cdbca87a22d359052eecd22fc6b901fb37d9d11" dependencies = [ "bytes", "cfg_aliases", @@ -862,9 +907,9 @@ dependencies = [ [[package]] name = "quinn-proto" -version = "0.11.17" +version = "0.11.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04759210543be93709136e28212294a659ef5001836ff4eab4d663e4529bba83" +checksum = "a9746dbde176634f4f2f1faf2404e30a31b2bc1e9cafb5329c95d8177a18c9fc" dependencies = [ "aws-lc-rs", "bytes", @@ -975,16 +1020,16 @@ checksum = "92ecd8964f8453721699a1ed72037b0db49ce2f5a5138486ee89bed6f67cdf3a" dependencies = [ "proc-macro2", "quote", - "syn 3.0.4", + "syn 3.0.5", ] [[package]] name = "reqwest" -version = "0.13.4" +version = "0.13.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "219c5811de6525e5416c7d5d53bb656d3afdbc6c5af816e0802bcfa42dbdc1c3" +checksum = "16a1cfa75cc186dd73d5818e510e042e40927bccc9c236b061cea97e1eb08029" dependencies = [ - "base64", + "base64 0.23.1", "bytes", "encoding_rs", "futures-channel", @@ -1062,9 +1107,9 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.43" +version = "0.23.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0283386ce02abc0151e1761d08802dfe86c173b0b494af5cbc086574e453da06" +checksum = "0d41d731c7d2f962d1ccc364cec258de3c0e93b38c2fb3ba97ac74513048d634" dependencies = [ "aws-lc-rs", "once_cell", @@ -1159,6 +1204,12 @@ dependencies = [ "windows-sys 0.61.2", ] +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + [[package]] name = "security-framework" version = "3.7.0" @@ -1214,7 +1265,7 @@ checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348" dependencies = [ "proc-macro2", "quote", - "syn 3.0.4", + "syn 3.0.5", ] [[package]] @@ -1259,9 +1310,9 @@ checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" [[package]] name = "smallvec" -version = "1.16.0" +version = "1.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9be42f50aa861c555654aa3a37f52f4b1074bacf4e48fe0ef7fa584e80f1f0f" +checksum = "ba467056f1b547ed52077911161fc86985becbc60e8e1857c8a144dab0def891" [[package]] name = "socket2" @@ -1298,9 +1349,9 @@ dependencies = [ [[package]] name = "syn" -version = "3.0.4" +version = "3.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6275cddf4610d1775e6d1fe9469b2e77d0f39fd98fb7450901b821e0c53649f" +checksum = "12df2e0110f65b775f769bb17ef989067a1d931b2eb822bd4346631eeada89f9" dependencies = [ "proc-macro2", "quote", @@ -1309,7 +1360,7 @@ dependencies = [ [[package]] name = "syn" -version = "3.0.5" +version = "3.0.6" dependencies = [ "anyhow", "automod", @@ -1345,13 +1396,13 @@ dependencies = [ [[package]] name = "synstructure" -version = "0.13.2" +version = "0.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" +checksum = "901704edd0dfe137f1987838ee4f259e4e063c31371bdb423f7ae38ec6f77f02" dependencies = [ "proc-macro2", "quote", - "syn 2.0.119", + "syn 3.0.5", ] [[package]] @@ -1425,7 +1476,7 @@ checksum = "bc04cd3e1236dd4a98afca4569f2deb3f120e5422a4023be2cb683f8486292af" dependencies = [ "proc-macro2", "quote", - "syn 3.0.4", + "syn 3.0.5", ] [[package]] @@ -1440,18 +1491,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.13.2" +version = "1.13.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cf0ded5c4e56918d8f8a339e1bb67d038d3bc6d144ac407904015ba2e4cde9b" -dependencies = [ - "tinyvec_macros", -] - -[[package]] -name = "tinyvec_macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" +checksum = "fd3ca314f692efd6c868f8408f53fe444634a845f96c028b97d35f6a1f79f0ee" [[package]] name = "tokio" @@ -1563,9 +1605,9 @@ checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" [[package]] name = "unicode-ident" -version = "1.0.24" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" +checksum = "ab72a15cf68d77cb0987d3684aa8a45c5ef827e8cb49ee2f30bfd7ba2feb519f" [[package]] name = "untrusted" @@ -1618,9 +1660,9 @@ checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] name = "wasm-bindgen" -version = "0.2.127" +version = "0.2.128" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b70935747edd64d89de3efa29d73789b806c15798f8e7dca4d8ac356b50ce70" +checksum = "aecb87a33d3b0c5e3b7aa46336eaf486cffafbd281b195e4c8b80d50df2351bf" dependencies = [ "cfg-if", "once_cell", @@ -1631,9 +1673,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.77" +version = "0.4.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b7777d5cc23d0e91404e53ce2d5e8ec7acae3026b16233dba62cd3246457950" +checksum = "6ef4c5d3d2cdf5c54f4231181768f5510842e350db025faf1f7163b1030ed928" dependencies = [ "js-sys", "wasm-bindgen", @@ -1641,9 +1683,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.127" +version = "0.2.128" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77775f8f3f7217702089053b94958f8f54061a3f663417df76e19cbdcca29bc1" +checksum = "a690d511e3c1a8b3a55e33511e3c2c00c78415cd23650f32b808627f5696b9ed" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -1651,31 +1693,31 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.127" +version = "0.2.128" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e11d33f857dc2fb11b8bc75aee111aa9cbeb12cd9f25efd3d4c2a3dd4e235284" +checksum = "411e4887f0071ef2d2164a9d5fdf2d20efbef78fccd3a78b0c10a1dc5295e48a" dependencies = [ "bumpalo", "proc-macro2", "quote", - "syn 2.0.119", + "syn 3.0.5", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.127" +version = "0.2.128" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ef64dbcc55df09c7e5a46182d181c2cfa3e925f3da937ea764728b4bbb9dcbf" +checksum = "81941cd78d0c92026c33e5e01312845a4cb1e9af3407f9134b100dd03144103e" dependencies = [ "unicode-ident", ] [[package]] name = "web-sys" -version = "0.3.104" +version = "0.3.105" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c435338968042f4f59a557f690a253676d47ce13ceb55d70100e7facf6620a30" +checksum = "9fbddc4a036f00ec4f18c83445bd3115cb306a91da554919a099d9222fe4a7f8" dependencies = [ "js-sys", "wasm-bindgen", @@ -1855,13 +1897,13 @@ dependencies = [ [[package]] name = "yoke-derive" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de844c262c8848816172cef550288e7dc6c7b7814b4ee56b3e1553f275f1858e" +checksum = "33811428bee40dbceb6d545e95754741d17a6aef9a4849f0fd62e2ba4f412a78" dependencies = [ "proc-macro2", "quote", - "syn 2.0.119", + "syn 3.0.5", "synstructure", ] @@ -1876,13 +1918,13 @@ dependencies = [ [[package]] name = "zerofrom-derive" -version = "0.1.7" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11532158c46691caf0f2593ea8358fed6bbf68a0315e80aae9bd41fbade684a1" +checksum = "f75b4683f6c7f45248d4d64056a24298c6281e0993356d7d1b4a1a962ef10d4a" dependencies = [ "proc-macro2", "quote", - "syn 2.0.119", + "syn 3.0.5", "synstructure", ] @@ -1922,11 +1964,11 @@ checksum = "34df6fc39dbd26ddc9c10e6a2984476e13acce22e64e4487636ef494369225da" dependencies = [ "proc-macro2", "quote", - "syn 3.0.4", + "syn 3.0.5", ] [[package]] name = "zlib-rs" -version = "0.6.7" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34b31d188d9d685a4f9c7b46d6e36631b07058d2cfe190267adce54dc230bf12" +checksum = "b268e58e7c693d7c271f93ffc4ba3b380412554231c85bf61ca7af91042a4112" diff --git a/third_party/crates/syn-3.0.5/Cargo.toml b/third_party/crates/syn-3.0.6/Cargo.toml similarity index 99% rename from third_party/crates/syn-3.0.5/Cargo.toml rename to third_party/crates/syn-3.0.6/Cargo.toml index a18bffe..7a29350 100644 --- a/third_party/crates/syn-3.0.5/Cargo.toml +++ b/third_party/crates/syn-3.0.6/Cargo.toml @@ -13,7 +13,7 @@ edition = "2021" rust-version = "1.71" name = "syn" -version = "3.0.5" +version = "3.0.6" authors = ["David Tolnay "] build = false include = [ diff --git a/third_party/crates/syn-3.0.5/Cargo.toml.orig b/third_party/crates/syn-3.0.6/Cargo.toml.orig similarity index 99% rename from third_party/crates/syn-3.0.5/Cargo.toml.orig rename to third_party/crates/syn-3.0.6/Cargo.toml.orig index 7e6765a..0e4139a 100644 --- a/third_party/crates/syn-3.0.5/Cargo.toml.orig +++ b/third_party/crates/syn-3.0.6/Cargo.toml.orig @@ -1,6 +1,6 @@ [package] name = "syn" -version = "3.0.5" +version = "3.0.6" authors = ["David Tolnay "] categories = ["development-tools::procedural-macro-helpers", "parser-implementations"] description = "Parser for Rust source code" diff --git a/third_party/crates/unicode-ident-1.0.24/LICENSE-APACHE b/third_party/crates/syn-3.0.6/LICENSE-APACHE similarity index 100% rename from third_party/crates/unicode-ident-1.0.24/LICENSE-APACHE rename to third_party/crates/syn-3.0.6/LICENSE-APACHE diff --git a/third_party/crates/unicode-ident-1.0.24/LICENSE-MIT b/third_party/crates/syn-3.0.6/LICENSE-MIT similarity index 100% rename from third_party/crates/unicode-ident-1.0.24/LICENSE-MIT rename to third_party/crates/syn-3.0.6/LICENSE-MIT diff --git a/third_party/crates/syn-3.0.5/README.md b/third_party/crates/syn-3.0.6/README.md similarity index 100% rename from third_party/crates/syn-3.0.5/README.md rename to third_party/crates/syn-3.0.6/README.md diff --git a/third_party/crates/syn-3.0.5/benches/file.rs b/third_party/crates/syn-3.0.6/benches/file.rs similarity index 100% rename from third_party/crates/syn-3.0.5/benches/file.rs rename to third_party/crates/syn-3.0.6/benches/file.rs diff --git a/third_party/crates/syn-3.0.5/benches/rust.rs b/third_party/crates/syn-3.0.6/benches/rust.rs similarity index 100% rename from third_party/crates/syn-3.0.5/benches/rust.rs rename to third_party/crates/syn-3.0.6/benches/rust.rs diff --git a/third_party/crates/syn-3.0.5/src/attr.rs b/third_party/crates/syn-3.0.6/src/attr.rs similarity index 100% rename from third_party/crates/syn-3.0.5/src/attr.rs rename to third_party/crates/syn-3.0.6/src/attr.rs diff --git a/third_party/crates/syn-3.0.5/src/bigint.rs b/third_party/crates/syn-3.0.6/src/bigint.rs similarity index 100% rename from third_party/crates/syn-3.0.5/src/bigint.rs rename to third_party/crates/syn-3.0.6/src/bigint.rs diff --git a/third_party/crates/syn-3.0.5/src/buffer.rs b/third_party/crates/syn-3.0.6/src/buffer.rs similarity index 100% rename from third_party/crates/syn-3.0.5/src/buffer.rs rename to third_party/crates/syn-3.0.6/src/buffer.rs diff --git a/third_party/crates/syn-3.0.5/src/classify.rs b/third_party/crates/syn-3.0.6/src/classify.rs similarity index 100% rename from third_party/crates/syn-3.0.5/src/classify.rs rename to third_party/crates/syn-3.0.6/src/classify.rs diff --git a/third_party/crates/syn-3.0.5/src/custom_keyword.rs b/third_party/crates/syn-3.0.6/src/custom_keyword.rs similarity index 100% rename from third_party/crates/syn-3.0.5/src/custom_keyword.rs rename to third_party/crates/syn-3.0.6/src/custom_keyword.rs diff --git a/third_party/crates/syn-3.0.5/src/custom_punctuation.rs b/third_party/crates/syn-3.0.6/src/custom_punctuation.rs similarity index 100% rename from third_party/crates/syn-3.0.5/src/custom_punctuation.rs rename to third_party/crates/syn-3.0.6/src/custom_punctuation.rs diff --git a/third_party/crates/syn-3.0.5/src/data.rs b/third_party/crates/syn-3.0.6/src/data.rs similarity index 100% rename from third_party/crates/syn-3.0.5/src/data.rs rename to third_party/crates/syn-3.0.6/src/data.rs diff --git a/third_party/crates/syn-3.0.5/src/derive.rs b/third_party/crates/syn-3.0.6/src/derive.rs similarity index 100% rename from third_party/crates/syn-3.0.5/src/derive.rs rename to third_party/crates/syn-3.0.6/src/derive.rs diff --git a/third_party/crates/syn-3.0.5/src/discouraged.rs b/third_party/crates/syn-3.0.6/src/discouraged.rs similarity index 100% rename from third_party/crates/syn-3.0.5/src/discouraged.rs rename to third_party/crates/syn-3.0.6/src/discouraged.rs diff --git a/third_party/crates/syn-3.0.5/src/drops.rs b/third_party/crates/syn-3.0.6/src/drops.rs similarity index 100% rename from third_party/crates/syn-3.0.5/src/drops.rs rename to third_party/crates/syn-3.0.6/src/drops.rs diff --git a/third_party/crates/syn-3.0.5/src/error.rs b/third_party/crates/syn-3.0.6/src/error.rs similarity index 100% rename from third_party/crates/syn-3.0.5/src/error.rs rename to third_party/crates/syn-3.0.6/src/error.rs diff --git a/third_party/crates/syn-3.0.5/src/export.rs b/third_party/crates/syn-3.0.6/src/export.rs similarity index 100% rename from third_party/crates/syn-3.0.5/src/export.rs rename to third_party/crates/syn-3.0.6/src/export.rs diff --git a/third_party/crates/syn-3.0.5/src/expr.rs b/third_party/crates/syn-3.0.6/src/expr.rs similarity index 99% rename from third_party/crates/syn-3.0.5/src/expr.rs rename to third_party/crates/syn-3.0.6/src/expr.rs index c9437d5..5e42883 100644 --- a/third_party/crates/syn-3.0.5/src/expr.rs +++ b/third_party/crates/syn-3.0.6/src/expr.rs @@ -1293,13 +1293,12 @@ pub(crate) mod parsing { #[cfg(feature = "full")] use crate::generics::{self, BoundLifetimes}; use crate::ident::Ident; - #[cfg(feature = "full")] use crate::lifetime::Lifetime; use crate::lit::{Lit, LitFloat, LitInt}; use crate::mac::{self, Macro}; use crate::op::BinOp; use crate::parse::discouraged::Speculative as _; - use crate::parse::{Parse, ParseStream}; + use crate::parse::{End, Parse, ParseStream}; #[cfg(feature = "full")] use crate::pat::{Pat, PatType}; use crate::path::{self, AngleBracketedGenericArguments, Path, QSelf}; @@ -1342,7 +1341,10 @@ pub(crate) mod parsing { #[cfg(feature = "full")] pub(super) fn parse_with_earlier_boundary_rule(input: ParseStream) -> Result { let mut attrs = input.call(expr_attrs)?; - let mut expr = if input.peek(token::Group) { + let mut expr = if input.peek(token::Group) && { + let group = crate::group::parse_group(&input.fork())?; + !(group.content.peek(Lifetime) && group.content.peek2(End)) + } { let allow_struct = AllowStruct(true); let atom = expr_group(input, allow_struct)?; if continue_parsing_early(&atom) { @@ -1894,7 +1896,10 @@ pub(crate) mod parsing { // interactions, as they are fully contained. #[cfg(feature = "full")] fn atom_expr(input: ParseStream, allow_struct: AllowStruct) -> Result { - if input.peek(token::Group) { + if input.peek(token::Group) && { + let group = crate::group::parse_group(&input.fork())?; + !(group.content.peek(Lifetime) && group.content.peek2(End)) + } { expr_group(input, allow_struct) } else if input.peek(Lit) { input.parse().map(Expr::Lit) @@ -1994,7 +1999,10 @@ pub(crate) mod parsing { #[cfg(not(feature = "full"))] fn atom_expr(input: ParseStream) -> Result { - if input.peek(token::Group) { + if input.peek(token::Group) && { + let group = crate::group::parse_group(&input.fork())?; + !(group.content.peek(Lifetime) && group.content.peek2(End)) + } { expr_group(input) } else if input.peek(Lit) { input.parse().map(Expr::Lit) diff --git a/third_party/crates/syn-3.0.5/src/ext.rs b/third_party/crates/syn-3.0.6/src/ext.rs similarity index 100% rename from third_party/crates/syn-3.0.5/src/ext.rs rename to third_party/crates/syn-3.0.6/src/ext.rs diff --git a/third_party/crates/syn-3.0.5/src/file.rs b/third_party/crates/syn-3.0.6/src/file.rs similarity index 100% rename from third_party/crates/syn-3.0.5/src/file.rs rename to third_party/crates/syn-3.0.6/src/file.rs diff --git a/third_party/crates/syn-3.0.5/src/fixup.rs b/third_party/crates/syn-3.0.6/src/fixup.rs similarity index 100% rename from third_party/crates/syn-3.0.5/src/fixup.rs rename to third_party/crates/syn-3.0.6/src/fixup.rs diff --git a/third_party/crates/syn-3.0.5/src/gen/clone.rs b/third_party/crates/syn-3.0.6/src/gen/clone.rs similarity index 100% rename from third_party/crates/syn-3.0.5/src/gen/clone.rs rename to third_party/crates/syn-3.0.6/src/gen/clone.rs diff --git a/third_party/crates/syn-3.0.5/src/gen/debug.rs b/third_party/crates/syn-3.0.6/src/gen/debug.rs similarity index 100% rename from third_party/crates/syn-3.0.5/src/gen/debug.rs rename to third_party/crates/syn-3.0.6/src/gen/debug.rs diff --git a/third_party/crates/syn-3.0.5/src/gen/eq.rs b/third_party/crates/syn-3.0.6/src/gen/eq.rs similarity index 100% rename from third_party/crates/syn-3.0.5/src/gen/eq.rs rename to third_party/crates/syn-3.0.6/src/gen/eq.rs diff --git a/third_party/crates/syn-3.0.5/src/gen/fold.rs b/third_party/crates/syn-3.0.6/src/gen/fold.rs similarity index 100% rename from third_party/crates/syn-3.0.5/src/gen/fold.rs rename to third_party/crates/syn-3.0.6/src/gen/fold.rs diff --git a/third_party/crates/syn-3.0.5/src/gen/hash.rs b/third_party/crates/syn-3.0.6/src/gen/hash.rs similarity index 100% rename from third_party/crates/syn-3.0.5/src/gen/hash.rs rename to third_party/crates/syn-3.0.6/src/gen/hash.rs diff --git a/third_party/crates/syn-3.0.5/src/gen/token.css b/third_party/crates/syn-3.0.6/src/gen/token.css similarity index 100% rename from third_party/crates/syn-3.0.5/src/gen/token.css rename to third_party/crates/syn-3.0.6/src/gen/token.css diff --git a/third_party/crates/syn-3.0.5/src/gen/visit.rs b/third_party/crates/syn-3.0.6/src/gen/visit.rs similarity index 100% rename from third_party/crates/syn-3.0.5/src/gen/visit.rs rename to third_party/crates/syn-3.0.6/src/gen/visit.rs diff --git a/third_party/crates/syn-3.0.5/src/gen/visit_mut.rs b/third_party/crates/syn-3.0.6/src/gen/visit_mut.rs similarity index 100% rename from third_party/crates/syn-3.0.5/src/gen/visit_mut.rs rename to third_party/crates/syn-3.0.6/src/gen/visit_mut.rs diff --git a/third_party/crates/syn-3.0.5/src/generics.rs b/third_party/crates/syn-3.0.6/src/generics.rs similarity index 100% rename from third_party/crates/syn-3.0.5/src/generics.rs rename to third_party/crates/syn-3.0.6/src/generics.rs diff --git a/third_party/crates/syn-3.0.5/src/group.rs b/third_party/crates/syn-3.0.6/src/group.rs similarity index 100% rename from third_party/crates/syn-3.0.5/src/group.rs rename to third_party/crates/syn-3.0.6/src/group.rs diff --git a/third_party/crates/syn-3.0.5/src/ident.rs b/third_party/crates/syn-3.0.6/src/ident.rs similarity index 100% rename from third_party/crates/syn-3.0.5/src/ident.rs rename to third_party/crates/syn-3.0.6/src/ident.rs diff --git a/third_party/crates/syn-3.0.5/src/item.rs b/third_party/crates/syn-3.0.6/src/item.rs similarity index 100% rename from third_party/crates/syn-3.0.5/src/item.rs rename to third_party/crates/syn-3.0.6/src/item.rs diff --git a/third_party/crates/syn-3.0.5/src/lib.rs b/third_party/crates/syn-3.0.6/src/lib.rs similarity index 99% rename from third_party/crates/syn-3.0.5/src/lib.rs rename to third_party/crates/syn-3.0.6/src/lib.rs index e09d386..ffe527a 100644 --- a/third_party/crates/syn-3.0.5/src/lib.rs +++ b/third_party/crates/syn-3.0.6/src/lib.rs @@ -364,7 +364,7 @@ //! compile and work for downstream users in the interim. #![no_std] -#![doc(html_root_url = "https://docs.rs/syn/3.0.5")] +#![doc(html_root_url = "https://docs.rs/syn/3.0.6")] #![cfg_attr(docsrs, feature(doc_cfg), doc(auto_cfg = false))] #![deny(unsafe_op_in_unsafe_fn)] #![allow(non_camel_case_types)] diff --git a/third_party/crates/syn-3.0.5/src/lifetime.rs b/third_party/crates/syn-3.0.6/src/lifetime.rs similarity index 100% rename from third_party/crates/syn-3.0.5/src/lifetime.rs rename to third_party/crates/syn-3.0.6/src/lifetime.rs diff --git a/third_party/crates/syn-3.0.5/src/lit.rs b/third_party/crates/syn-3.0.6/src/lit.rs similarity index 100% rename from third_party/crates/syn-3.0.5/src/lit.rs rename to third_party/crates/syn-3.0.6/src/lit.rs diff --git a/third_party/crates/syn-3.0.5/src/lookahead.rs b/third_party/crates/syn-3.0.6/src/lookahead.rs similarity index 100% rename from third_party/crates/syn-3.0.5/src/lookahead.rs rename to third_party/crates/syn-3.0.6/src/lookahead.rs diff --git a/third_party/crates/syn-3.0.5/src/mac.rs b/third_party/crates/syn-3.0.6/src/mac.rs similarity index 100% rename from third_party/crates/syn-3.0.5/src/mac.rs rename to third_party/crates/syn-3.0.6/src/mac.rs diff --git a/third_party/crates/syn-3.0.5/src/macros.rs b/third_party/crates/syn-3.0.6/src/macros.rs similarity index 100% rename from third_party/crates/syn-3.0.5/src/macros.rs rename to third_party/crates/syn-3.0.6/src/macros.rs diff --git a/third_party/crates/syn-3.0.5/src/meta.rs b/third_party/crates/syn-3.0.6/src/meta.rs similarity index 100% rename from third_party/crates/syn-3.0.5/src/meta.rs rename to third_party/crates/syn-3.0.6/src/meta.rs diff --git a/third_party/crates/syn-3.0.5/src/op.rs b/third_party/crates/syn-3.0.6/src/op.rs similarity index 100% rename from third_party/crates/syn-3.0.5/src/op.rs rename to third_party/crates/syn-3.0.6/src/op.rs diff --git a/third_party/crates/syn-3.0.5/src/parse.rs b/third_party/crates/syn-3.0.6/src/parse.rs similarity index 100% rename from third_party/crates/syn-3.0.5/src/parse.rs rename to third_party/crates/syn-3.0.6/src/parse.rs diff --git a/third_party/crates/syn-3.0.5/src/parse_macro_input.rs b/third_party/crates/syn-3.0.6/src/parse_macro_input.rs similarity index 100% rename from third_party/crates/syn-3.0.5/src/parse_macro_input.rs rename to third_party/crates/syn-3.0.6/src/parse_macro_input.rs diff --git a/third_party/crates/syn-3.0.5/src/parse_quote.rs b/third_party/crates/syn-3.0.6/src/parse_quote.rs similarity index 100% rename from third_party/crates/syn-3.0.5/src/parse_quote.rs rename to third_party/crates/syn-3.0.6/src/parse_quote.rs diff --git a/third_party/crates/syn-3.0.5/src/pat.rs b/third_party/crates/syn-3.0.6/src/pat.rs similarity index 100% rename from third_party/crates/syn-3.0.5/src/pat.rs rename to third_party/crates/syn-3.0.6/src/pat.rs diff --git a/third_party/crates/syn-3.0.5/src/path.rs b/third_party/crates/syn-3.0.6/src/path.rs similarity index 100% rename from third_party/crates/syn-3.0.5/src/path.rs rename to third_party/crates/syn-3.0.6/src/path.rs diff --git a/third_party/crates/syn-3.0.5/src/precedence.rs b/third_party/crates/syn-3.0.6/src/precedence.rs similarity index 100% rename from third_party/crates/syn-3.0.5/src/precedence.rs rename to third_party/crates/syn-3.0.6/src/precedence.rs diff --git a/third_party/crates/syn-3.0.5/src/print.rs b/third_party/crates/syn-3.0.6/src/print.rs similarity index 100% rename from third_party/crates/syn-3.0.5/src/print.rs rename to third_party/crates/syn-3.0.6/src/print.rs diff --git a/third_party/crates/syn-3.0.5/src/punctuated.rs b/third_party/crates/syn-3.0.6/src/punctuated.rs similarity index 100% rename from third_party/crates/syn-3.0.5/src/punctuated.rs rename to third_party/crates/syn-3.0.6/src/punctuated.rs diff --git a/third_party/crates/syn-3.0.5/src/restriction.rs b/third_party/crates/syn-3.0.6/src/restriction.rs similarity index 100% rename from third_party/crates/syn-3.0.5/src/restriction.rs rename to third_party/crates/syn-3.0.6/src/restriction.rs diff --git a/third_party/crates/syn-3.0.5/src/scan_expr.rs b/third_party/crates/syn-3.0.6/src/scan_expr.rs similarity index 100% rename from third_party/crates/syn-3.0.5/src/scan_expr.rs rename to third_party/crates/syn-3.0.6/src/scan_expr.rs diff --git a/third_party/crates/syn-3.0.5/src/sealed.rs b/third_party/crates/syn-3.0.6/src/sealed.rs similarity index 100% rename from third_party/crates/syn-3.0.5/src/sealed.rs rename to third_party/crates/syn-3.0.6/src/sealed.rs diff --git a/third_party/crates/syn-3.0.5/src/span.rs b/third_party/crates/syn-3.0.6/src/span.rs similarity index 100% rename from third_party/crates/syn-3.0.5/src/span.rs rename to third_party/crates/syn-3.0.6/src/span.rs diff --git a/third_party/crates/syn-3.0.5/src/spanned.rs b/third_party/crates/syn-3.0.6/src/spanned.rs similarity index 100% rename from third_party/crates/syn-3.0.5/src/spanned.rs rename to third_party/crates/syn-3.0.6/src/spanned.rs diff --git a/third_party/crates/syn-3.0.5/src/stmt.rs b/third_party/crates/syn-3.0.6/src/stmt.rs similarity index 100% rename from third_party/crates/syn-3.0.5/src/stmt.rs rename to third_party/crates/syn-3.0.6/src/stmt.rs diff --git a/third_party/crates/syn-3.0.5/src/thread.rs b/third_party/crates/syn-3.0.6/src/thread.rs similarity index 100% rename from third_party/crates/syn-3.0.5/src/thread.rs rename to third_party/crates/syn-3.0.6/src/thread.rs diff --git a/third_party/crates/syn-3.0.5/src/token.rs b/third_party/crates/syn-3.0.6/src/token.rs similarity index 100% rename from third_party/crates/syn-3.0.5/src/token.rs rename to third_party/crates/syn-3.0.6/src/token.rs diff --git a/third_party/crates/syn-3.0.5/src/tt.rs b/third_party/crates/syn-3.0.6/src/tt.rs similarity index 100% rename from third_party/crates/syn-3.0.5/src/tt.rs rename to third_party/crates/syn-3.0.6/src/tt.rs diff --git a/third_party/crates/syn-3.0.5/src/ty.rs b/third_party/crates/syn-3.0.6/src/ty.rs similarity index 100% rename from third_party/crates/syn-3.0.5/src/ty.rs rename to third_party/crates/syn-3.0.6/src/ty.rs diff --git a/third_party/crates/syn-3.0.5/src/verbatim.rs b/third_party/crates/syn-3.0.6/src/verbatim.rs similarity index 100% rename from third_party/crates/syn-3.0.5/src/verbatim.rs rename to third_party/crates/syn-3.0.6/src/verbatim.rs diff --git a/third_party/crates/syn-3.0.5/src/whitespace.rs b/third_party/crates/syn-3.0.6/src/whitespace.rs similarity index 100% rename from third_party/crates/syn-3.0.5/src/whitespace.rs rename to third_party/crates/syn-3.0.6/src/whitespace.rs diff --git a/third_party/crates/syn-3.0.5/tests/common/eq.rs b/third_party/crates/syn-3.0.6/tests/common/eq.rs similarity index 99% rename from third_party/crates/syn-3.0.5/tests/common/eq.rs rename to third_party/crates/syn-3.0.6/tests/common/eq.rs index a55708e..746b29e 100644 --- a/third_party/crates/syn-3.0.5/tests/common/eq.rs +++ b/third_party/crates/syn-3.0.6/tests/common/eq.rs @@ -36,7 +36,6 @@ use rustc_ast::ast::ClosureBinder; use rustc_ast::ast::Const; use rustc_ast::ast::ConstBlockItem; use rustc_ast::ast::ConstItem; -use rustc_ast::ast::ConstItemKind; use rustc_ast::ast::CoroutineKind; use rustc_ast::ast::CoroutineMarker; use rustc_ast::ast::Crate; @@ -156,6 +155,7 @@ use rustc_ast::ast::StructRest; use rustc_ast::ast::SyntheticAttr; use rustc_ast::ast::Term; use rustc_ast::ast::TestBinderBody; +use rustc_ast::ast::TestBinderBoundTypeConstraint; use rustc_ast::ast::TestBinderConstraint; use rustc_ast::ast::TestBinderConstraints; use rustc_ast::ast::TestBinderExists; @@ -506,7 +506,7 @@ spanless_eq_struct!(BindingMode; 0 1); spanless_eq_struct!(Block; stmts id rules span); spanless_eq_struct!(Closure; binder capture_clause constness coroutine_marker movability fn_decl body !fn_decl_span !fn_arg_span); spanless_eq_struct!(ConstBlockItem; id span block); -spanless_eq_struct!(ConstItem; defaultness ident generics ty body kind define_opaque); +spanless_eq_struct!(ConstItem; defaultness ident generics ty body define_opaque); spanless_eq_struct!(CoroutineMarker; kind span closure_id return_impl_trait_id); spanless_eq_struct!(Crate; attrs items spans id is_placeholder); spanless_eq_struct!(Delegation; id qself path ident rename body source); @@ -566,7 +566,8 @@ spanless_eq_struct!(StaticItem; ident ty safety mutability expr define_opaque ei spanless_eq_struct!(Stmt; id kind span); spanless_eq_struct!(StrLit; symbol suffix symbol_unescaped style span); spanless_eq_struct!(StructExpr; qself path fields rest); -spanless_eq_struct!(TestBinderBody; foralls exists constraints); +spanless_eq_struct!(TestBinderBody; foralls exists constraints predicates); +spanless_eq_struct!(TestBinderBoundTypeConstraint; span node_id params lhs rhs); spanless_eq_struct!(TestBinderConstraints; generics body); spanless_eq_struct!(TestBinderExists; span node_id params body); spanless_eq_struct!(TestBinderForall; span node_id generics body assert_on_exit); @@ -605,7 +606,6 @@ spanless_eq_enum!(ByRef; Yes(0 1) No); spanless_eq_enum!(CaptureBy; Value(move_kw) Ref Use(use_kw)); spanless_eq_enum!(ClosureBinder; NotPresent For(span generic_params)); spanless_eq_enum!(Const; Yes(0) No); -spanless_eq_enum!(ConstItemKind; Body TypeConst); spanless_eq_enum!(CoroutineKind; Async Gen AsyncGen); spanless_eq_enum!(Defaultness; Implicit Default(0) Final(0)); spanless_eq_enum!(DelegationSource; Single List(0) Glob); @@ -657,7 +657,7 @@ spanless_eq_enum!(StrStyle; Cooked Raw(0)); spanless_eq_enum!(StructRest; Base(0) Rest(0) None NoneWithError(0)); spanless_eq_enum!(SyntheticAttr; CfgTrace(0) CfgAttrTrace(0)); spanless_eq_enum!(Term; Ty(0) Const(0)); -spanless_eq_enum!(TestBinderConstraint; And(items) Or(items) Lifetime(lhs rhs) Type(lhs rhs)); +spanless_eq_enum!(TestBinderConstraint; And(items) Or(items) Lifetime(lhs rhs) PlaceholderOutlives(lhs rhs) AliasOutlives(bound_type_constraint)); spanless_eq_enum!(TokenTree; Token(0 1) Delimited(0 1 2 3)); spanless_eq_enum!(TraitObjectSyntax; Dyn None); spanless_eq_enum!(TyPatKind; Range(0 1 2) NotNull Or(0) Err(0)); diff --git a/third_party/crates/syn-3.0.5/tests/common/mod.rs b/third_party/crates/syn-3.0.6/tests/common/mod.rs similarity index 100% rename from third_party/crates/syn-3.0.5/tests/common/mod.rs rename to third_party/crates/syn-3.0.6/tests/common/mod.rs diff --git a/third_party/crates/syn-3.0.5/tests/common/parse.rs b/third_party/crates/syn-3.0.6/tests/common/parse.rs similarity index 100% rename from third_party/crates/syn-3.0.5/tests/common/parse.rs rename to third_party/crates/syn-3.0.6/tests/common/parse.rs diff --git a/third_party/crates/syn-3.0.5/tests/common/visit.rs b/third_party/crates/syn-3.0.6/tests/common/visit.rs similarity index 100% rename from third_party/crates/syn-3.0.5/tests/common/visit.rs rename to third_party/crates/syn-3.0.6/tests/common/visit.rs diff --git a/third_party/crates/syn-3.0.5/tests/debug/gen.rs b/third_party/crates/syn-3.0.6/tests/debug/gen.rs similarity index 100% rename from third_party/crates/syn-3.0.5/tests/debug/gen.rs rename to third_party/crates/syn-3.0.6/tests/debug/gen.rs diff --git a/third_party/crates/syn-3.0.5/tests/debug/mod.rs b/third_party/crates/syn-3.0.6/tests/debug/mod.rs similarity index 100% rename from third_party/crates/syn-3.0.5/tests/debug/mod.rs rename to third_party/crates/syn-3.0.6/tests/debug/mod.rs diff --git a/third_party/crates/syn-3.0.5/tests/macros/mod.rs b/third_party/crates/syn-3.0.6/tests/macros/mod.rs similarity index 100% rename from third_party/crates/syn-3.0.5/tests/macros/mod.rs rename to third_party/crates/syn-3.0.6/tests/macros/mod.rs diff --git a/third_party/crates/syn-3.0.5/tests/regression.rs b/third_party/crates/syn-3.0.6/tests/regression.rs similarity index 100% rename from third_party/crates/syn-3.0.5/tests/regression.rs rename to third_party/crates/syn-3.0.6/tests/regression.rs diff --git a/third_party/crates/syn-3.0.5/tests/regression/issue1108.rs b/third_party/crates/syn-3.0.6/tests/regression/issue1108.rs similarity index 100% rename from third_party/crates/syn-3.0.5/tests/regression/issue1108.rs rename to third_party/crates/syn-3.0.6/tests/regression/issue1108.rs diff --git a/third_party/crates/syn-3.0.5/tests/regression/issue1235.rs b/third_party/crates/syn-3.0.6/tests/regression/issue1235.rs similarity index 100% rename from third_party/crates/syn-3.0.5/tests/regression/issue1235.rs rename to third_party/crates/syn-3.0.6/tests/regression/issue1235.rs diff --git a/third_party/crates/syn-3.0.5/tests/repo/mod.rs b/third_party/crates/syn-3.0.6/tests/repo/mod.rs similarity index 100% rename from third_party/crates/syn-3.0.5/tests/repo/mod.rs rename to third_party/crates/syn-3.0.6/tests/repo/mod.rs diff --git a/third_party/crates/syn-3.0.5/tests/repo/progress.rs b/third_party/crates/syn-3.0.6/tests/repo/progress.rs similarity index 100% rename from third_party/crates/syn-3.0.5/tests/repo/progress.rs rename to third_party/crates/syn-3.0.6/tests/repo/progress.rs diff --git a/third_party/crates/syn-3.0.5/tests/snapshot/mod.rs b/third_party/crates/syn-3.0.6/tests/snapshot/mod.rs similarity index 100% rename from third_party/crates/syn-3.0.5/tests/snapshot/mod.rs rename to third_party/crates/syn-3.0.6/tests/snapshot/mod.rs diff --git a/third_party/crates/syn-3.0.5/tests/test_attribute.rs b/third_party/crates/syn-3.0.6/tests/test_attribute.rs similarity index 100% rename from third_party/crates/syn-3.0.5/tests/test_attribute.rs rename to third_party/crates/syn-3.0.6/tests/test_attribute.rs diff --git a/third_party/crates/syn-3.0.5/tests/test_derive_input.rs b/third_party/crates/syn-3.0.6/tests/test_derive_input.rs similarity index 100% rename from third_party/crates/syn-3.0.5/tests/test_derive_input.rs rename to third_party/crates/syn-3.0.6/tests/test_derive_input.rs diff --git a/third_party/crates/syn-3.0.5/tests/test_expr.rs b/third_party/crates/syn-3.0.6/tests/test_expr.rs similarity index 100% rename from third_party/crates/syn-3.0.5/tests/test_expr.rs rename to third_party/crates/syn-3.0.6/tests/test_expr.rs diff --git a/third_party/crates/syn-3.0.5/tests/test_generics.rs b/third_party/crates/syn-3.0.6/tests/test_generics.rs similarity index 100% rename from third_party/crates/syn-3.0.5/tests/test_generics.rs rename to third_party/crates/syn-3.0.6/tests/test_generics.rs diff --git a/third_party/crates/syn-3.0.5/tests/test_grouping.rs b/third_party/crates/syn-3.0.6/tests/test_grouping.rs similarity index 100% rename from third_party/crates/syn-3.0.5/tests/test_grouping.rs rename to third_party/crates/syn-3.0.6/tests/test_grouping.rs diff --git a/third_party/crates/syn-3.0.5/tests/test_ident.rs b/third_party/crates/syn-3.0.6/tests/test_ident.rs similarity index 100% rename from third_party/crates/syn-3.0.5/tests/test_ident.rs rename to third_party/crates/syn-3.0.6/tests/test_ident.rs diff --git a/third_party/crates/syn-3.0.5/tests/test_item.rs b/third_party/crates/syn-3.0.6/tests/test_item.rs similarity index 100% rename from third_party/crates/syn-3.0.5/tests/test_item.rs rename to third_party/crates/syn-3.0.6/tests/test_item.rs diff --git a/third_party/crates/syn-3.0.5/tests/test_lit.rs b/third_party/crates/syn-3.0.6/tests/test_lit.rs similarity index 100% rename from third_party/crates/syn-3.0.5/tests/test_lit.rs rename to third_party/crates/syn-3.0.6/tests/test_lit.rs diff --git a/third_party/crates/syn-3.0.5/tests/test_meta.rs b/third_party/crates/syn-3.0.6/tests/test_meta.rs similarity index 100% rename from third_party/crates/syn-3.0.5/tests/test_meta.rs rename to third_party/crates/syn-3.0.6/tests/test_meta.rs diff --git a/third_party/crates/syn-3.0.5/tests/test_parse_buffer.rs b/third_party/crates/syn-3.0.6/tests/test_parse_buffer.rs similarity index 100% rename from third_party/crates/syn-3.0.5/tests/test_parse_buffer.rs rename to third_party/crates/syn-3.0.6/tests/test_parse_buffer.rs diff --git a/third_party/crates/syn-3.0.5/tests/test_parse_quote.rs b/third_party/crates/syn-3.0.6/tests/test_parse_quote.rs similarity index 100% rename from third_party/crates/syn-3.0.5/tests/test_parse_quote.rs rename to third_party/crates/syn-3.0.6/tests/test_parse_quote.rs diff --git a/third_party/crates/syn-3.0.5/tests/test_parse_stream.rs b/third_party/crates/syn-3.0.6/tests/test_parse_stream.rs similarity index 100% rename from third_party/crates/syn-3.0.5/tests/test_parse_stream.rs rename to third_party/crates/syn-3.0.6/tests/test_parse_stream.rs diff --git a/third_party/crates/syn-3.0.5/tests/test_pat.rs b/third_party/crates/syn-3.0.6/tests/test_pat.rs similarity index 100% rename from third_party/crates/syn-3.0.5/tests/test_pat.rs rename to third_party/crates/syn-3.0.6/tests/test_pat.rs diff --git a/third_party/crates/syn-3.0.5/tests/test_path.rs b/third_party/crates/syn-3.0.6/tests/test_path.rs similarity index 100% rename from third_party/crates/syn-3.0.5/tests/test_path.rs rename to third_party/crates/syn-3.0.6/tests/test_path.rs diff --git a/third_party/crates/syn-3.0.5/tests/test_precedence.rs b/third_party/crates/syn-3.0.6/tests/test_precedence.rs similarity index 100% rename from third_party/crates/syn-3.0.5/tests/test_precedence.rs rename to third_party/crates/syn-3.0.6/tests/test_precedence.rs diff --git a/third_party/crates/syn-3.0.5/tests/test_punctuated.rs b/third_party/crates/syn-3.0.6/tests/test_punctuated.rs similarity index 100% rename from third_party/crates/syn-3.0.5/tests/test_punctuated.rs rename to third_party/crates/syn-3.0.6/tests/test_punctuated.rs diff --git a/third_party/crates/syn-3.0.5/tests/test_receiver.rs b/third_party/crates/syn-3.0.6/tests/test_receiver.rs similarity index 100% rename from third_party/crates/syn-3.0.5/tests/test_receiver.rs rename to third_party/crates/syn-3.0.6/tests/test_receiver.rs diff --git a/third_party/crates/syn-3.0.5/tests/test_round_trip.rs b/third_party/crates/syn-3.0.6/tests/test_round_trip.rs similarity index 100% rename from third_party/crates/syn-3.0.5/tests/test_round_trip.rs rename to third_party/crates/syn-3.0.6/tests/test_round_trip.rs diff --git a/third_party/crates/syn-3.0.5/tests/test_shebang.rs b/third_party/crates/syn-3.0.6/tests/test_shebang.rs similarity index 100% rename from third_party/crates/syn-3.0.5/tests/test_shebang.rs rename to third_party/crates/syn-3.0.6/tests/test_shebang.rs diff --git a/third_party/crates/syn-3.0.5/tests/test_size.rs b/third_party/crates/syn-3.0.6/tests/test_size.rs similarity index 100% rename from third_party/crates/syn-3.0.5/tests/test_size.rs rename to third_party/crates/syn-3.0.6/tests/test_size.rs diff --git a/third_party/crates/syn-3.0.5/tests/test_stmt.rs b/third_party/crates/syn-3.0.6/tests/test_stmt.rs similarity index 89% rename from third_party/crates/syn-3.0.5/tests/test_stmt.rs rename to third_party/crates/syn-3.0.6/tests/test_stmt.rs index 9c2aa2a..c66ff43 100644 --- a/third_party/crates/syn-3.0.5/tests/test_stmt.rs +++ b/third_party/crates/syn-3.0.6/tests/test_stmt.rs @@ -11,7 +11,7 @@ mod snapshot; mod debug; -use proc_macro2::{Delimiter, Group, Ident, Span, TokenStream, TokenTree}; +use proc_macro2::{Delimiter, Group, Ident, Punct, Spacing, Span, TokenStream, TokenTree}; use quote::{quote, ToTokens as _}; use syn::parse::Parser as _; use syn::{Block, Stmt}; @@ -343,3 +343,36 @@ fn test_early_parse_loop() { ] "#); } + +// Regression test for https://github.com/dtolnay/syn/issues/2081 +#[test] +fn test_interpolated_lifetime_at_statement_start() { + // «∅ 'a ∅» : loop {} + let tokens = TokenStream::from_iter([ + TokenTree::Group(Group::new( + Delimiter::None, + TokenStream::from_iter([ + TokenTree::Punct(Punct::new('\'', Spacing::Joint)), + TokenTree::Ident(Ident::new("a", Span::call_site())), + ]), + )), + TokenTree::Punct(Punct::new(':', Spacing::Joint)), + TokenTree::Ident(Ident::new("loop", Span::call_site())), + TokenTree::Group(Group::new(Delimiter::Brace, TokenStream::new())), + ]); + snapshot!(tokens as Stmt, @r#" + Stmt::Expr( + Expr::Loop { + label: Some(Label { + name: Lifetime { + ident: "a", + }, + }), + body: Block { + stmts: [], + }, + }, + None, + ) + "#); +} diff --git a/third_party/crates/syn-3.0.5/tests/test_token_trees.rs b/third_party/crates/syn-3.0.6/tests/test_token_trees.rs similarity index 100% rename from third_party/crates/syn-3.0.5/tests/test_token_trees.rs rename to third_party/crates/syn-3.0.6/tests/test_token_trees.rs diff --git a/third_party/crates/syn-3.0.5/tests/test_ty.rs b/third_party/crates/syn-3.0.6/tests/test_ty.rs similarity index 100% rename from third_party/crates/syn-3.0.5/tests/test_ty.rs rename to third_party/crates/syn-3.0.6/tests/test_ty.rs diff --git a/third_party/crates/syn-3.0.5/tests/test_unparenthesize.rs b/third_party/crates/syn-3.0.6/tests/test_unparenthesize.rs similarity index 100% rename from third_party/crates/syn-3.0.5/tests/test_unparenthesize.rs rename to third_party/crates/syn-3.0.6/tests/test_unparenthesize.rs diff --git a/third_party/crates/syn-3.0.5/tests/test_visibility.rs b/third_party/crates/syn-3.0.6/tests/test_visibility.rs similarity index 100% rename from third_party/crates/syn-3.0.5/tests/test_visibility.rs rename to third_party/crates/syn-3.0.6/tests/test_visibility.rs diff --git a/third_party/crates/syn-3.0.5/tests/zzz_stable.rs b/third_party/crates/syn-3.0.6/tests/zzz_stable.rs similarity index 100% rename from third_party/crates/syn-3.0.5/tests/zzz_stable.rs rename to third_party/crates/syn-3.0.6/tests/zzz_stable.rs diff --git a/third_party/crates/unicode-ident-1.0.24/.cargo-checksum.json b/third_party/crates/unicode-ident-1.0.24/.cargo-checksum.json deleted file mode 100644 index 8fd6234..0000000 --- a/third_party/crates/unicode-ident-1.0.24/.cargo-checksum.json +++ /dev/null @@ -1 +0,0 @@ -{"$comment":"This file only protects against accidental modifications. It is not a security mechanism and does not protect against malicious changes.","files":{".cargo_vcs_info.json":"9900659dcf16d47a600102bbfd47cf554a0d4db40790983e570f9ecac9822c68",".github/FUNDING.yml":"b017158736b3c9751a2d21edfce7fe61c8954e2fced8da8dd3013c2f3e295bd9",".github/workflows/ci.yml":"7cd19596c9178c43f442aeeaf808592bb0c3a118ce291aa2037bd22116045e61","Cargo.lock":"dac9e67ad7272c61e7b197143b696705ce4800ea0e010b3b1f0c8924a0c9701d","Cargo.toml":"0bb9c0e006a21355cb85c7df72e78dd8ba6fffbb7dc3f1e7a4c19af53cd354da","Cargo.toml.orig":"8d0abaf7ce10cb78f26edcd613dfe5a47faa4381e6e251c7d1c123608d2e037a","LICENSE-APACHE":"62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a","LICENSE-MIT":"23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3","LICENSE-UNICODE":"f7db81051789b729fea528a63ec4c938fdcb93d9d61d97dc8cc2e9df6d47f2a1","README.md":"2fd3a0c6c9abd2c042fb319221f9ef2c95728a6e3725b0f067e4d315c5dbfe5a","benches/xid.rs":"7eb058c1140a253f7177af8868a95aabb1b92c52dc7eee5abbfeadb507d7845d","src/lib.rs":"078912e7c64ba3ea1081b88c2610deba31eeb057c28f9d78e929db4856b7774f","src/tables.rs":"369c476ba91a39fce55563b692a3f598daf7f026cfe0a3796cfed1102fb3b190","tests/compare.rs":"f2311271aa1db7380e5bf153ef83ee99777e14579e4f28c2b1a3e21877ffe715","tests/fst/mod.rs":"69a3aaf59acd8bca962ecc6234be56be8c0934ab79b253162f10eb881523901f","tests/fst/xid_continue.fst":"b58be4f0c498253e7a5ac664046096f15f249da66131347d4b822097623549a2","tests/fst/xid_start.fst":"aec7eecdacfce308d2e6210f47d28ed3aad5c8b048efbfbc11fc22e60fbf435b","tests/roaring/mod.rs":"f5c6d55463a7f53e92a493cf046d717149250fbafc0e0fe94bdb531377bf8b11","tests/static_size.rs":"80c3ca7eeec2660f3f4f2efa8fecd6209b32ec8b547192cbfa37c0e67a5f14a0","tests/tables/mod.rs":"e6949172d10fc4b2431ce7546269bfd4f9146454c8c3e31faf5e5d80c16a8ab6","tests/tables/tables.rs":"302d87306100b6280f8db93e167dc70c47f724045cf1312b7354683656c3f36b","tests/trie/mod.rs":"d4acbb716bcbaf80660039797f45e138ed8bbd66749fa3b19b1a971574679cc9","tests/trie/trie.rs":"f7b9edc1e8a98e3be42b653bba27bb4eb5fc48a559d6d8d1c6a4db4b5425b0d5"},"package":"e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"} \ No newline at end of file diff --git a/third_party/crates/unicode-ident-1.0.24/.cargo_vcs_info.json b/third_party/crates/unicode-ident-1.0.24/.cargo_vcs_info.json deleted file mode 100644 index bafcae3..0000000 --- a/third_party/crates/unicode-ident-1.0.24/.cargo_vcs_info.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "git": { - "sha1": "5b54a632702b5744a1c40ea01c127c0ac0498172" - }, - "path_in_vcs": "" -} \ No newline at end of file diff --git a/third_party/crates/unicode-ident-1.0.24/tests/tables/tables.rs b/third_party/crates/unicode-ident-1.0.24/tests/tables/tables.rs deleted file mode 100644 index 9db6fe9..0000000 --- a/third_party/crates/unicode-ident-1.0.24/tests/tables/tables.rs +++ /dev/null @@ -1,361 +0,0 @@ -// DO NOT EDIT THIS FILE. IT WAS AUTOMATICALLY GENERATED BY: -// -// ucd-generate property-bool UCD --include XID_Start,XID_Continue -// -// Unicode version: 17.0.0. -// -// ucd-generate 0.3.1 is available on crates.io. - -pub const BY_NAME: &'static [(&'static str, &'static [(u32, u32)])] = &[ - ("XID_Continue", XID_CONTINUE), ("XID_Start", XID_START), -]; - -pub const XID_CONTINUE: &'static [(u32, u32)] = &[ - (48, 57), (65, 90), (95, 95), (97, 122), (170, 170), (181, 181), (183, 183), - (186, 186), (192, 214), (216, 246), (248, 705), (710, 721), (736, 740), - (748, 748), (750, 750), (768, 884), (886, 887), (891, 893), (895, 895), - (902, 906), (908, 908), (910, 929), (931, 1013), (1015, 1153), (1155, 1159), - (1162, 1327), (1329, 1366), (1369, 1369), (1376, 1416), (1425, 1469), - (1471, 1471), (1473, 1474), (1476, 1477), (1479, 1479), (1488, 1514), - (1519, 1522), (1552, 1562), (1568, 1641), (1646, 1747), (1749, 1756), - (1759, 1768), (1770, 1788), (1791, 1791), (1808, 1866), (1869, 1969), - (1984, 2037), (2042, 2042), (2045, 2045), (2048, 2093), (2112, 2139), - (2144, 2154), (2160, 2183), (2185, 2191), (2199, 2273), (2275, 2403), - (2406, 2415), (2417, 2435), (2437, 2444), (2447, 2448), (2451, 2472), - (2474, 2480), (2482, 2482), (2486, 2489), (2492, 2500), (2503, 2504), - (2507, 2510), (2519, 2519), (2524, 2525), (2527, 2531), (2534, 2545), - (2556, 2556), (2558, 2558), (2561, 2563), (2565, 2570), (2575, 2576), - (2579, 2600), (2602, 2608), (2610, 2611), (2613, 2614), (2616, 2617), - (2620, 2620), (2622, 2626), (2631, 2632), (2635, 2637), (2641, 2641), - (2649, 2652), (2654, 2654), (2662, 2677), (2689, 2691), (2693, 2701), - (2703, 2705), (2707, 2728), (2730, 2736), (2738, 2739), (2741, 2745), - (2748, 2757), (2759, 2761), (2763, 2765), (2768, 2768), (2784, 2787), - (2790, 2799), (2809, 2815), (2817, 2819), (2821, 2828), (2831, 2832), - (2835, 2856), (2858, 2864), (2866, 2867), (2869, 2873), (2876, 2884), - (2887, 2888), (2891, 2893), (2901, 2903), (2908, 2909), (2911, 2915), - (2918, 2927), (2929, 2929), (2946, 2947), (2949, 2954), (2958, 2960), - (2962, 2965), (2969, 2970), (2972, 2972), (2974, 2975), (2979, 2980), - (2984, 2986), (2990, 3001), (3006, 3010), (3014, 3016), (3018, 3021), - (3024, 3024), (3031, 3031), (3046, 3055), (3072, 3084), (3086, 3088), - (3090, 3112), (3114, 3129), (3132, 3140), (3142, 3144), (3146, 3149), - (3157, 3158), (3160, 3162), (3164, 3165), (3168, 3171), (3174, 3183), - (3200, 3203), (3205, 3212), (3214, 3216), (3218, 3240), (3242, 3251), - (3253, 3257), (3260, 3268), (3270, 3272), (3274, 3277), (3285, 3286), - (3292, 3294), (3296, 3299), (3302, 3311), (3313, 3315), (3328, 3340), - (3342, 3344), (3346, 3396), (3398, 3400), (3402, 3406), (3412, 3415), - (3423, 3427), (3430, 3439), (3450, 3455), (3457, 3459), (3461, 3478), - (3482, 3505), (3507, 3515), (3517, 3517), (3520, 3526), (3530, 3530), - (3535, 3540), (3542, 3542), (3544, 3551), (3558, 3567), (3570, 3571), - (3585, 3642), (3648, 3662), (3664, 3673), (3713, 3714), (3716, 3716), - (3718, 3722), (3724, 3747), (3749, 3749), (3751, 3773), (3776, 3780), - (3782, 3782), (3784, 3790), (3792, 3801), (3804, 3807), (3840, 3840), - (3864, 3865), (3872, 3881), (3893, 3893), (3895, 3895), (3897, 3897), - (3902, 3911), (3913, 3948), (3953, 3972), (3974, 3991), (3993, 4028), - (4038, 4038), (4096, 4169), (4176, 4253), (4256, 4293), (4295, 4295), - (4301, 4301), (4304, 4346), (4348, 4680), (4682, 4685), (4688, 4694), - (4696, 4696), (4698, 4701), (4704, 4744), (4746, 4749), (4752, 4784), - (4786, 4789), (4792, 4798), (4800, 4800), (4802, 4805), (4808, 4822), - (4824, 4880), (4882, 4885), (4888, 4954), (4957, 4959), (4969, 4977), - (4992, 5007), (5024, 5109), (5112, 5117), (5121, 5740), (5743, 5759), - (5761, 5786), (5792, 5866), (5870, 5880), (5888, 5909), (5919, 5940), - (5952, 5971), (5984, 5996), (5998, 6000), (6002, 6003), (6016, 6099), - (6103, 6103), (6108, 6109), (6112, 6121), (6155, 6157), (6159, 6169), - (6176, 6264), (6272, 6314), (6320, 6389), (6400, 6430), (6432, 6443), - (6448, 6459), (6470, 6509), (6512, 6516), (6528, 6571), (6576, 6601), - (6608, 6618), (6656, 6683), (6688, 6750), (6752, 6780), (6783, 6793), - (6800, 6809), (6823, 6823), (6832, 6845), (6847, 6877), (6880, 6891), - (6912, 6988), (6992, 7001), (7019, 7027), (7040, 7155), (7168, 7223), - (7232, 7241), (7245, 7293), (7296, 7306), (7312, 7354), (7357, 7359), - (7376, 7378), (7380, 7418), (7424, 7957), (7960, 7965), (7968, 8005), - (8008, 8013), (8016, 8023), (8025, 8025), (8027, 8027), (8029, 8029), - (8031, 8061), (8064, 8116), (8118, 8124), (8126, 8126), (8130, 8132), - (8134, 8140), (8144, 8147), (8150, 8155), (8160, 8172), (8178, 8180), - (8182, 8188), (8204, 8205), (8255, 8256), (8276, 8276), (8305, 8305), - (8319, 8319), (8336, 8348), (8400, 8412), (8417, 8417), (8421, 8432), - (8450, 8450), (8455, 8455), (8458, 8467), (8469, 8469), (8472, 8477), - (8484, 8484), (8486, 8486), (8488, 8488), (8490, 8505), (8508, 8511), - (8517, 8521), (8526, 8526), (8544, 8584), (11264, 11492), (11499, 11507), - (11520, 11557), (11559, 11559), (11565, 11565), (11568, 11623), - (11631, 11631), (11647, 11670), (11680, 11686), (11688, 11694), - (11696, 11702), (11704, 11710), (11712, 11718), (11720, 11726), - (11728, 11734), (11736, 11742), (11744, 11775), (12293, 12295), - (12321, 12335), (12337, 12341), (12344, 12348), (12353, 12438), - (12441, 12442), (12445, 12447), (12449, 12543), (12549, 12591), - (12593, 12686), (12704, 12735), (12784, 12799), (13312, 19903), - (19968, 42124), (42192, 42237), (42240, 42508), (42512, 42539), - (42560, 42607), (42612, 42621), (42623, 42737), (42775, 42783), - (42786, 42888), (42891, 42972), (42993, 43047), (43052, 43052), - (43072, 43123), (43136, 43205), (43216, 43225), (43232, 43255), - (43259, 43259), (43261, 43309), (43312, 43347), (43360, 43388), - (43392, 43456), (43471, 43481), (43488, 43518), (43520, 43574), - (43584, 43597), (43600, 43609), (43616, 43638), (43642, 43714), - (43739, 43741), (43744, 43759), (43762, 43766), (43777, 43782), - (43785, 43790), (43793, 43798), (43808, 43814), (43816, 43822), - (43824, 43866), (43868, 43881), (43888, 44010), (44012, 44013), - (44016, 44025), (44032, 55203), (55216, 55238), (55243, 55291), - (63744, 64109), (64112, 64217), (64256, 64262), (64275, 64279), - (64285, 64296), (64298, 64310), (64312, 64316), (64318, 64318), - (64320, 64321), (64323, 64324), (64326, 64433), (64467, 64605), - (64612, 64829), (64848, 64911), (64914, 64967), (65008, 65017), - (65024, 65039), (65056, 65071), (65075, 65076), (65101, 65103), - (65137, 65137), (65139, 65139), (65143, 65143), (65145, 65145), - (65147, 65147), (65149, 65149), (65151, 65276), (65296, 65305), - (65313, 65338), (65343, 65343), (65345, 65370), (65381, 65470), - (65474, 65479), (65482, 65487), (65490, 65495), (65498, 65500), - (65536, 65547), (65549, 65574), (65576, 65594), (65596, 65597), - (65599, 65613), (65616, 65629), (65664, 65786), (65856, 65908), - (66045, 66045), (66176, 66204), (66208, 66256), (66272, 66272), - (66304, 66335), (66349, 66378), (66384, 66426), (66432, 66461), - (66464, 66499), (66504, 66511), (66513, 66517), (66560, 66717), - (66720, 66729), (66736, 66771), (66776, 66811), (66816, 66855), - (66864, 66915), (66928, 66938), (66940, 66954), (66956, 66962), - (66964, 66965), (66967, 66977), (66979, 66993), (66995, 67001), - (67003, 67004), (67008, 67059), (67072, 67382), (67392, 67413), - (67424, 67431), (67456, 67461), (67463, 67504), (67506, 67514), - (67584, 67589), (67592, 67592), (67594, 67637), (67639, 67640), - (67644, 67644), (67647, 67669), (67680, 67702), (67712, 67742), - (67808, 67826), (67828, 67829), (67840, 67861), (67872, 67897), - (67904, 67929), (67968, 68023), (68030, 68031), (68096, 68099), - (68101, 68102), (68108, 68115), (68117, 68119), (68121, 68149), - (68152, 68154), (68159, 68159), (68192, 68220), (68224, 68252), - (68288, 68295), (68297, 68326), (68352, 68405), (68416, 68437), - (68448, 68466), (68480, 68497), (68608, 68680), (68736, 68786), - (68800, 68850), (68864, 68903), (68912, 68921), (68928, 68965), - (68969, 68973), (68975, 68997), (69248, 69289), (69291, 69292), - (69296, 69297), (69314, 69319), (69370, 69404), (69415, 69415), - (69424, 69456), (69488, 69509), (69552, 69572), (69600, 69622), - (69632, 69702), (69734, 69749), (69759, 69818), (69826, 69826), - (69840, 69864), (69872, 69881), (69888, 69940), (69942, 69951), - (69956, 69959), (69968, 70003), (70006, 70006), (70016, 70084), - (70089, 70092), (70094, 70106), (70108, 70108), (70144, 70161), - (70163, 70199), (70206, 70209), (70272, 70278), (70280, 70280), - (70282, 70285), (70287, 70301), (70303, 70312), (70320, 70378), - (70384, 70393), (70400, 70403), (70405, 70412), (70415, 70416), - (70419, 70440), (70442, 70448), (70450, 70451), (70453, 70457), - (70459, 70468), (70471, 70472), (70475, 70477), (70480, 70480), - (70487, 70487), (70493, 70499), (70502, 70508), (70512, 70516), - (70528, 70537), (70539, 70539), (70542, 70542), (70544, 70581), - (70583, 70592), (70594, 70594), (70597, 70597), (70599, 70602), - (70604, 70611), (70625, 70626), (70656, 70730), (70736, 70745), - (70750, 70753), (70784, 70853), (70855, 70855), (70864, 70873), - (71040, 71093), (71096, 71104), (71128, 71133), (71168, 71232), - (71236, 71236), (71248, 71257), (71296, 71352), (71360, 71369), - (71376, 71395), (71424, 71450), (71453, 71467), (71472, 71481), - (71488, 71494), (71680, 71738), (71840, 71913), (71935, 71942), - (71945, 71945), (71948, 71955), (71957, 71958), (71960, 71989), - (71991, 71992), (71995, 72003), (72016, 72025), (72096, 72103), - (72106, 72151), (72154, 72161), (72163, 72164), (72192, 72254), - (72263, 72263), (72272, 72345), (72349, 72349), (72368, 72440), - (72544, 72551), (72640, 72672), (72688, 72697), (72704, 72712), - (72714, 72758), (72760, 72768), (72784, 72793), (72818, 72847), - (72850, 72871), (72873, 72886), (72960, 72966), (72968, 72969), - (72971, 73014), (73018, 73018), (73020, 73021), (73023, 73031), - (73040, 73049), (73056, 73061), (73063, 73064), (73066, 73102), - (73104, 73105), (73107, 73112), (73120, 73129), (73136, 73179), - (73184, 73193), (73440, 73462), (73472, 73488), (73490, 73530), - (73534, 73538), (73552, 73562), (73648, 73648), (73728, 74649), - (74752, 74862), (74880, 75075), (77712, 77808), (77824, 78895), - (78912, 78933), (78944, 82938), (82944, 83526), (90368, 90425), - (92160, 92728), (92736, 92766), (92768, 92777), (92784, 92862), - (92864, 92873), (92880, 92909), (92912, 92916), (92928, 92982), - (92992, 92995), (93008, 93017), (93027, 93047), (93053, 93071), - (93504, 93548), (93552, 93561), (93760, 93823), (93856, 93880), - (93883, 93907), (93952, 94026), (94031, 94087), (94095, 94111), - (94176, 94177), (94179, 94180), (94192, 94198), (94208, 101589), - (101631, 101662), (101760, 101874), (110576, 110579), (110581, 110587), - (110589, 110590), (110592, 110882), (110898, 110898), (110928, 110930), - (110933, 110933), (110948, 110951), (110960, 111355), (113664, 113770), - (113776, 113788), (113792, 113800), (113808, 113817), (113821, 113822), - (118000, 118009), (118528, 118573), (118576, 118598), (119141, 119145), - (119149, 119154), (119163, 119170), (119173, 119179), (119210, 119213), - (119362, 119364), (119808, 119892), (119894, 119964), (119966, 119967), - (119970, 119970), (119973, 119974), (119977, 119980), (119982, 119993), - (119995, 119995), (119997, 120003), (120005, 120069), (120071, 120074), - (120077, 120084), (120086, 120092), (120094, 120121), (120123, 120126), - (120128, 120132), (120134, 120134), (120138, 120144), (120146, 120485), - (120488, 120512), (120514, 120538), (120540, 120570), (120572, 120596), - (120598, 120628), (120630, 120654), (120656, 120686), (120688, 120712), - (120714, 120744), (120746, 120770), (120772, 120779), (120782, 120831), - (121344, 121398), (121403, 121452), (121461, 121461), (121476, 121476), - (121499, 121503), (121505, 121519), (122624, 122654), (122661, 122666), - (122880, 122886), (122888, 122904), (122907, 122913), (122915, 122916), - (122918, 122922), (122928, 122989), (123023, 123023), (123136, 123180), - (123184, 123197), (123200, 123209), (123214, 123214), (123536, 123566), - (123584, 123641), (124112, 124153), (124368, 124410), (124608, 124638), - (124640, 124661), (124670, 124671), (124896, 124902), (124904, 124907), - (124909, 124910), (124912, 124926), (124928, 125124), (125136, 125142), - (125184, 125259), (125264, 125273), (126464, 126467), (126469, 126495), - (126497, 126498), (126500, 126500), (126503, 126503), (126505, 126514), - (126516, 126519), (126521, 126521), (126523, 126523), (126530, 126530), - (126535, 126535), (126537, 126537), (126539, 126539), (126541, 126543), - (126545, 126546), (126548, 126548), (126551, 126551), (126553, 126553), - (126555, 126555), (126557, 126557), (126559, 126559), (126561, 126562), - (126564, 126564), (126567, 126570), (126572, 126578), (126580, 126583), - (126585, 126588), (126590, 126590), (126592, 126601), (126603, 126619), - (126625, 126627), (126629, 126633), (126635, 126651), (130032, 130041), - (131072, 173791), (173824, 178205), (178208, 183981), (183984, 191456), - (191472, 192093), (194560, 195101), (196608, 201546), (201552, 210041), - (917760, 917999), -]; - -pub const XID_START: &'static [(u32, u32)] = &[ - (65, 90), (97, 122), (170, 170), (181, 181), (186, 186), (192, 214), - (216, 246), (248, 705), (710, 721), (736, 740), (748, 748), (750, 750), - (880, 884), (886, 887), (891, 893), (895, 895), (902, 902), (904, 906), - (908, 908), (910, 929), (931, 1013), (1015, 1153), (1162, 1327), - (1329, 1366), (1369, 1369), (1376, 1416), (1488, 1514), (1519, 1522), - (1568, 1610), (1646, 1647), (1649, 1747), (1749, 1749), (1765, 1766), - (1774, 1775), (1786, 1788), (1791, 1791), (1808, 1808), (1810, 1839), - (1869, 1957), (1969, 1969), (1994, 2026), (2036, 2037), (2042, 2042), - (2048, 2069), (2074, 2074), (2084, 2084), (2088, 2088), (2112, 2136), - (2144, 2154), (2160, 2183), (2185, 2191), (2208, 2249), (2308, 2361), - (2365, 2365), (2384, 2384), (2392, 2401), (2417, 2432), (2437, 2444), - (2447, 2448), (2451, 2472), (2474, 2480), (2482, 2482), (2486, 2489), - (2493, 2493), (2510, 2510), (2524, 2525), (2527, 2529), (2544, 2545), - (2556, 2556), (2565, 2570), (2575, 2576), (2579, 2600), (2602, 2608), - (2610, 2611), (2613, 2614), (2616, 2617), (2649, 2652), (2654, 2654), - (2674, 2676), (2693, 2701), (2703, 2705), (2707, 2728), (2730, 2736), - (2738, 2739), (2741, 2745), (2749, 2749), (2768, 2768), (2784, 2785), - (2809, 2809), (2821, 2828), (2831, 2832), (2835, 2856), (2858, 2864), - (2866, 2867), (2869, 2873), (2877, 2877), (2908, 2909), (2911, 2913), - (2929, 2929), (2947, 2947), (2949, 2954), (2958, 2960), (2962, 2965), - (2969, 2970), (2972, 2972), (2974, 2975), (2979, 2980), (2984, 2986), - (2990, 3001), (3024, 3024), (3077, 3084), (3086, 3088), (3090, 3112), - (3114, 3129), (3133, 3133), (3160, 3162), (3164, 3165), (3168, 3169), - (3200, 3200), (3205, 3212), (3214, 3216), (3218, 3240), (3242, 3251), - (3253, 3257), (3261, 3261), (3292, 3294), (3296, 3297), (3313, 3314), - (3332, 3340), (3342, 3344), (3346, 3386), (3389, 3389), (3406, 3406), - (3412, 3414), (3423, 3425), (3450, 3455), (3461, 3478), (3482, 3505), - (3507, 3515), (3517, 3517), (3520, 3526), (3585, 3632), (3634, 3634), - (3648, 3654), (3713, 3714), (3716, 3716), (3718, 3722), (3724, 3747), - (3749, 3749), (3751, 3760), (3762, 3762), (3773, 3773), (3776, 3780), - (3782, 3782), (3804, 3807), (3840, 3840), (3904, 3911), (3913, 3948), - (3976, 3980), (4096, 4138), (4159, 4159), (4176, 4181), (4186, 4189), - (4193, 4193), (4197, 4198), (4206, 4208), (4213, 4225), (4238, 4238), - (4256, 4293), (4295, 4295), (4301, 4301), (4304, 4346), (4348, 4680), - (4682, 4685), (4688, 4694), (4696, 4696), (4698, 4701), (4704, 4744), - (4746, 4749), (4752, 4784), (4786, 4789), (4792, 4798), (4800, 4800), - (4802, 4805), (4808, 4822), (4824, 4880), (4882, 4885), (4888, 4954), - (4992, 5007), (5024, 5109), (5112, 5117), (5121, 5740), (5743, 5759), - (5761, 5786), (5792, 5866), (5870, 5880), (5888, 5905), (5919, 5937), - (5952, 5969), (5984, 5996), (5998, 6000), (6016, 6067), (6103, 6103), - (6108, 6108), (6176, 6264), (6272, 6312), (6314, 6314), (6320, 6389), - (6400, 6430), (6480, 6509), (6512, 6516), (6528, 6571), (6576, 6601), - (6656, 6678), (6688, 6740), (6823, 6823), (6917, 6963), (6981, 6988), - (7043, 7072), (7086, 7087), (7098, 7141), (7168, 7203), (7245, 7247), - (7258, 7293), (7296, 7306), (7312, 7354), (7357, 7359), (7401, 7404), - (7406, 7411), (7413, 7414), (7418, 7418), (7424, 7615), (7680, 7957), - (7960, 7965), (7968, 8005), (8008, 8013), (8016, 8023), (8025, 8025), - (8027, 8027), (8029, 8029), (8031, 8061), (8064, 8116), (8118, 8124), - (8126, 8126), (8130, 8132), (8134, 8140), (8144, 8147), (8150, 8155), - (8160, 8172), (8178, 8180), (8182, 8188), (8305, 8305), (8319, 8319), - (8336, 8348), (8450, 8450), (8455, 8455), (8458, 8467), (8469, 8469), - (8472, 8477), (8484, 8484), (8486, 8486), (8488, 8488), (8490, 8505), - (8508, 8511), (8517, 8521), (8526, 8526), (8544, 8584), (11264, 11492), - (11499, 11502), (11506, 11507), (11520, 11557), (11559, 11559), - (11565, 11565), (11568, 11623), (11631, 11631), (11648, 11670), - (11680, 11686), (11688, 11694), (11696, 11702), (11704, 11710), - (11712, 11718), (11720, 11726), (11728, 11734), (11736, 11742), - (12293, 12295), (12321, 12329), (12337, 12341), (12344, 12348), - (12353, 12438), (12445, 12447), (12449, 12538), (12540, 12543), - (12549, 12591), (12593, 12686), (12704, 12735), (12784, 12799), - (13312, 19903), (19968, 42124), (42192, 42237), (42240, 42508), - (42512, 42527), (42538, 42539), (42560, 42606), (42623, 42653), - (42656, 42735), (42775, 42783), (42786, 42888), (42891, 42972), - (42993, 43009), (43011, 43013), (43015, 43018), (43020, 43042), - (43072, 43123), (43138, 43187), (43250, 43255), (43259, 43259), - (43261, 43262), (43274, 43301), (43312, 43334), (43360, 43388), - (43396, 43442), (43471, 43471), (43488, 43492), (43494, 43503), - (43514, 43518), (43520, 43560), (43584, 43586), (43588, 43595), - (43616, 43638), (43642, 43642), (43646, 43695), (43697, 43697), - (43701, 43702), (43705, 43709), (43712, 43712), (43714, 43714), - (43739, 43741), (43744, 43754), (43762, 43764), (43777, 43782), - (43785, 43790), (43793, 43798), (43808, 43814), (43816, 43822), - (43824, 43866), (43868, 43881), (43888, 44002), (44032, 55203), - (55216, 55238), (55243, 55291), (63744, 64109), (64112, 64217), - (64256, 64262), (64275, 64279), (64285, 64285), (64287, 64296), - (64298, 64310), (64312, 64316), (64318, 64318), (64320, 64321), - (64323, 64324), (64326, 64433), (64467, 64605), (64612, 64829), - (64848, 64911), (64914, 64967), (65008, 65017), (65137, 65137), - (65139, 65139), (65143, 65143), (65145, 65145), (65147, 65147), - (65149, 65149), (65151, 65276), (65313, 65338), (65345, 65370), - (65382, 65437), (65440, 65470), (65474, 65479), (65482, 65487), - (65490, 65495), (65498, 65500), (65536, 65547), (65549, 65574), - (65576, 65594), (65596, 65597), (65599, 65613), (65616, 65629), - (65664, 65786), (65856, 65908), (66176, 66204), (66208, 66256), - (66304, 66335), (66349, 66378), (66384, 66421), (66432, 66461), - (66464, 66499), (66504, 66511), (66513, 66517), (66560, 66717), - (66736, 66771), (66776, 66811), (66816, 66855), (66864, 66915), - (66928, 66938), (66940, 66954), (66956, 66962), (66964, 66965), - (66967, 66977), (66979, 66993), (66995, 67001), (67003, 67004), - (67008, 67059), (67072, 67382), (67392, 67413), (67424, 67431), - (67456, 67461), (67463, 67504), (67506, 67514), (67584, 67589), - (67592, 67592), (67594, 67637), (67639, 67640), (67644, 67644), - (67647, 67669), (67680, 67702), (67712, 67742), (67808, 67826), - (67828, 67829), (67840, 67861), (67872, 67897), (67904, 67929), - (67968, 68023), (68030, 68031), (68096, 68096), (68112, 68115), - (68117, 68119), (68121, 68149), (68192, 68220), (68224, 68252), - (68288, 68295), (68297, 68324), (68352, 68405), (68416, 68437), - (68448, 68466), (68480, 68497), (68608, 68680), (68736, 68786), - (68800, 68850), (68864, 68899), (68938, 68965), (68975, 68997), - (69248, 69289), (69296, 69297), (69314, 69319), (69376, 69404), - (69415, 69415), (69424, 69445), (69488, 69505), (69552, 69572), - (69600, 69622), (69635, 69687), (69745, 69746), (69749, 69749), - (69763, 69807), (69840, 69864), (69891, 69926), (69956, 69956), - (69959, 69959), (69968, 70002), (70006, 70006), (70019, 70066), - (70081, 70084), (70106, 70106), (70108, 70108), (70144, 70161), - (70163, 70187), (70207, 70208), (70272, 70278), (70280, 70280), - (70282, 70285), (70287, 70301), (70303, 70312), (70320, 70366), - (70405, 70412), (70415, 70416), (70419, 70440), (70442, 70448), - (70450, 70451), (70453, 70457), (70461, 70461), (70480, 70480), - (70493, 70497), (70528, 70537), (70539, 70539), (70542, 70542), - (70544, 70581), (70583, 70583), (70609, 70609), (70611, 70611), - (70656, 70708), (70727, 70730), (70751, 70753), (70784, 70831), - (70852, 70853), (70855, 70855), (71040, 71086), (71128, 71131), - (71168, 71215), (71236, 71236), (71296, 71338), (71352, 71352), - (71424, 71450), (71488, 71494), (71680, 71723), (71840, 71903), - (71935, 71942), (71945, 71945), (71948, 71955), (71957, 71958), - (71960, 71983), (71999, 71999), (72001, 72001), (72096, 72103), - (72106, 72144), (72161, 72161), (72163, 72163), (72192, 72192), - (72203, 72242), (72250, 72250), (72272, 72272), (72284, 72329), - (72349, 72349), (72368, 72440), (72640, 72672), (72704, 72712), - (72714, 72750), (72768, 72768), (72818, 72847), (72960, 72966), - (72968, 72969), (72971, 73008), (73030, 73030), (73056, 73061), - (73063, 73064), (73066, 73097), (73112, 73112), (73136, 73179), - (73440, 73458), (73474, 73474), (73476, 73488), (73490, 73523), - (73648, 73648), (73728, 74649), (74752, 74862), (74880, 75075), - (77712, 77808), (77824, 78895), (78913, 78918), (78944, 82938), - (82944, 83526), (90368, 90397), (92160, 92728), (92736, 92766), - (92784, 92862), (92880, 92909), (92928, 92975), (92992, 92995), - (93027, 93047), (93053, 93071), (93504, 93548), (93760, 93823), - (93856, 93880), (93883, 93907), (93952, 94026), (94032, 94032), - (94099, 94111), (94176, 94177), (94179, 94179), (94194, 94198), - (94208, 101589), (101631, 101662), (101760, 101874), (110576, 110579), - (110581, 110587), (110589, 110590), (110592, 110882), (110898, 110898), - (110928, 110930), (110933, 110933), (110948, 110951), (110960, 111355), - (113664, 113770), (113776, 113788), (113792, 113800), (113808, 113817), - (119808, 119892), (119894, 119964), (119966, 119967), (119970, 119970), - (119973, 119974), (119977, 119980), (119982, 119993), (119995, 119995), - (119997, 120003), (120005, 120069), (120071, 120074), (120077, 120084), - (120086, 120092), (120094, 120121), (120123, 120126), (120128, 120132), - (120134, 120134), (120138, 120144), (120146, 120485), (120488, 120512), - (120514, 120538), (120540, 120570), (120572, 120596), (120598, 120628), - (120630, 120654), (120656, 120686), (120688, 120712), (120714, 120744), - (120746, 120770), (120772, 120779), (122624, 122654), (122661, 122666), - (122928, 122989), (123136, 123180), (123191, 123197), (123214, 123214), - (123536, 123565), (123584, 123627), (124112, 124139), (124368, 124397), - (124400, 124400), (124608, 124638), (124640, 124642), (124644, 124645), - (124647, 124653), (124656, 124660), (124670, 124671), (124896, 124902), - (124904, 124907), (124909, 124910), (124912, 124926), (124928, 125124), - (125184, 125251), (125259, 125259), (126464, 126467), (126469, 126495), - (126497, 126498), (126500, 126500), (126503, 126503), (126505, 126514), - (126516, 126519), (126521, 126521), (126523, 126523), (126530, 126530), - (126535, 126535), (126537, 126537), (126539, 126539), (126541, 126543), - (126545, 126546), (126548, 126548), (126551, 126551), (126553, 126553), - (126555, 126555), (126557, 126557), (126559, 126559), (126561, 126562), - (126564, 126564), (126567, 126570), (126572, 126578), (126580, 126583), - (126585, 126588), (126590, 126590), (126592, 126601), (126603, 126619), - (126625, 126627), (126629, 126633), (126635, 126651), (131072, 173791), - (173824, 178205), (178208, 183981), (183984, 191456), (191472, 192093), - (194560, 195101), (196608, 201546), (201552, 210041), -]; diff --git a/third_party/crates/unicode-ident-1.0.26/.cargo-checksum.json b/third_party/crates/unicode-ident-1.0.26/.cargo-checksum.json new file mode 100644 index 0000000..a431c6d --- /dev/null +++ b/third_party/crates/unicode-ident-1.0.26/.cargo-checksum.json @@ -0,0 +1 @@ +{"$comment":"This file only protects against accidental modifications. It is not a security mechanism and does not protect against malicious changes.","files":{".cargo_vcs_info.json":"2b09084c5128958a302bc5155ffa253fa383bc87000d4f2b29451c7b610c47c9",".github/FUNDING.yml":"b017158736b3c9751a2d21edfce7fe61c8954e2fced8da8dd3013c2f3e295bd9",".github/workflows/ci.yml":"e7b498453efe559a78a82b62a81edd3cc4f5b823de66a6c0a095c2f4f898db54","Cargo.lock":"7ca131f3b6594b6aed19e12f540bc20acbc313c9d4ce108b5645defbd0e31fd8","Cargo.toml":"f70dabc0fe831788a202762e62cc76c19941680960e2e2710d1ee9e79877d9af","Cargo.toml.orig":"8b2d59d9abaed95e94699d362b691fc647a241c8e6c126557a0d3d196de6514d","LICENSE-APACHE":"62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a","LICENSE-MIT":"23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3","LICENSE-UNICODE":"f7db81051789b729fea528a63ec4c938fdcb93d9d61d97dc8cc2e9df6d47f2a1","README.md":"085da9383f04b605f1c8726dbbc2dfb134e2c0ab662f3c40c6b78be858ab651e","benches/xid.rs":"7eb058c1140a253f7177af8868a95aabb1b92c52dc7eee5abbfeadb507d7845d","src/lib.rs":"145270c2d14e3e8771f2d1a2f05445b52957481924f30fc7d5db9102fc8af69b","src/tables.rs":"10598cfee5bcf3a8ac95bde5d9eb747bcb7d6a18ce65b5d393a14376517d4085","tests/compare.rs":"f2311271aa1db7380e5bf153ef83ee99777e14579e4f28c2b1a3e21877ffe715","tests/fst/mod.rs":"69a3aaf59acd8bca962ecc6234be56be8c0934ab79b253162f10eb881523901f","tests/fst/xid_continue.fst":"a4c8f6daf453fba6d12daeb5e10192839edf930250234309049b4325406b5979","tests/fst/xid_start.fst":"5e177e91fdf0cc2f117bd66277803aa21bc4d563357f6d81a9d4250456f9fa2f","tests/roaring/mod.rs":"f5c6d55463a7f53e92a493cf046d717149250fbafc0e0fe94bdb531377bf8b11","tests/static_size.rs":"04df3afe3a5e8f4a07420cc60453fbdca80383c5aa3c424019c308b5c74b20ed","tests/tables/mod.rs":"e6949172d10fc4b2431ce7546269bfd4f9146454c8c3e31faf5e5d80c16a8ab6","tests/tables/tables.rs":"c73d017f6fb27c7bb014ea6b0ccc2d54cac0fca492c2aed93bf7800c1534eef3","tests/trie/mod.rs":"d4acbb716bcbaf80660039797f45e138ed8bbd66749fa3b19b1a971574679cc9","tests/trie/trie.rs":"e4443f7d9595edba29e2df17a8830478b23fe359e7366fb5bd75c57598e3cc53"},"package":"d245f478577f809a851594d02313b640fb437e0bb33866753cff937863096954"} \ No newline at end of file diff --git a/third_party/crates/unicode-ident-1.0.26/.cargo_vcs_info.json b/third_party/crates/unicode-ident-1.0.26/.cargo_vcs_info.json new file mode 100644 index 0000000..60e9194 --- /dev/null +++ b/third_party/crates/unicode-ident-1.0.26/.cargo_vcs_info.json @@ -0,0 +1,6 @@ +{ + "git": { + "sha1": "48771a67a73f7e14ce802aaeee16770ba661035b" + }, + "path_in_vcs": "" +} \ No newline at end of file diff --git a/third_party/crates/unicode-ident-1.0.26/.github/FUNDING.yml b/third_party/crates/unicode-ident-1.0.26/.github/FUNDING.yml new file mode 100644 index 0000000..7507077 --- /dev/null +++ b/third_party/crates/unicode-ident-1.0.26/.github/FUNDING.yml @@ -0,0 +1 @@ +github: dtolnay diff --git a/third_party/crates/unicode-ident-1.0.24/.github/workflows/ci.yml b/third_party/crates/unicode-ident-1.0.26/.github/workflows/ci.yml similarity index 91% rename from third_party/crates/unicode-ident-1.0.24/.github/workflows/ci.yml rename to third_party/crates/unicode-ident-1.0.26/.github/workflows/ci.yml index d8b3c84..6eb3300 100644 --- a/third_party/crates/unicode-ident-1.0.24/.github/workflows/ci.yml +++ b/third_party/crates/unicode-ident-1.0.26/.github/workflows/ci.yml @@ -22,7 +22,7 @@ jobs: if: github.event_name != 'pull_request' timeout-minutes: 45 steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@v7 - uses: dtolnay/rust-toolchain@stable - id: ucd-generate run: echo "version=$(grep 'ucd-generate [0-9]\+\.[0-9]\+\.[0-9]\+' tests/tables/tables.rs --only-matching)" >> $GITHUB_OUTPUT @@ -44,10 +44,10 @@ jobs: strategy: fail-fast: false matrix: - rust: [nightly, beta, stable, 1.86.0] + rust: [nightly, beta, stable, 1.90.0] timeout-minutes: 45 steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@v7 - uses: dtolnay/rust-toolchain@master with: toolchain: ${{matrix.rust}} @@ -56,7 +56,7 @@ jobs: if: matrix.rust == 'nightly' - run: cargo test - run: cargo check --benches - - uses: actions/upload-artifact@v6 + - uses: actions/upload-artifact@v7 if: matrix.rust == 'nightly' && always() with: name: Cargo.lock @@ -70,7 +70,7 @@ jobs: runs-on: ubuntu-latest timeout-minutes: 45 steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@v7 - uses: dtolnay/rust-toolchain@1.71.0 - run: cargo check --manifest-path tests/crate/Cargo.toml @@ -83,7 +83,7 @@ jobs: env: RUSTDOCFLAGS: -Dwarnings steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@v7 - uses: dtolnay/rust-toolchain@nightly - uses: dtolnay/install@cargo-docs-rs - run: cargo docs-rs @@ -94,7 +94,7 @@ jobs: if: github.event_name != 'pull_request' timeout-minutes: 45 steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@v7 - uses: dtolnay/rust-toolchain@clippy - run: cargo clippy --tests --benches --workspace -- -Dclippy::all -Dclippy::pedantic @@ -104,7 +104,7 @@ jobs: if: github.event_name != 'pull_request' timeout-minutes: 45 steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@v7 - uses: dtolnay/rust-toolchain@stable - uses: dtolnay/install@cargo-outdated - run: cargo outdated --workspace --exit-code 1 diff --git a/third_party/crates/unicode-ident-1.0.24/BUILD.bazel b/third_party/crates/unicode-ident-1.0.26/BUILD.bazel similarity index 99% rename from third_party/crates/unicode-ident-1.0.24/BUILD.bazel rename to third_party/crates/unicode-ident-1.0.26/BUILD.bazel index 043ca28..cdaf7be 100644 --- a/third_party/crates/unicode-ident-1.0.24/BUILD.bazel +++ b/third_party/crates/unicode-ident-1.0.26/BUILD.bazel @@ -106,5 +106,5 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "1.0.24", + version = "1.0.26", ) diff --git a/third_party/crates/unicode-ident-1.0.24/Cargo.lock b/third_party/crates/unicode-ident-1.0.26/Cargo.lock similarity index 53% rename from third_party/crates/unicode-ident-1.0.24/Cargo.lock rename to third_party/crates/unicode-ident-1.0.26/Cargo.lock index 8b38ee7..866e621 100644 --- a/third_party/crates/unicode-ident-1.0.24/Cargo.lock +++ b/third_party/crates/unicode-ident-1.0.26/Cargo.lock @@ -4,9 +4,9 @@ version = 3 [[package]] name = "aho-corasick" -version = "1.1.4" +version = "1.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301" +checksum = "c982642fa9e8606056828ee9a8505737230110bb1099153c79efe865c59d12ba" dependencies = [ "memchr", ] @@ -28,33 +28,21 @@ checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299" [[package]] name = "anstyle" -version = "1.0.13" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78" - -[[package]] -name = "anyhow" -version = "1.0.101" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f0e0fee31ef5ed1ba1316088939cea399010ed7731dba877ed44aeb407a75ea" +checksum = "940b3a0ca603d1eade50a4846a2afffd5ef57a9feac2c0e2ec2e14f9ead76000" [[package]] name = "autocfg" -version = "1.5.0" +version = "1.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8" - -[[package]] -name = "bitflags" -version = "2.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af" +checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53" [[package]] name = "bytemuck" -version = "1.25.0" +version = "1.25.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +checksum = "95832e849adfb21180ccb6826a99da14e5d266ae5c2e668e1602cf234f153797" [[package]] name = "byteorder" @@ -70,9 +58,9 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" [[package]] name = "cc" -version = "1.2.56" +version = "1.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aebf35691d1bfb0ac386a69bac2fde4dd276fb618cf8bf4f5318fe285e821bb2" +checksum = "a3eb0f42d6c360dc3f8a821f6bf2fdea7f72bfd36b3076eb0e6d1e9e0752fff4" dependencies = [ "find-msvc-tools", "shlex", @@ -80,15 +68,15 @@ dependencies = [ [[package]] name = "cfg-if" -version = "1.0.4" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" +checksum = "4e7648175b45a9a48536d676f68d918270699102aa8dab5496df06904c914600" [[package]] name = "chacha20" -version = "0.10.0" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f8d983286843e49675a4b7a2d174efe136dc93a18d69130dd18198a6c167601" +checksum = "65c35e4b699c7e15ccbe7ee35c005e4fc0a278d22238a2857e6ce2dadeda1b06" dependencies = [ "cfg-if", "cpufeatures", @@ -124,18 +112,18 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.58" +version = "4.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63be97961acde393029492ce0be7a1af7e323e6bae9511ebfac33751be5e6806" +checksum = "aa8876b300ab35ba921adea3dfd70157a46249b33f95c9084ae5709785478946" dependencies = [ "clap_builder", ] [[package]] name = "clap_builder" -version = "4.5.58" +version = "4.6.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f13174bda5dfd69d7e947827e5af4b0f2f94a4a3ee92912fba07a66150f21e2" +checksum = "ec0797fb7aeb1406c84efac526901f7ec3ead2124f946b494e72879d4b54704d" dependencies = [ "anstyle", "clap_lex", @@ -143,15 +131,15 @@ dependencies = [ [[package]] name = "clap_lex" -version = "1.0.0" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a822ea5bc7590f9d40f1ba12c0dc3c2760f3482c6984db1573ad11031420831" +checksum = "1c133bc6a41be0d194c306b5506d15e6feeea7b1d6604bd3f8310dfb2ca96486" [[package]] name = "cpufeatures" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b2a41393f66f16b0823bb79094d54ac5fbd34ab292ddafb9a0456ac9f87d201" +checksum = "5ca28b0ae3115b884660db4118d803791fd6756b6e88f39c0f3f7859060d7566" dependencies = [ "libc", ] @@ -197,27 +185,15 @@ checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" [[package]] name = "either" -version = "1.15.0" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48c757948c5ede0e46177b7add2e67155f70e33c07fea8284df6576da70b3719" - -[[package]] -name = "equivalent" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" +checksum = "252afb9ae5eaa683babdc6a068b3f5726eb19e05070c731f9b2a23a7c3e8ed34" [[package]] name = "find-msvc-tools" -version = "0.1.9" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" - -[[package]] -name = "foldhash" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" +checksum = "3e0f1c7c3a72c66fd80abe965175f7523475c0489a87d3ff9d6e8c87d87a9d2d" [[package]] name = "fst" @@ -227,16 +203,14 @@ checksum = "7ab85b9b05e3978cc9a9cf8fea7f01b494e1a09ed3037e16ba39edc7a29eb61a" [[package]] name = "getrandom" -version = "0.4.1" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "139ef39800118c7683f2fd3c98c1b23c09ae076556b435f8e9064ae108aaeeec" +checksum = "300e883d756b2e4ec94e02791f39b04b522276138852cfc41d9fb7e904106099" dependencies = [ "cfg-if", "libc", "r-efi", "rand_core", - "wasip2", - "wasip3", ] [[package]] @@ -250,45 +224,6 @@ dependencies = [ "zerocopy", ] -[[package]] -name = "hashbrown" -version = "0.15.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" -dependencies = [ - "foldhash", -] - -[[package]] -name = "hashbrown" -version = "0.16.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100" - -[[package]] -name = "heck" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" - -[[package]] -name = "id-arena" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954" - -[[package]] -name = "indexmap" -version = "2.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" -dependencies = [ - "equivalent", - "hashbrown 0.16.1", - "serde", - "serde_core", -] - [[package]] name = "itertools" version = "0.13.0" @@ -300,33 +235,21 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.17" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2" - -[[package]] -name = "leb128fmt" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" +checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" [[package]] name = "libc" -version = "0.2.182" +version = "0.2.189" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6800badb6cb2082ffd7b6a67e6125bb39f18782f793520caee8cb8846be06112" - -[[package]] -name = "log" -version = "0.4.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" +checksum = "3eaf3ede3fee6db1a4c2ee091bf8a8b4dccdc6d17f656fb07896ee72867612f2" [[package]] name = "memchr" -version = "2.8.0" +version = "2.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" +checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98" [[package]] name = "num-traits" @@ -353,45 +276,35 @@ dependencies = [ "winapi", ] -[[package]] -name = "prettyplease" -version = "0.2.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" -dependencies = [ - "proc-macro2", - "syn", -] - [[package]] name = "proc-macro2" -version = "1.0.106" +version = "1.0.107" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" +checksum = "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9" dependencies = [ - "unicode-ident 1.0.23", + "unicode-ident 1.0.25", ] [[package]] name = "quote" -version = "1.0.44" +version = "1.0.47" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21b2ebcf727b7760c461f091f9f0f539b77b8e87f2fd88131e7f1b433b3cece4" +checksum = "1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001" dependencies = [ "proc-macro2", ] [[package]] name = "r-efi" -version = "5.3.0" +version = "6.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" +checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" [[package]] name = "rand" -version = "0.10.0" +version = "0.10.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc266eb313df6c5c09c1c7b1fbe2510961e5bcd3add930c1e31f7ed9da0feff8" +checksum = "c7f5fa3a058cd35567ef9bfa5e75732bee0f9e4c55fa90477bef2dfcdbc4be80" dependencies = [ "chacha20", "getrandom", @@ -400,15 +313,15 @@ dependencies = [ [[package]] name = "rand_core" -version = "0.10.0" +version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c8d0fd677905edcbeedbf2edb6494d676f0e98d54d5cf9bda0b061cb8fb8aba" +checksum = "63b8176103e19a2643978565ca18b50549f6101881c443590420e4dc998a3c69" [[package]] name = "regex" -version = "1.12.3" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276" +checksum = "f020237b6c8eed93db2e2cb53c00c60a8e1bc73da7d073199a1180401450218d" dependencies = [ "aho-corasick", "memchr", @@ -418,9 +331,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.14" +version = "0.4.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f" +checksum = "ad8553b9b26413251cbf30e620595c7a41b3887f03da04579c0e6b0d6a06b4b2" dependencies = [ "aho-corasick", "memchr", @@ -429,15 +342,15 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.8.9" +version = "0.8.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a96887878f22d7bad8a3b6dc5b7440e0ada9a245242924394987b21cf2210a4c" +checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4" [[package]] name = "roaring" -version = "0.11.3" +version = "0.11.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ba9ce64a8f45d7fc86358410bb1a82e8c987504c0d4900e9141d69a9f26c885" +checksum = "18bd8a37d17a58532776dcdf6041ce64929adca78e8489d5cacbafe99229d3e1" dependencies = [ "bytemuck", "byteorder", @@ -452,17 +365,11 @@ dependencies = [ "winapi-util", ] -[[package]] -name = "semver" -version = "1.0.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2" - [[package]] name = "serde" -version = "1.0.228" +version = "1.0.229" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e" +checksum = "4148590afebada386688f18773da617792bf2ef03ffc1e4cbd2b1d45b023e0ba" dependencies = [ "serde_core", "serde_derive", @@ -470,29 +377,29 @@ dependencies = [ [[package]] name = "serde_core" -version = "1.0.228" +version = "1.0.229" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad" +checksum = "67dca2c9c51e58a4791a4b1ed58308b39c64224d349a935ab5039aa360942a48" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.228" +version = "1.0.229" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79" +checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 3.0.6", ] [[package]] name = "serde_json" -version = "1.0.149" +version = "1.0.151" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" +checksum = "c841b55ecdae098c80dcae9cf767f6f8a0c2cdb3416bbef72181df4d0fe73f14" dependencies = [ "itoa", "memchr", @@ -503,19 +410,30 @@ dependencies = [ [[package]] name = "shlex" -version = "1.3.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" +checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba" [[package]] name = "syn" -version = "2.0.116" +version = "2.0.119" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3df424c70518695237746f84cede799c9c58fcb37450d7b23716568cc8bc69cb" +checksum = "872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297" dependencies = [ "proc-macro2", "quote", - "unicode-ident 1.0.23", + "unicode-ident 1.0.25", +] + +[[package]] +name = "syn" +version = "3.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8593e8e72159ed2257d083c7a454a85cbf854f37a0966d8d483aff8c8a3ebcee" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident 1.0.25", ] [[package]] @@ -536,13 +454,13 @@ checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" [[package]] name = "unicode-ident" -version = "1.0.23" +version = "1.0.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "537dd038a89878be9b64dd4bd1b260315c1bb94f4d784956b81e27a088d9a09e" +checksum = "ab72a15cf68d77cb0987d3684aa8a45c5ef827e8cb49ee2f30bfd7ba2feb519f" [[package]] name = "unicode-ident" -version = "1.0.24" +version = "1.0.26" dependencies = [ "criterion", "fst", @@ -568,58 +486,6 @@ dependencies = [ "winapi-util", ] -[[package]] -name = "wasip2" -version = "1.0.2+wasi-0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5" -dependencies = [ - "wit-bindgen", -] - -[[package]] -name = "wasip3" -version = "0.4.0+wasi-0.3.0-rc-2026-01-06" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" -dependencies = [ - "wit-bindgen", -] - -[[package]] -name = "wasm-encoder" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319" -dependencies = [ - "leb128fmt", - "wasmparser", -] - -[[package]] -name = "wasm-metadata" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909" -dependencies = [ - "anyhow", - "indexmap", - "wasm-encoder", - "wasmparser", -] - -[[package]] -name = "wasmparser" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" -dependencies = [ - "bitflags", - "hashbrown 0.15.5", - "indexmap", - "semver", -] - [[package]] name = "winapi" version = "0.3.9" @@ -666,116 +532,28 @@ dependencies = [ "windows-link", ] -[[package]] -name = "wit-bindgen" -version = "0.51.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" -dependencies = [ - "wit-bindgen-rust-macro", -] - -[[package]] -name = "wit-bindgen-core" -version = "0.51.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc" -dependencies = [ - "anyhow", - "heck", - "wit-parser", -] - -[[package]] -name = "wit-bindgen-rust" -version = "0.51.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" -dependencies = [ - "anyhow", - "heck", - "indexmap", - "prettyplease", - "syn", - "wasm-metadata", - "wit-bindgen-core", - "wit-component", -] - -[[package]] -name = "wit-bindgen-rust-macro" -version = "0.51.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a" -dependencies = [ - "anyhow", - "prettyplease", - "proc-macro2", - "quote", - "syn", - "wit-bindgen-core", - "wit-bindgen-rust", -] - -[[package]] -name = "wit-component" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" -dependencies = [ - "anyhow", - "bitflags", - "indexmap", - "log", - "serde", - "serde_derive", - "serde_json", - "wasm-encoder", - "wasm-metadata", - "wasmparser", - "wit-parser", -] - -[[package]] -name = "wit-parser" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736" -dependencies = [ - "anyhow", - "id-arena", - "indexmap", - "log", - "semver", - "serde", - "serde_derive", - "serde_json", - "unicode-xid", - "wasmparser", -] - [[package]] name = "zerocopy" -version = "0.8.39" +version = "0.8.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db6d35d663eadb6c932438e763b262fe1a70987f9ae936e60158176d710cae4a" +checksum = "d35102a9f36d089ccae9e4c6802bc118be4487b80aaffc0ab4e0cf5ce92d2873" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.39" +version = "0.8.57" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4122cd3169e94605190e77839c9a40d40ed048d305bfdc146e7df40ab0f3e517" +checksum = "146c01f5ab44258da43cf276c74a2763db2ff3969c9c652c3f2de07041d0b2bc" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.119", ] [[package]] name = "zmij" -version = "1.0.21" +version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" +checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b" diff --git a/third_party/crates/unicode-ident-1.0.24/Cargo.toml b/third_party/crates/unicode-ident-1.0.26/Cargo.toml similarity index 99% rename from third_party/crates/unicode-ident-1.0.24/Cargo.toml rename to third_party/crates/unicode-ident-1.0.26/Cargo.toml index 720637c..df3d4d4 100644 --- a/third_party/crates/unicode-ident-1.0.24/Cargo.toml +++ b/third_party/crates/unicode-ident-1.0.26/Cargo.toml @@ -13,7 +13,7 @@ edition = "2021" rust-version = "1.71" name = "unicode-ident" -version = "1.0.24" +version = "1.0.26" authors = ["David Tolnay "] build = false autolib = false diff --git a/third_party/crates/unicode-ident-1.0.24/Cargo.toml.orig b/third_party/crates/unicode-ident-1.0.26/Cargo.toml.orig similarity index 95% rename from third_party/crates/unicode-ident-1.0.24/Cargo.toml.orig rename to third_party/crates/unicode-ident-1.0.26/Cargo.toml.orig index f775754..bba531b 100644 --- a/third_party/crates/unicode-ident-1.0.24/Cargo.toml.orig +++ b/third_party/crates/unicode-ident-1.0.26/Cargo.toml.orig @@ -1,6 +1,6 @@ [package] name = "unicode-ident" -version = "1.0.24" +version = "1.0.26" authors = ["David Tolnay "] categories = ["development-tools::procedural-macro-helpers", "no-std", "no-std::no-alloc"] description = "Determine whether characters have the XID_Start or XID_Continue properties according to Unicode Standard Annex #31" @@ -39,4 +39,4 @@ rustdoc-args = [ ] [patch.crates-io] -unicode-xid = { git = "https://github.com/dtolnay-contrib/unicode-xid", branch = "unicode17.0.0" } +unicode-xid = { git = "https://github.com/dtolnay-contrib/unicode-xid", branch = "unicode18.0.0" } diff --git a/third_party/crates/unicode-ident-1.0.26/LICENSE-APACHE b/third_party/crates/unicode-ident-1.0.26/LICENSE-APACHE new file mode 100644 index 0000000..1b5ec8b --- /dev/null +++ b/third_party/crates/unicode-ident-1.0.26/LICENSE-APACHE @@ -0,0 +1,176 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS diff --git a/third_party/crates/unicode-ident-1.0.26/LICENSE-MIT b/third_party/crates/unicode-ident-1.0.26/LICENSE-MIT new file mode 100644 index 0000000..31aa793 --- /dev/null +++ b/third_party/crates/unicode-ident-1.0.26/LICENSE-MIT @@ -0,0 +1,23 @@ +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without +limitation the rights to use, copy, modify, merge, +publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software +is furnished to do so, subject to the following +conditions: + +The above copyright notice and this permission notice +shall be included in all copies or substantial portions +of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF +ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED +TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A +PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT +SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR +IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +DEALINGS IN THE SOFTWARE. diff --git a/third_party/crates/unicode-ident-1.0.24/LICENSE-UNICODE b/third_party/crates/unicode-ident-1.0.26/LICENSE-UNICODE similarity index 100% rename from third_party/crates/unicode-ident-1.0.24/LICENSE-UNICODE rename to third_party/crates/unicode-ident-1.0.26/LICENSE-UNICODE diff --git a/third_party/crates/unicode-ident-1.0.24/README.md b/third_party/crates/unicode-ident-1.0.26/README.md similarity index 91% rename from third_party/crates/unicode-ident-1.0.24/README.md rename to third_party/crates/unicode-ident-1.0.26/README.md index 2e4668e..445e646 100644 --- a/third_party/crates/unicode-ident-1.0.24/README.md +++ b/third_party/crates/unicode-ident-1.0.26/README.md @@ -41,11 +41,11 @@ different ratios of ASCII to non-ASCII codepoints in the input data. | | static storage | 0% nonascii | 1% | 10% | 100% nonascii | |---|---|---|---|---|---| -| **`unicode-ident`** | 10.3 K | 0.41 ns | 0.44 ns | 0.44 ns | 0.93 ns | -| **`unicode-xid`** | 12.0 K | 2.43 ns | 2.50 ns | 2.85 ns | 8.65 ns | -| **`ucd-trie`** | 10.4 K | 1.28 ns | 1.25 ns | 1.20 ns | 1.97 ns | -| **`fst`** | 144 K | 50.9 ns | 51.0 ns | 48.5 ns | 26.7 ns | -| **`roaring`** | 66.1 K | 4.28 ns | 4.22 ns | 4.25 ns | 4.61 ns | +| **`unicode-ident`** | 10.3 K | 0.36 ns | 0.37 ns | 0.37 ns | 0.43 ns | +| **`unicode-xid`** | 12.2 K | 1.63 ns | 1.70 ns | 1.82 ns | 4.56 ns | +| **`ucd-trie`** | 10.8 K | 1.01 ns | 0.73 ns | 0.97 ns | 1.09 ns | +| **`fst`** | 149 K | 22.0 ns | 21.9 ns | 20.9 ns | 10.5 ns | +| **`roaring`** | 66.1 K | 1.91 ns | 1.90 ns | 1.94 ns | 2.67 ns | Source code for the benchmark is provided in the *bench* directory of this repo and may be repeated by running `cargo criterion`. @@ -212,9 +212,8 @@ reasonable. However, as you can see there is a large degree of similarity between the two bitmaps and across the rows, which lends well to compression. This crate stores one 512-bit "row" of the above bitmaps in the leaf level of a -trie, and a single additional level to index into the leafs. It turns out there -are 124 unique 512-bit chunks across the two bitmaps so 7 bits are sufficient to -index them. +trie, and a single additional level to index into the leafs. There are 134 +unique 512-bit chunks across the two bitmaps. The chunk size of 512 bits is selected as the size that minimizes the total size of the data structure. A smaller chunk, like 256 or 128 bits, would achieve @@ -222,12 +221,13 @@ better deduplication but require a larger index. A larger chunk would increase redundancy in the leaf bitmaps. 512 bit chunks are the optimum for total size of the index plus leaf bitmaps. -In fact since there are only 124 unique chunks, we can use an 8-bit index with a -spare bit to index at the half-chunk level. This achieves an additional 8.5% -compression by eliminating redundancies between the second half of any chunk and -the first half of any other chunk. Note that this is not the same as using -chunks which are half the size, because it does not necessitate raising the size -of the trie's first level. +The chunk data is compressed using the Kuhn–Munkres algorithm for bipartite +matching to eliminate redundancies between the second half of any chunk and the +first half of any other chunk. This achieves an additional 9% compression of the +leaf level, leaving 122 chunks that can be indexed at the half-chunk level using +an 8-bit index. Note that this is not the same as using chunks which are half +the size, because it does not necessitate raising the size of the trie's first +level. In contrast to binary search or the `ucd-trie` crate, performing lookups in this data structure is straight-line code with no need for branching. @@ -235,9 +235,9 @@ data structure is straight-line code with no need for branching. ```asm is_xid_start: mov eax, edi - mov ecx, offset unicode_ident::ZERO shr eax, 9 - cmp edi, 210432 + cmp edi, 261632 + mov ecx, offset unicode_ident::tables::TRIE_START+17 lea rax, [rax + unicode_ident::tables::TRIE_START] cmovb rcx, rax movzx eax, byte ptr [rcx] diff --git a/third_party/crates/unicode-ident-1.0.24/benches/xid.rs b/third_party/crates/unicode-ident-1.0.26/benches/xid.rs similarity index 100% rename from third_party/crates/unicode-ident-1.0.24/benches/xid.rs rename to third_party/crates/unicode-ident-1.0.26/benches/xid.rs diff --git a/third_party/crates/unicode-ident-1.0.24/src/lib.rs b/third_party/crates/unicode-ident-1.0.26/src/lib.rs similarity index 89% rename from third_party/crates/unicode-ident-1.0.24/src/lib.rs rename to third_party/crates/unicode-ident-1.0.26/src/lib.rs index 7498812..7e70a09 100644 --- a/third_party/crates/unicode-ident-1.0.24/src/lib.rs +++ b/third_party/crates/unicode-ident-1.0.26/src/lib.rs @@ -43,11 +43,11 @@ //! //! | | static storage | 0% nonascii | 1% | 10% | 100% nonascii | //! |---|---|---|---|---|---| -//! | **`unicode-ident`** | 10.3 K | 0.41 ns | 0.44 ns | 0.44 ns | 0.93 ns | -//! | **`unicode-xid`** | 12.0 K | 2.43 ns | 2.50 ns | 2.85 ns | 8.65 ns | -//! | **`ucd-trie`** | 10.4 K | 1.28 ns | 1.25 ns | 1.20 ns | 1.97 ns | -//! | **`fst`** | 144 K | 50.9 ns | 51.0 ns | 48.5 ns | 26.7 ns | -//! | **`roaring`** | 66.1 K | 4.28 ns | 4.22 ns | 4.25 ns | 4.61 ns | +//! | **`unicode-ident`** | 10.3 K | 0.36 ns | 0.37 ns | 0.37 ns | 0.43 ns | +//! | **`unicode-xid`** | 12.2 K | 1.63 ns | 1.70 ns | 1.82 ns | 4.56 ns | +//! | **`ucd-trie`** | 10.8 K | 1.01 ns | 0.73 ns | 0.97 ns | 1.09 ns | +//! | **`fst`** | 149 K | 22.0 ns | 21.9 ns | 20.9 ns | 10.5 ns | +//! | **`roaring`** | 66.1 K | 1.91 ns | 1.90 ns | 1.94 ns | 2.67 ns | //! //! Source code for the benchmark is provided in the *bench* directory of this //! repo and may be repeated by running `cargo criterion`. @@ -221,9 +221,8 @@ //! compression. //! //! This crate stores one 512-bit "row" of the above bitmaps in the leaf level -//! of a trie, and a single additional level to index into the leafs. It turns -//! out there are 124 unique 512-bit chunks across the two bitmaps so 7 bits are -//! sufficient to index them. +//! of a trie, and a single additional level to index into the leafs. There are +//! 134 unique 512-bit chunks across the two bitmaps. //! //! The chunk size of 512 bits is selected as the size that minimizes the total //! size of the data structure. A smaller chunk, like 256 or 128 bits, would @@ -231,18 +230,19 @@ //! would increase redundancy in the leaf bitmaps. 512 bit chunks are the //! optimum for total size of the index plus leaf bitmaps. //! -//! In fact since there are only 124 unique chunks, we can use an 8-bit index -//! with a spare bit to index at the half-chunk level. This achieves an -//! additional 8.5% compression by eliminating redundancies between the second -//! half of any chunk and the first half of any other chunk. Note that this is -//! not the same as using chunks which are half the size, because it does not -//! necessitate raising the size of the trie's first level. +//! The chunk data is compressed using the Kuhn–Munkres algorithm for bipartite +//! matching to eliminate redundancies between the second half of any chunk and +//! the first half of any other chunk. This achieves an additional 9% +//! compression of the leaf level, leaving 122 chunks that can be indexed at the +//! half-chunk level using an 8-bit index. Note that this is not the same as +//! using chunks which are half the size, because it does not necessitate +//! raising the size of the trie's first level. //! //! In contrast to binary search or the `ucd-trie` crate, performing lookups in //! this data structure is straight-line code with no need for branching. #![no_std] -#![doc(html_root_url = "https://docs.rs/unicode-ident/1.0.24")] +#![doc(html_root_url = "https://docs.rs/unicode-ident/1.0.26")] #![allow( clippy::doc_markdown, clippy::must_use_candidate, @@ -253,16 +253,19 @@ mod tables; pub use crate::tables::UNICODE_VERSION; -use crate::tables::{ASCII_CONTINUE, ASCII_START, CHUNK, LEAF, TRIE_CONTINUE, TRIE_START}; - -static ZERO: u8 = 0; +use crate::tables::{ + ASCII_CONTINUE, ASCII_START, CHUNK, LEAF, TRIE_CONTINUE, TRIE_START, ZERO_CONTINUE, ZERO_START, +}; /// Whether the character has the Unicode property XID\_Start. pub fn is_xid_start(ch: char) -> bool { if ch.is_ascii() { return ASCII_START & (1 << ch as u128) != 0; } - let chunk = *TRIE_START.0.get(ch as usize / 8 / CHUNK).unwrap_or(&ZERO); + let chunk = *TRIE_START + .0 + .get(ch as usize / 8 / CHUNK) + .unwrap_or(&TRIE_START.0[ZERO_START]); let offset = chunk as usize * CHUNK / 2 + ch as usize / 8 % CHUNK; unsafe { LEAF.0.get_unchecked(offset) }.wrapping_shr(ch as u32 % 8) & 1 != 0 } @@ -275,7 +278,7 @@ pub fn is_xid_continue(ch: char) -> bool { let chunk = *TRIE_CONTINUE .0 .get(ch as usize / 8 / CHUNK) - .unwrap_or(&ZERO); + .unwrap_or(&TRIE_CONTINUE.0[ZERO_CONTINUE]); let offset = chunk as usize * CHUNK / 2 + ch as usize / 8 % CHUNK; unsafe { LEAF.0.get_unchecked(offset) }.wrapping_shr(ch as u32 % 8) & 1 != 0 } diff --git a/third_party/crates/unicode-ident-1.0.24/src/tables.rs b/third_party/crates/unicode-ident-1.0.26/src/tables.rs similarity index 88% rename from third_party/crates/unicode-ident-1.0.24/src/tables.rs rename to third_party/crates/unicode-ident-1.0.26/src/tables.rs index c8adab3..aa2a98a 100644 --- a/third_party/crates/unicode-ident-1.0.24/src/tables.rs +++ b/third_party/crates/unicode-ident-1.0.26/src/tables.rs @@ -1,6 +1,6 @@ // @generated by ../generate. To regenerate, run the following in the repo root: // -// $ curl -LO https://www.unicode.org/Public/17.0.0/ucd/UCD.zip +// $ curl -LO https://www.unicode.org/Public/18.0.0/ucd/UCD.zip // $ unzip UCD.zip -d UCD // $ cargo run --manifest-path generate/Cargo.toml @@ -9,75 +9,85 @@ pub(crate) struct Align8(pub(crate) T); #[repr(C, align(64))] pub(crate) struct Align64(pub(crate) T); -pub const UNICODE_VERSION: (u8, u8, u8) = (17, 0, 0); +pub const UNICODE_VERSION: (u8, u8, u8) = (18, 0, 0); pub(crate) const ASCII_START: u128 = 0x7fffffe07fffffe0000000000000000; pub(crate) const ASCII_CONTINUE: u128 = 0x7fffffe87fffffe03ff000000000000; pub(crate) const CHUNK: usize = 64; -pub(crate) static TRIE_START: Align8<[u8; 411]> = Align8([ - 0x03, 0x09, 0x0D, 0x11, 0x15, 0x19, 0x1D, 0x21, 0x25, 0x2B, 0x2F, 0x32, 0x36, 0x3A, 0x3E, 0xA5, - 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x4B, 0x00, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, - 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0x50, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, - 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, - 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, - 0xEF, 0xEF, 0x4F, 0x52, 0x56, 0x5A, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, - 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0x30, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEE, 0x5E, 0x62, 0x64, - 0x68, 0x6C, 0x70, 0xF0, 0x74, 0x76, 0x7A, 0x7E, 0x82, 0x86, 0x8A, 0x8E, 0x92, 0x96, 0x9A, 0x9E, - 0xEF, 0x41, 0xA2, 0x00, 0x00, 0x00, 0x00, 0xE5, 0xEF, 0xEF, 0xA4, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, - 0xEF, 0x29, 0xEF, 0xA9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xD5, 0x00, 0x00, 0x00, 0xEF, 0xAE, 0xCB, 0xB2, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, - 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xB6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAC, 0x26, 0xB8, 0x00, 0x00, 0x00, 0x00, 0xBB, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC4, 0xC6, 0x00, 0x00, 0x00, 0xB9, - 0xCD, 0xD1, 0xD8, 0xDC, 0xE0, 0x00, 0x00, 0xE4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, - 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, - 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, - 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, - 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, - 0xEF, 0xEF, 0xEF, 0xE7, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xE9, 0xEF, 0xEF, 0xEF, - 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEB, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, - 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0x07, 0xEF, 0xED, 0x00, 0x00, 0x00, 0x00, 0xEF, 0xD6, 0x00, 0x00, - 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0x04, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, - 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xF2, +// Positions of entries for the all-zero chunk. +pub(crate) const ZERO_START: usize = 17; +pub(crate) const ZERO_CONTINUE: usize = 17; + +pub(crate) static TRIE_START: Align8<[u8; 511]> = Align8([ + 0x03, 0x09, 0x0D, 0x11, 0x15, 0x19, 0x1D, 0x21, 0x25, 0x2B, 0x2F, 0x32, 0x36, 0x3A, 0x3E, 0xAE, + 0x43, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x00, 0x4B, 0x00, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, + 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xEB, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, + 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, + 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, + 0xAA, 0xAA, 0x4F, 0x52, 0x56, 0x5A, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, + 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x50, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEA, 0x5E, 0x62, 0x64, + 0x68, 0x6C, 0x70, 0x30, 0x74, 0x76, 0x7A, 0x7E, 0x82, 0x86, 0x8A, 0x8E, 0x92, 0x96, 0x9A, 0x9E, + 0xAA, 0xAB, 0xA2, 0xA4, 0x00, 0x00, 0x00, 0xDB, 0xAA, 0xAA, 0xA9, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, + 0xAA, 0x41, 0xAA, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xD7, 0x00, 0x00, 0x00, 0xAA, 0xB3, 0xC7, 0xB7, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, + 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xBB, 0xAA, 0x29, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC4, 0x26, 0xBD, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC9, 0xCB, 0x00, 0x00, 0x00, 0xB1, + 0xD2, 0xD6, 0xDD, 0xE1, 0xE5, 0x00, 0x00, 0xE9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, + 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, + 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, + 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, + 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, + 0xAA, 0xAA, 0xAA, 0xED, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xEF, 0xAA, 0xAA, 0xAA, + 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xF1, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, + 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x07, 0xAA, 0xF3, 0x00, 0x00, 0x00, 0x00, 0xAA, 0xD8, 0x00, 0x00, + 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x04, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, + 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xF5, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, + 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xF7, ]); pub(crate) static TRIE_CONTINUE: Align8<[u8; 1793]> = Align8([ - 0x06, 0x0B, 0x0F, 0x13, 0x17, 0x1B, 0x1F, 0x23, 0x28, 0x2D, 0x2F, 0x34, 0x38, 0x3C, 0x40, 0xA5, - 0x45, 0x00, 0x00, 0x00, 0x00, 0x00, 0x49, 0x00, 0x4D, 0x00, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, - 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0x50, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, - 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, - 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, - 0xEF, 0xEF, 0x4F, 0x54, 0x58, 0x5C, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, - 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0x30, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEE, 0x60, 0x62, 0x66, - 0x6A, 0x6E, 0x72, 0xF0, 0x74, 0x78, 0x7C, 0x80, 0x84, 0x88, 0x8C, 0x90, 0x94, 0x98, 0x9C, 0xA0, - 0xEF, 0x41, 0xA2, 0x00, 0x00, 0x00, 0x00, 0xE5, 0xEF, 0xEF, 0xA7, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, - 0xEF, 0x29, 0xEF, 0xA9, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xD2, 0x00, 0x00, 0x00, 0xEF, 0xB0, 0xC2, 0xB4, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, - 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xB6, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAC, 0x26, 0xB8, 0x00, 0x00, 0x00, 0x00, 0xBE, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAB, 0xBF, 0xBC, 0xC1, 0xC4, 0xC8, 0x00, 0xCA, 0x00, 0xB9, - 0xCF, 0xD4, 0xDA, 0xDE, 0xE2, 0x00, 0x00, 0xE4, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAA, 0x00, 0x00, - 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, - 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, - 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, - 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, - 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, - 0xEF, 0xEF, 0xEF, 0xE7, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xE9, 0xEF, 0xEF, 0xEF, - 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEB, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, - 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0x07, 0xEF, 0xED, 0x00, 0x00, 0x00, 0x00, 0xEF, 0xD6, 0x00, 0x00, - 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0x04, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, - 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xF2, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x06, 0x0B, 0x0F, 0x13, 0x17, 0x1B, 0x1F, 0x23, 0x28, 0x2D, 0x2F, 0x34, 0x38, 0x3C, 0x40, 0xAE, + 0x45, 0x00, 0x00, 0x00, 0x00, 0x00, 0x49, 0x00, 0x4D, 0x00, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, + 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xEB, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, + 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, + 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, + 0xAA, 0xAA, 0x4F, 0x54, 0x58, 0x5C, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, + 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x50, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEA, 0x60, 0x62, 0x66, + 0x6A, 0x6E, 0x72, 0x30, 0x74, 0x78, 0x7C, 0x80, 0x84, 0x88, 0x8C, 0x90, 0x94, 0x98, 0x9C, 0xA0, + 0xAA, 0xAB, 0xA2, 0xA4, 0x00, 0x00, 0x00, 0xDB, 0xAA, 0xAA, 0xAD, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, + 0xAA, 0x41, 0xAA, 0xB0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xD0, 0x00, 0x00, 0x00, 0xAA, 0xB5, 0xA7, 0xB9, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, + 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xBB, 0xAA, 0x29, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC4, 0x26, 0xBD, 0x00, 0x00, 0x00, 0x00, 0xC3, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA6, 0xC1, 0xBE, 0xC6, 0xC9, 0xCD, 0x00, 0xCF, 0x00, 0xB1, + 0xD4, 0xDA, 0xDF, 0xE3, 0xE7, 0x00, 0x00, 0xE9, 0x00, 0x00, 0x00, 0x00, 0x00, 0xA5, 0x00, 0x00, + 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, + 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, + 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, + 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, + 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, + 0xAA, 0xAA, 0xAA, 0xED, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xEF, 0xAA, 0xAA, 0xAA, + 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xF1, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, + 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x07, 0xAA, 0xF3, 0x00, 0x00, 0x00, 0x00, 0xAA, 0xD8, 0x00, 0x00, + 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0x04, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, + 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xF5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, + 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xF7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -161,7 +171,7 @@ pub(crate) static TRIE_CONTINUE: Align8<[u8; 1793]> = Align8([ 0x01, ]); -pub(crate) static LEAF: Align64<[u8; 7808]> = Align64([ +pub(crate) static LEAF: Align64<[u8; 7968]> = Align64([ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -190,12 +200,12 @@ pub(crate) static LEAF: Align64<[u8; 7808]> = Align64([ 0xC0, 0xD7, 0xFF, 0xFF, 0xFB, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xBF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0x7F, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x87, 0x07, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0x7F, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x87, 0x07, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFB, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0x7F, 0x02, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0x01, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xBF, 0xB6, 0x00, 0xFF, 0xFF, 0xFF, 0x87, 0x07, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0xFF, 0x7F, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0x19, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xBF, 0xB6, 0x03, 0xFF, 0xFF, 0xFF, 0x87, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0xC0, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x2F, 0x00, 0x60, 0xC0, 0x00, 0x9C, 0x00, 0x00, 0xFD, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, @@ -218,7 +228,7 @@ pub(crate) static LEAF: Align64<[u8; 7808]> = Align64([ 0xE8, 0xC7, 0x3D, 0xD6, 0x18, 0xC7, 0xFF, 0x03, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEE, 0x87, 0xF9, 0xFF, 0xFF, 0xFD, 0x6D, 0xD3, 0x87, 0x39, 0x02, 0x5E, 0xC0, 0xFF, 0x3F, 0x00, 0xEE, 0xBF, 0xFB, 0xFF, 0xFF, 0xFD, 0xED, 0xF3, 0xBF, 0x3B, 0x01, 0x00, 0xCF, 0xFF, 0x00, 0xFE, - 0xEE, 0x9F, 0xF9, 0xFF, 0xFF, 0xFD, 0xED, 0xF3, 0x9F, 0x39, 0xE0, 0xB0, 0xCF, 0xFF, 0x02, 0x00, + 0xEE, 0x9F, 0xF9, 0xFF, 0xFF, 0xFD, 0xED, 0xF3, 0x9F, 0x39, 0xF8, 0xB0, 0xCF, 0xFF, 0x02, 0x00, 0xEC, 0xC7, 0x3D, 0xD6, 0x18, 0xC7, 0xFF, 0xC3, 0xC7, 0x3D, 0x81, 0x00, 0xC0, 0xFF, 0x00, 0x00, 0xE0, 0xDF, 0xFD, 0xFF, 0xFF, 0xFD, 0xFF, 0x23, 0x00, 0x00, 0x00, 0x37, 0x03, 0x00, 0x00, 0x00, 0xE1, 0xDF, 0xFD, 0xFF, 0xFF, 0xFD, 0xEF, 0x23, 0x00, 0x00, 0x00, 0x70, 0x03, 0x00, 0x06, 0x00, @@ -240,14 +250,14 @@ pub(crate) static LEAF: Align64<[u8; 7808]> = Align64([ 0x03, 0x40, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xBF, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x00, 0x04, 0x00, 0x00, 0x00, 0x27, 0x00, 0xF0, 0x00, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x04, 0x00, 0x00, 0x00, 0x27, 0x00, 0xF0, 0x01, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xBF, 0x20, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, + 0xFF, 0xFF, 0x03, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3D, 0x7F, 0x3D, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3D, 0xFF, 0xFF, 0xFF, 0xFF, 0x3D, 0x7F, 0x3D, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3D, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, @@ -260,8 +270,8 @@ pub(crate) static LEAF: Align64<[u8; 7808]> = Align64([ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0xFF, 0xFF, 0x7F, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0xFF, 0xFF, 0x3F, 0x00, 0xFF, 0x00, 0x00, 0x00, + 0xBF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x9F, 0xFF, 0xFF, 0xFE, 0xFF, 0xFF, 0x07, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xC7, 0xFF, 0x01, 0xFF, 0xFF, 0x03, 0x80, 0xFF, 0xFF, 0x03, 0x00, 0xFF, 0xFF, 0x03, 0x00, 0xFF, 0xDF, 0x01, 0x00, @@ -283,7 +293,7 @@ pub(crate) static LEAF: Align64<[u8; 7808]> = Align64([ 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0xE0, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0x01, 0xC0, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x0F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0x9F, - 0xFF, 0x03, 0xFF, 0x03, 0x80, 0x00, 0xFF, 0xBF, 0xFF, 0xFF, 0xFF, 0x3F, 0xFF, 0x0F, 0x00, 0x00, + 0xFF, 0x03, 0xFF, 0x03, 0x80, 0x00, 0xFF, 0xBF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0xFF, 0x03, 0x00, 0xF8, 0x0F, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0x3F, @@ -295,13 +305,13 @@ pub(crate) static LEAF: Align64<[u8; 7808]> = Align64([ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x80, - 0x00, 0x00, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x80, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0xFC, 0x2F, 0x3F, 0x50, 0xFD, 0xFF, 0xF3, 0xE0, 0x43, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x10, 0x00, 0x00, 0x00, 0x02, 0x80, - 0x00, 0x00, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x1F, 0xE2, 0xFF, 0x01, 0x00, + 0x00, 0x80, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x1F, 0xE2, 0xFF, 0x01, 0x00, 0x84, 0xFC, 0x2F, 0x3F, 0x50, 0xFD, 0xFF, 0xF3, 0xE0, 0x43, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, @@ -325,15 +335,15 @@ pub(crate) static LEAF: Align64<[u8; 7808]> = Align64([ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0xFF, 0xFF, 0x7F, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0xFF, 0x1F, 0xFF, 0xFF, 0x00, 0x0C, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xF9, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0xFE, 0xFF, + 0xFF, 0xF9, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x04, 0x00, 0xFE, 0xFF, 0xFF, 0x1F, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF0, 0xBF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xF9, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0xFE, 0xFF, + 0xFF, 0xF9, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x04, 0x00, 0xFE, 0xFF, 0xBB, 0xF7, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x68, 0x00, 0xFC, 0xFF, 0xFF, 0x3F, 0x00, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x1F, @@ -344,11 +354,11 @@ pub(crate) static LEAF: Align64<[u8; 7808]> = Align64([ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x80, 0xFF, 0x03, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0xF7, 0x0F, 0x00, 0x00, 0xFF, 0xFF, 0x7F, 0xC4, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x62, 0x3E, 0x05, 0x00, 0x00, 0x38, 0xFF, 0x07, 0x1C, 0x00, - 0x7E, 0x7E, 0x7E, 0x00, 0x7F, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF7, 0xFF, 0x03, 0xFF, 0xFF, + 0x7E, 0x7E, 0x7E, 0x00, 0x7F, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF7, 0xFF, 0x33, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0xFF, 0x3F, 0xFF, 0x03, 0xFF, 0xFF, 0x7F, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x38, 0xFF, 0xFF, 0x7C, 0x00, - 0x7E, 0x7E, 0x7E, 0x00, 0x7F, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF7, 0xFF, 0x03, 0xFF, 0xFF, + 0x7E, 0x7E, 0x7E, 0x00, 0x7F, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF7, 0xFF, 0x33, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x37, 0xFF, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, @@ -415,11 +425,11 @@ pub(crate) static LEAF: Align64<[u8; 7808]> = Align64([ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0xBE, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x03, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x03, 0x00, 0xFC, 0x00, 0x00, 0xFE, 0xFF, 0x7F, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x1F, 0x80, 0x00, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1B, 0x03, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1B, 0x03, 0x00, 0xFC, 0xF8, 0x00, 0xFE, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x80, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x7F, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x26, 0x00, @@ -464,20 +474,20 @@ pub(crate) static LEAF: Align64<[u8; 7808]> = Align64([ 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFC, 0x1B, 0x00, 0x00, 0x00, 0x01, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x04, 0x00, 0x00, 0x01, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x20, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x80, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x23, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, + 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0xFF, 0x03, 0xFF, 0xFD, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFB, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x40, 0x00, 0x00, 0x00, 0xBF, 0xFD, 0xFF, 0xFF, - 0xFF, 0x03, 0x00, 0x01, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0x03, 0x00, 0x01, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x02, 0x00, 0xFF, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0x01, 0x00, 0xFF, 0x03, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0xFC, 0xFF, 0xFF, 0xFE, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0xFB, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xB4, 0xFF, 0x00, 0xFF, 0x03, 0xBF, 0xFD, 0xFF, 0xFF, - 0xFF, 0x7F, 0xFB, 0x01, 0xFF, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0xFF, 0x03, 0x00, 0x00, + 0xFF, 0x7F, 0xFB, 0x01, 0xFF, 0x03, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0xFF, 0x03, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x07, 0x00, 0xF4, 0xFF, 0xFD, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -486,30 +496,40 @@ pub(crate) static LEAF: Align64<[u8; 7808]> = Align64([ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x7F, 0x00, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xC7, 0x07, 0x00, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0x3F, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x3F, 0xFF, 0xAA, 0xFF, 0xFF, 0xFF, 0x3F, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0x5F, 0xDC, 0x1F, 0xCF, 0x0F, 0xFF, 0x1F, 0xDC, 0x1F, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x3F, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEF, 0x6F, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0x3F, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0x3F, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x3F, 0xFF, 0xAA, 0xFF, 0xFF, 0xFF, 0x3F, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0x5F, 0xDC, 0x1F, 0xCF, 0x0F, 0xFF, 0x1F, 0xDC, 0x1F, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0x03, 0x00, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x0F, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xE0, @@ -527,50 +547,50 @@ pub(crate) static LEAF: Align64<[u8; 7808]> = Align64([ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x87, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x80, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1B, 0x00, 0x7F, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x80, - 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x80, + 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xFF, 0xFF, 0xFF, 0x7F, 0xE0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xE3, 0x07, 0xF8, + 0xE7, 0x0F, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0xFF, 0x1F, 0xFF, 0x01, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xE3, 0x07, 0xF8, - 0xE7, 0x0F, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0xFF, 0x1F, 0xFF, 0x01, 0xFF, 0x63, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xEF, 0x6F, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x07, 0x98, 0x00, 0x00, 0x00, 0x00, + 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0xFF, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xDF, 0x64, 0xDE, 0xFF, 0xEB, 0xEF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xBF, 0xE7, 0xDF, 0xDF, 0xFF, 0xFF, 0xFF, 0x7B, 0x5F, 0xFC, 0xFD, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0xF7, 0xFF, 0xFF, 0xFF, 0xF7, + 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0xF7, 0xFF, 0xFF, 0xFF, 0xF7, 0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0xF7, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0xF7, 0xFF, 0xFF, 0xFF, 0xF7, + 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0xF7, 0xFF, 0xFF, 0xFF, 0xF7, 0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0xFF, 0xDF, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0xFF, 0xFD, 0xFF, 0xFF, 0xF7, 0xCF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x20, 0x00, 0x10, 0x00, 0x00, 0xF8, 0xFE, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -584,16 +604,16 @@ pub(crate) static LEAF: Align64<[u8; 7808]> = Align64([ 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, @@ -622,13 +642,15 @@ pub(crate) static LEAF: Align64<[u8; 7808]> = Align64([ 0xFF, 0xFB, 0xFF, 0x0F, 0xEE, 0xFB, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0x3F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, + 0xFF, 0xFF, 0xFF, 0x7F, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, @@ -640,14 +662,12 @@ pub(crate) static LEAF: Align64<[u8; 7808]> = Align64([ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, - 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0xFF, 0xFF, 0x3F, 0x00, 0xFF, 0x00, 0x00, 0x00, - 0xBF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFD, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, ]); diff --git a/third_party/crates/unicode-ident-1.0.24/tests/compare.rs b/third_party/crates/unicode-ident-1.0.26/tests/compare.rs similarity index 100% rename from third_party/crates/unicode-ident-1.0.24/tests/compare.rs rename to third_party/crates/unicode-ident-1.0.26/tests/compare.rs diff --git a/third_party/crates/unicode-ident-1.0.24/tests/fst/mod.rs b/third_party/crates/unicode-ident-1.0.26/tests/fst/mod.rs similarity index 100% rename from third_party/crates/unicode-ident-1.0.24/tests/fst/mod.rs rename to third_party/crates/unicode-ident-1.0.26/tests/fst/mod.rs diff --git a/third_party/crates/unicode-ident-1.0.24/tests/fst/xid_continue.fst b/third_party/crates/unicode-ident-1.0.26/tests/fst/xid_continue.fst similarity index 85% rename from third_party/crates/unicode-ident-1.0.24/tests/fst/xid_continue.fst rename to third_party/crates/unicode-ident-1.0.26/tests/fst/xid_continue.fst index cc15f2d5dc8d10036bcc13cc6785f161bef921d3..fd11825b69ec48b8d04996ade0d44a3db090c395 100644 GIT binary patch delta 3407 zcmc&$4OCRs7Cz@P!{{&!XGRbNfdPkLL}COa-^=7jEdM}}e=+`2L|}4|r!`{D42oJ> zaoOh0EQ40P_10>&0&hju5=AjJf53d{>uKs}FMaFv&~a5yu-@rhW+j9 zyFqRq%`aF~xcG54FDfpfrDabnVQ^_VT}CUGGgMi{hHBH3Y+PZkSy}s+RjZ$R+OmdC zY2Dgqp0%>4jd`$ceZvMyH&WOYE`| zcO|XC&?6h887j{(IRS0TFT{w{Dg{quY)PQzjh(N*w&T_9uL#>--U>~8<4e#!dmCiT z@s|1ejrE7lC}Ui}xWJ(C!6Bi#u4}N=D}FwWQjL~NF0v~#Bpw$eo5@W5LpJh4t{#*@R84s9y@-byXWNR

x3GcmF3I|ZEI zt%8KgXE;+ev{fFI6)a+ZUt4^gKRtbh(tmvU&$H*gI)CA!!=;a0V$S_n?5nQQSWT81 zACqMyu6f!qesB2~23{Y(J=A2G6+WyD>xh^h*3__;nE%6Ho%-SVcjKl-?lx3R@{av> za!b5oiX_?bkm=6>kF+Q0Q_rL&KW4Io&e5eGm~XPYxo}<1D|uH6$^#akDMF=LPxLSS zprWEG=E?Ksv$gwHn=EFr&#EI*T7Q+N7Q-8pvHZoC8u=!{IU1*6={#>2Q=6u$coG54 zU4(BLEAKvW{Mb>j?WF32DTxnF9XvYVTsn3PbtPd=Zk{XUibye!>%q264#)Ru#f;{r zad2UGf|qh|83ku#0GJ!5kHVaXOzx=|1*Hx7&^9v+$S#?}Eyu7gM-q6vS#16!gOefT zye{_cX~o)oowrpiL+RP6LbDp5W*f3_WFwEu26MWnD_Oj7_<}Es9H!7& zUnrP0xC9zI{GjCOYOu-7EK&6yXURDh!k1y<#ad|bOl69S1&tQh`rNT+vXu#a3bxr?Y0Hhuie=?Xm*gzWTo4ELw-??H zr~$%ou#Qy%N@MOYL#4_P=VpQZn?{Zt5S&{46ZBP2Zu;0uFlun~5EpoH&Xs?8K+J!1 zP=YQYp0Yb&&jZop_|b%7^b9}+VRUtx8(XH| zgW;7acL=AXA!kl$LQdlqHcBztS?QFH@RZ$kFx zQTP_r_=51R7Y+jcMuhNhFB}Z^nHj9vy9k`kajGO29_ZIBw<4sYnYFyKs@g3?sc8_o z0Bgc4sJVtpU6|6<5_6yz4>V$%G_^~^FEsF7VO+<~prhSKjUAkDjbI1x9lnt4Gf^;m zV1H=7n#dAzE94|Nc|zF9TF{>4i??}NyMr;ilMr%&|6@0BP5-Fzvg|k1S_jPk9y6B| zzoFu;8ZImEzRD_je;;pm{O{Wiet-N&W{ZU*75x6bn*!G0?jfajefx8vSSIJWWT=U; z0pGXJN|F&q$lHML&utxIcs(BRebjmU%0%=%_zk-6W5BVf67m~1K~K~e&=l#Ll%u5& x3S$|oJx)-CDBB;8#MkhIuf4KEcC@KIIE-|1v@guU4fM^w#2X7;^& ze`AOK9~blwsm)-$nG9;pe4%cEJ5B~|pCc5ci@{Y=X+-7|-2>W%?neD8A)re3vLO4( zfrI2w9XUK`W;5KdgAG4AcmBtgL94E3E!D4WhhC`mTMngzokcwXt z96~~8hRq5mBqDNlRP>yf*tu~eUblIOn3q82CnhB?SV(P)Qc_7;dd6a^W-cLFWa%=h zWiO{9CpVAE{1qz;3X4{)ey8}|5;`R6(lu+>(SE(AjFfM9uY!<`M9EK(_jU4x_@MH` zkE%Z2w0TSQ3)6tYXh9)7%4NxwGLv5)+`rdx_s;EG?QJ*Vi?cHBTwp0SBc$>8Hz!Uu zo%;5>?@#{#3T!1{n(5gu!u3slP<@nvz$_(qB)H1}4n^3Te*W2x?VqySKG_O2+G@BO zvCWJa8i~ZlCZ=W*#@xaZ6j8p`R@S3zZ0+nF9G#>xIUk9F{$Q_-gMb;Y#mU_C*=1I6 zGEKs^xZ*g@IXxQlxL_Q2l}laRX$X=MF{I|K1BX^IbmTNb&HhMsmkpjMAwOLt@yqu1dJd0aP#v6%rz=?p+uz~i8snZV!g{I(f*;MR;E%1IS-4W84>7V zp@v1G=O6xUa2ekID(f`2I`?!>q4#Z{?Y>=p{K^CVDFH^)w+9*oH-tLRQmJvIAbNL< zN?j3`l~9^^COKTbs3G-wx=&_n7G#Iz8m~B9aB$VuVwE~{E$RE~`Lo_0D7>Eyf$h_{ zma^3nE~Ywy{_RmS1H(GW1OegcyFc8g#P4be6_fW8-09^Ks+SzThcrs zrAo{lIZ=SY4Kr{m*`AAOYSo7=MP878Iv()U7-;gyfu=RC=KY?ANboU?XA9i07u*~- z3tIFlA?1t->m|a61Wc$FFQ!Fe0>5o?el^J4lP)5bFN<$m~O&wtZrUsVZyP^wC`7~3sY-!e#gt)n}6QJBA zj2RLZua2fgFVz3WuDO;PhnG$H^}3K zob>tcdIlcuW8KEM4xY(CPbOEu$~7*mQiQ)2Fs@phRo^VYxe`I0ob|K7&Kf6kB(+46 zQOL*+J$69XrRc5{xyVqR95u_)ZD(}D6*&pu<7YbnfPOA+0wm@j>?{ zpwoT>7#04gck+N<74ScRE2jTzaeNT64Mtyupo*}6?2X}QUL>lBOhks!NFIYKW07w> z3Q9mRiKsaVF$>YoMW{0sP0c`+nMkx0m1ZMN4tkP{ZssFZ0UA?;qF1A&VpLVaJKbA~ zlGmYWW$54r6kCB#Y-EpFVh5OOrC@t4u@jVwqC|svK%gbv7L3&vpu|STGy2Vx+Jd14 z+p^Vq*fTCmM^ODU*)R6>E0ncz2xTpvvj{2VjXZM^N?nw;_~BY!3_d)K5#@TCDQ)$N zQMgUOXBexr!yKfA8-R`dB$`}oxhdWQOrAN&{Y}{|9yE?VC)}lFO!?LIN=MvaplP(m zv;`v6uk_&orGNOQ7h;h>RlTC^lz~Z-2YpP;Pvl+WI|jx zQkUP`(+wF%1M6@2;96Y2(+%qjH5j2{86MHrjb9ES|1WH4+m{0s8!IVig$R@rX>~uU nryt8bc=SGzz2llaW_kjQZdY@uz300M0LQw6Ia-qs66fimZ9sIpx_MMT2>tf7?21i35S0HeV$H(w02 zz_PE2w2hk#o6Tcq!&?CH*ReUGCrSqM95-z&-LQV$+Am5zFJ1#hjDEFNgT)MrX0NF< z_An#K9$f}q(sXw3^guMQ-fZPyr>UotLx+!if3)G)@e@BZHk~|m8lNHN_3XazS_{aE z&7$VdgIlqOdC@V%zxcB%Xx=6O1J4_l2<$+FL=DyvrDH!0a!ai_7CR$GZ^b#L^m z_IVE9I9+k(_5aF^R(nZ$fti2A6rF;`=yaS`#Q zv-F9OOsoCbW11%-2J`v*Yrm`cmOZMQg!qN4^-K|H>}U!DIrX)yG4Fzq!A_v5c48Y= z3lSI~HATDVYFip)|VihXG!hjwwfadpH zOC($bfce=3umRFzct8s=90*zg!K@9ac$IMH!lx|Cu|t6LizvLDK?!VHH6HWQd}6To4+JDen*x3p)9UIb%~bPd5B0ZrKesI11Iyqf`r z_T6^fFeWf2`@*gpa=3K^gZB7w1`CLfdh6t*#5uFWLqnzw1D!>v`F=~cneVq{KQC{Y z$t3S?MKRPzISfujc>=ya6Vi>26g~(oL;hg-O*gHf^`{8-)V?4DZ>cOHO3;Tyv{}}V zNS%#4-}K<&qu&9YDrE2&w(3$VB55iiF8B(by$PVYn*h1O3fm6KrFqNpKUuzlq+$ff z0wqv4L<|;;vaG>u_m&2}g?o-<)dCc*c+Gg&*dAbein7zKdFr?Ib znY>xC-p9Omuy3NTdAvXTFP5}VsXEkmMm}HOG-mcYS>r!cMZepj(Ffdn-*uw*1B9{@mFgYj#&v?jlcT;b#Rf@~%77w7P*VCJ1z6B_v5MHhvv> zqg509O{CNY5~Z8n+!Xb^&Lf;pRDBhxY3Z70s*KE!vP=s;UbrZGv01aE6Zw21$zf4j zJr`ysl|HLx8g#<(a3I77u(1gI=DNT|Sv!LK4@t-?YtUkvgE*W;R_Oovv|WgopA tt+NKT)c`MY7kv^)3Qd-NF2SW-3UMSnPTgZQ#WA-&_9VHaeeIGO{3l!^Zu$TK delta 2177 zcmcIk3s6*L6yE=`yRf^gd#?+)4ui1R0=qm{lC%^SVtFVCD?yQ<_yAV71ma_w@;tZd1h+Ow3|g@x$oWbX52W~WD>{z;`v9_3Lbp5=h)VlatflPihv#Novl{;h z5bq3iR5Gn5&X%1iEjj(csgqDl78x^e35nvVUjj1-7^EaXCTyoVVDuo z_^R{k8#iy={-z7>X0jAfH)5OkP>_&WoY)3EzMe3ixP?JGVE9d_6O2(|yDSK!${>)a z49g+Igwf`rok_;AuW(QqoShcsFfI%AqEw4AG5s$t+3LmZ|70z5#uYWLxN6knoL7^V z%8;#|@^$cY+0e4F|2c!dUZXOEJ|7m+6Q(lMZ=H-xjPloQmc_Wmn&RqTYJ0gif!GzY z`<=aSq`awD89b@MjA;q)iz}BK8{mRM0bLRSWq-sDG3%qn@Dt2@ODW>*J0h!&_O{lR z>vgrD^HD))(OtliD?HRiz7(;xO(#_RH!Pd{8p@Xq}AE+(=j7!tFf<*pQqq)l3=(wU9 zuaFkm9bSFX{{1y2W})0g9=W!}{CG00XmPDl^4*&~*!XSUh2HGjLA_+QG{$ZB^donh z-|-E$&;Gh;=HD}b)LhZD2ki~6)Q*SNgdgA974hD-hf)2ynwa|7OD|rGFWZ3<>vu|b zPwhd;)~NyeOUyeB;)CC&Ycq$lqH}&8{n31XWcd4`LDN8gU+>lWy4njc@tqvrdguVn z;t0Xq7(h260}sPWW<9K|{b$Spn!q3$>eA%kbW8w3BwMjBIVE*2M9++KmDm0QhF4}y zuO3WGr!!v5%*xJTEr;fik3O7UXD+uPs$y~oV+LCb(IOwv={K>%R7a%&el`5G216o9 zGD+buJx$_b1{O^X{29wPt_jdj>L(G0)z=WKA4e*<|2^sx%XwJi5_BI6=Yf{MJPCyH zNhJ9nIZ~IgxA|o?;(Rp1HzE#4%|XlhOrfPIoc@g)0*@Sk&4&t@OHt$EvmS9e_&k{& aEHK1z;&QHyY{WS1v9)9xVUDo0!Soja=Nz*D diff --git a/third_party/crates/unicode-ident-1.0.24/tests/roaring/mod.rs b/third_party/crates/unicode-ident-1.0.26/tests/roaring/mod.rs similarity index 100% rename from third_party/crates/unicode-ident-1.0.24/tests/roaring/mod.rs rename to third_party/crates/unicode-ident-1.0.26/tests/roaring/mod.rs diff --git a/third_party/crates/unicode-ident-1.0.24/tests/static_size.rs b/third_party/crates/unicode-ident-1.0.26/tests/static_size.rs similarity index 94% rename from third_party/crates/unicode-ident-1.0.24/tests/static_size.rs rename to third_party/crates/unicode-ident-1.0.26/tests/static_size.rs index e2bcd73..d36bb38 100644 --- a/third_party/crates/unicode-ident-1.0.24/tests/static_size.rs +++ b/third_party/crates/unicode-ident-1.0.26/tests/static_size.rs @@ -13,7 +13,7 @@ fn test_size() { + size_of_val(&tables::TRIE_START) + size_of_val(&tables::TRIE_CONTINUE) + size_of_val(&tables::LEAF); - assert_eq!(10056, size); + assert_eq!(10344, size); } #[test] @@ -23,7 +23,7 @@ fn test_xid_size() { mod tables; let size = size_of_val(tables::XID_START) + size_of_val(tables::XID_CONTINUE); - assert_eq!(11976, size); + assert_eq!(12184, size); let _ = tables::BY_NAME; } @@ -70,7 +70,7 @@ fn test_trieset_size() { + size_of_val(tree3_level2) + size_of_val(tree3_level3); - assert_eq!(10392, start_size + continue_size); + assert_eq!(10752, start_size + continue_size); let _ = trie::BY_NAME; } @@ -80,7 +80,7 @@ fn test_fst_size() { let xid_start_fst = include_bytes!("fst/xid_start.fst"); let xid_continue_fst = include_bytes!("fst/xid_continue.fst"); let size = xid_start_fst.len() + xid_continue_fst.len(); - assert_eq!(143513, size); + assert_eq!(148706, size); } #[test] diff --git a/third_party/crates/unicode-ident-1.0.24/tests/tables/mod.rs b/third_party/crates/unicode-ident-1.0.26/tests/tables/mod.rs similarity index 100% rename from third_party/crates/unicode-ident-1.0.24/tests/tables/mod.rs rename to third_party/crates/unicode-ident-1.0.26/tests/tables/mod.rs diff --git a/third_party/crates/unicode-ident-1.0.26/tests/tables/tables.rs b/third_party/crates/unicode-ident-1.0.26/tests/tables/tables.rs new file mode 100644 index 0000000..d490335 --- /dev/null +++ b/third_party/crates/unicode-ident-1.0.26/tests/tables/tables.rs @@ -0,0 +1,367 @@ +// DO NOT EDIT THIS FILE. IT WAS AUTOMATICALLY GENERATED BY: +// +// ucd-generate property-bool UCD --include XID_Start,XID_Continue +// +// Unicode version: 18.0.0. +// +// ucd-generate 0.3.1 is available on crates.io. + +pub const BY_NAME: &'static [(&'static str, &'static [(u32, u32)])] = &[ + ("XID_Continue", XID_CONTINUE), ("XID_Start", XID_START), +]; + +pub const XID_CONTINUE: &'static [(u32, u32)] = &[ + (48, 57), (65, 90), (95, 95), (97, 122), (170, 170), (181, 181), (183, 183), + (186, 186), (192, 214), (216, 246), (248, 705), (710, 721), (736, 740), + (748, 748), (750, 750), (768, 884), (886, 887), (891, 893), (895, 895), + (902, 906), (908, 908), (910, 929), (931, 1013), (1015, 1153), (1155, 1159), + (1162, 1327), (1329, 1366), (1368, 1369), (1376, 1416), (1419, 1420), + (1425, 1469), (1471, 1471), (1473, 1474), (1476, 1477), (1479, 1481), + (1488, 1514), (1519, 1522), (1552, 1562), (1568, 1641), (1646, 1747), + (1749, 1756), (1759, 1768), (1770, 1788), (1791, 1791), (1808, 1866), + (1869, 1969), (1984, 2037), (2042, 2042), (2045, 2045), (2048, 2093), + (2112, 2139), (2144, 2154), (2160, 2183), (2185, 2191), (2199, 2273), + (2275, 2403), (2406, 2415), (2417, 2435), (2437, 2444), (2447, 2448), + (2451, 2472), (2474, 2480), (2482, 2482), (2486, 2489), (2492, 2500), + (2503, 2504), (2507, 2510), (2519, 2519), (2524, 2525), (2527, 2531), + (2534, 2545), (2556, 2556), (2558, 2558), (2561, 2563), (2565, 2570), + (2575, 2576), (2579, 2600), (2602, 2608), (2610, 2611), (2613, 2614), + (2616, 2617), (2620, 2620), (2622, 2626), (2631, 2632), (2635, 2637), + (2641, 2641), (2649, 2652), (2654, 2654), (2662, 2677), (2689, 2691), + (2693, 2701), (2703, 2705), (2707, 2728), (2730, 2736), (2738, 2739), + (2741, 2745), (2748, 2757), (2759, 2761), (2763, 2765), (2768, 2768), + (2784, 2787), (2790, 2799), (2809, 2815), (2817, 2819), (2821, 2828), + (2831, 2832), (2835, 2856), (2858, 2864), (2866, 2867), (2869, 2873), + (2876, 2884), (2887, 2888), (2891, 2893), (2899, 2903), (2908, 2909), + (2911, 2915), (2918, 2927), (2929, 2929), (2946, 2947), (2949, 2954), + (2958, 2960), (2962, 2965), (2969, 2970), (2972, 2972), (2974, 2975), + (2979, 2980), (2984, 2986), (2990, 3001), (3006, 3010), (3014, 3016), + (3018, 3021), (3024, 3024), (3031, 3031), (3046, 3055), (3072, 3084), + (3086, 3088), (3090, 3112), (3114, 3129), (3132, 3140), (3142, 3144), + (3146, 3149), (3157, 3158), (3160, 3162), (3164, 3165), (3168, 3171), + (3174, 3183), (3200, 3203), (3205, 3212), (3214, 3216), (3218, 3240), + (3242, 3251), (3253, 3257), (3260, 3268), (3270, 3272), (3274, 3277), + (3285, 3286), (3292, 3294), (3296, 3299), (3302, 3311), (3313, 3315), + (3328, 3340), (3342, 3344), (3346, 3396), (3398, 3400), (3402, 3406), + (3412, 3415), (3423, 3427), (3430, 3439), (3450, 3455), (3457, 3459), + (3461, 3478), (3482, 3505), (3507, 3515), (3517, 3517), (3520, 3526), + (3530, 3530), (3535, 3540), (3542, 3542), (3544, 3551), (3558, 3567), + (3570, 3571), (3585, 3642), (3648, 3662), (3664, 3673), (3713, 3714), + (3716, 3716), (3718, 3722), (3724, 3747), (3749, 3749), (3751, 3773), + (3776, 3780), (3782, 3782), (3784, 3790), (3792, 3801), (3804, 3807), + (3840, 3840), (3864, 3865), (3872, 3881), (3893, 3893), (3895, 3895), + (3897, 3897), (3902, 3911), (3913, 3948), (3953, 3972), (3974, 3991), + (3993, 4028), (4038, 4038), (4096, 4169), (4176, 4253), (4256, 4293), + (4295, 4295), (4301, 4301), (4304, 4346), (4348, 4680), (4682, 4685), + (4688, 4694), (4696, 4696), (4698, 4701), (4704, 4744), (4746, 4749), + (4752, 4784), (4786, 4789), (4792, 4798), (4800, 4800), (4802, 4805), + (4808, 4822), (4824, 4880), (4882, 4885), (4888, 4954), (4957, 4959), + (4969, 4977), (4992, 5007), (5024, 5109), (5112, 5117), (5121, 5740), + (5743, 5759), (5761, 5786), (5792, 5866), (5870, 5880), (5888, 5909), + (5919, 5940), (5952, 5971), (5984, 5996), (5998, 6000), (6002, 6003), + (6016, 6099), (6103, 6103), (6108, 6109), (6112, 6121), (6155, 6157), + (6159, 6169), (6176, 6264), (6272, 6314), (6320, 6389), (6400, 6430), + (6432, 6443), (6448, 6459), (6470, 6509), (6512, 6516), (6528, 6571), + (6576, 6601), (6608, 6618), (6656, 6683), (6688, 6750), (6752, 6780), + (6783, 6793), (6800, 6809), (6823, 6823), (6832, 6845), (6847, 6896), + (6912, 6988), (6992, 7001), (7019, 7027), (7040, 7155), (7168, 7223), + (7232, 7241), (7245, 7293), (7296, 7306), (7312, 7354), (7357, 7359), + (7376, 7378), (7380, 7418), (7424, 7957), (7960, 7965), (7968, 8005), + (8008, 8013), (8016, 8023), (8025, 8025), (8027, 8027), (8029, 8029), + (8031, 8061), (8064, 8116), (8118, 8124), (8126, 8126), (8130, 8132), + (8134, 8140), (8144, 8147), (8150, 8155), (8160, 8172), (8178, 8180), + (8182, 8188), (8204, 8205), (8255, 8256), (8276, 8276), (8305, 8305), + (8319, 8319), (8335, 8351), (8400, 8412), (8417, 8417), (8421, 8432), + (8450, 8450), (8455, 8455), (8458, 8467), (8469, 8469), (8472, 8477), + (8484, 8484), (8486, 8486), (8488, 8488), (8490, 8505), (8508, 8511), + (8517, 8521), (8526, 8526), (8544, 8584), (11264, 11492), (11499, 11507), + (11520, 11557), (11559, 11559), (11565, 11565), (11568, 11623), + (11631, 11631), (11647, 11670), (11680, 11686), (11688, 11694), + (11696, 11702), (11704, 11710), (11712, 11718), (11720, 11726), + (11728, 11734), (11736, 11742), (11744, 11775), (12293, 12295), + (12321, 12335), (12337, 12341), (12344, 12348), (12353, 12438), + (12441, 12442), (12445, 12447), (12449, 12543), (12549, 12591), + (12593, 12686), (12704, 12735), (12784, 12799), (13312, 19903), + (19968, 42124), (42192, 42237), (42240, 42508), (42512, 42539), + (42560, 42607), (42612, 42621), (42623, 42737), (42775, 42783), + (42786, 42888), (42891, 42973), (42978, 42978), (42993, 43047), + (43052, 43052), (43072, 43123), (43136, 43205), (43216, 43225), + (43232, 43255), (43259, 43259), (43261, 43309), (43312, 43347), + (43360, 43388), (43392, 43456), (43471, 43481), (43488, 43518), + (43520, 43574), (43584, 43597), (43600, 43609), (43616, 43638), + (43642, 43714), (43739, 43741), (43744, 43759), (43762, 43766), + (43777, 43782), (43785, 43790), (43793, 43798), (43808, 43814), + (43816, 43822), (43824, 43866), (43868, 43881), (43884, 43885), + (43888, 44010), (44012, 44013), (44016, 44025), (44032, 55203), + (55216, 55238), (55243, 55291), (63744, 64109), (64112, 64217), + (64256, 64262), (64275, 64279), (64285, 64296), (64298, 64310), + (64312, 64316), (64318, 64318), (64320, 64321), (64323, 64324), + (64326, 64433), (64467, 64605), (64612, 64829), (64848, 64911), + (64914, 64967), (65008, 65017), (65024, 65039), (65056, 65071), + (65075, 65076), (65101, 65103), (65137, 65137), (65139, 65139), + (65143, 65143), (65145, 65145), (65147, 65147), (65149, 65149), + (65151, 65276), (65296, 65305), (65313, 65338), (65343, 65343), + (65345, 65370), (65381, 65470), (65474, 65479), (65482, 65487), + (65490, 65495), (65498, 65500), (65536, 65547), (65549, 65574), + (65576, 65594), (65596, 65597), (65599, 65613), (65616, 65629), + (65664, 65786), (65856, 65908), (66045, 66045), (66176, 66204), + (66208, 66256), (66272, 66272), (66304, 66335), (66349, 66378), + (66384, 66426), (66432, 66461), (66464, 66499), (66504, 66511), + (66513, 66517), (66560, 66717), (66720, 66729), (66736, 66771), + (66776, 66811), (66816, 66855), (66864, 66915), (66928, 66938), + (66940, 66954), (66956, 66962), (66964, 66965), (66967, 66977), + (66979, 66993), (66995, 67001), (67003, 67004), (67008, 67059), + (67072, 67382), (67392, 67413), (67424, 67431), (67456, 67461), + (67463, 67504), (67506, 67519), (67584, 67589), (67592, 67592), + (67594, 67637), (67639, 67640), (67644, 67644), (67647, 67669), + (67680, 67702), (67712, 67742), (67808, 67826), (67828, 67829), + (67840, 67861), (67872, 67897), (67904, 67929), (67968, 68023), + (68030, 68031), (68096, 68099), (68101, 68102), (68108, 68115), + (68117, 68119), (68121, 68149), (68152, 68154), (68159, 68159), + (68192, 68220), (68224, 68252), (68288, 68295), (68297, 68326), + (68352, 68405), (68416, 68437), (68448, 68466), (68480, 68497), + (68608, 68680), (68736, 68786), (68800, 68850), (68864, 68903), + (68912, 68921), (68928, 68965), (68969, 68973), (68975, 68997), + (69248, 69289), (69291, 69292), (69296, 69297), (69314, 69319), + (69323, 69327), (69337, 69358), (69360, 69404), (69415, 69415), + (69424, 69456), (69488, 69509), (69552, 69572), (69600, 69622), + (69632, 69702), (69734, 69749), (69759, 69818), (69826, 69826), + (69840, 69864), (69872, 69881), (69888, 69940), (69942, 69951), + (69956, 69959), (69968, 70003), (70006, 70006), (70016, 70084), + (70089, 70092), (70094, 70106), (70108, 70108), (70144, 70161), + (70163, 70199), (70206, 70209), (70272, 70278), (70280, 70280), + (70282, 70285), (70287, 70301), (70303, 70312), (70320, 70378), + (70384, 70393), (70400, 70403), (70405, 70412), (70415, 70416), + (70419, 70440), (70442, 70448), (70450, 70451), (70453, 70457), + (70459, 70468), (70471, 70472), (70475, 70477), (70480, 70480), + (70487, 70487), (70493, 70499), (70502, 70508), (70512, 70516), + (70528, 70537), (70539, 70539), (70542, 70542), (70544, 70581), + (70583, 70592), (70594, 70594), (70597, 70597), (70599, 70602), + (70604, 70611), (70625, 70626), (70656, 70730), (70736, 70745), + (70750, 70753), (70784, 70853), (70855, 70855), (70864, 70873), + (71040, 71093), (71096, 71104), (71128, 71133), (71168, 71232), + (71236, 71236), (71248, 71257), (71296, 71352), (71360, 71369), + (71376, 71395), (71424, 71450), (71453, 71467), (71472, 71481), + (71488, 71494), (71680, 71738), (71840, 71913), (71935, 71942), + (71945, 71945), (71948, 71955), (71957, 71958), (71960, 71989), + (71991, 71992), (71995, 72003), (72016, 72025), (72096, 72103), + (72106, 72151), (72154, 72161), (72163, 72164), (72192, 72254), + (72263, 72263), (72272, 72345), (72349, 72349), (72368, 72440), + (72458, 72458), (72544, 72551), (72640, 72672), (72688, 72697), + (72704, 72712), (72714, 72758), (72760, 72768), (72784, 72793), + (72818, 72847), (72850, 72871), (72873, 72886), (72960, 72966), + (72968, 72969), (72971, 73014), (73018, 73018), (73020, 73021), + (73023, 73031), (73040, 73049), (73056, 73061), (73063, 73064), + (73066, 73102), (73104, 73105), (73107, 73112), (73120, 73129), + (73136, 73179), (73184, 73193), (73200, 73201), (73440, 73462), + (73472, 73488), (73490, 73530), (73534, 73538), (73552, 73562), + (73648, 73648), (73728, 74649), (74752, 74863), (74869, 75075), + (75088, 75398), (77712, 77808), (77824, 78895), (78912, 78933), + (78944, 82938), (82944, 83526), (90368, 90425), (92160, 92728), + (92736, 92766), (92768, 92777), (92784, 92862), (92864, 92873), + (92880, 92909), (92912, 92916), (92928, 92982), (92992, 92995), + (93008, 93017), (93027, 93047), (93053, 93071), (93504, 93548), + (93552, 93561), (93760, 93823), (93856, 93880), (93883, 93907), + (93952, 94026), (94031, 94087), (94095, 94111), (94176, 94177), + (94179, 94180), (94192, 94198), (94208, 101594), (101631, 101664), + (101760, 101874), (101888, 102801), (102816, 102866), (110576, 110579), + (110581, 110587), (110589, 110590), (110592, 110888), (110898, 110898), + (110928, 110930), (110933, 110933), (110948, 110952), (110960, 111355), + (113664, 113770), (113776, 113788), (113792, 113800), (113808, 113817), + (113821, 113822), (118000, 118009), (118528, 118573), (118576, 118598), + (119079, 119080), (119141, 119145), (119149, 119154), (119163, 119170), + (119173, 119179), (119210, 119213), (119362, 119364), (119376, 119378), + (119387, 119388), (119391, 119391), (119424, 119425), (119808, 119892), + (119894, 119964), (119966, 119967), (119970, 119970), (119973, 119974), + (119977, 119980), (119982, 119993), (119995, 119995), (119997, 120003), + (120005, 120069), (120071, 120074), (120077, 120084), (120086, 120092), + (120094, 120121), (120123, 120126), (120128, 120132), (120134, 120134), + (120138, 120144), (120146, 120486), (120488, 120512), (120514, 120538), + (120540, 120570), (120572, 120596), (120598, 120628), (120630, 120654), + (120656, 120686), (120688, 120712), (120714, 120744), (120746, 120770), + (120772, 120779), (120782, 120831), (121344, 121398), (121403, 121452), + (121461, 121461), (121476, 121476), (121499, 121503), (121505, 121519), + (122624, 122753), (122768, 122774), (122829, 122886), (122888, 122904), + (122907, 122913), (122915, 122916), (122918, 122922), (122928, 122989), + (123023, 123023), (123136, 123180), (123184, 123197), (123200, 123209), + (123214, 123214), (123536, 123566), (123584, 123641), (124112, 124153), + (124368, 124410), (124608, 124638), (124640, 124661), (124670, 124671), + (124896, 124902), (124904, 124907), (124909, 124910), (124912, 124926), + (124928, 125124), (125136, 125142), (125184, 125259), (125264, 125273), + (126464, 126467), (126469, 126495), (126497, 126498), (126500, 126500), + (126503, 126503), (126505, 126514), (126516, 126519), (126521, 126521), + (126523, 126523), (126530, 126530), (126535, 126535), (126537, 126537), + (126539, 126539), (126541, 126543), (126545, 126546), (126548, 126548), + (126551, 126551), (126553, 126553), (126555, 126555), (126557, 126557), + (126559, 126559), (126561, 126562), (126564, 126564), (126567, 126570), + (126572, 126578), (126580, 126583), (126585, 126588), (126590, 126590), + (126592, 126601), (126603, 126619), (126625, 126627), (126629, 126633), + (126635, 126651), (130032, 130041), (131072, 173791), (173824, 178206), + (178208, 183981), (183984, 191456), (191472, 192093), (194560, 195101), + (196608, 201546), (201552, 210041), (249856, 261183), (917760, 917999), +]; + +pub const XID_START: &'static [(u32, u32)] = &[ + (65, 90), (97, 122), (170, 170), (181, 181), (186, 186), (192, 214), + (216, 246), (248, 705), (710, 721), (736, 740), (748, 748), (750, 750), + (880, 884), (886, 887), (891, 893), (895, 895), (902, 902), (904, 906), + (908, 908), (910, 929), (931, 1013), (1015, 1153), (1162, 1327), + (1329, 1366), (1368, 1369), (1376, 1416), (1419, 1420), (1488, 1514), + (1519, 1522), (1568, 1610), (1646, 1647), (1649, 1747), (1749, 1749), + (1765, 1766), (1774, 1775), (1786, 1788), (1791, 1791), (1808, 1808), + (1810, 1839), (1869, 1957), (1969, 1969), (1994, 2026), (2036, 2037), + (2042, 2042), (2048, 2069), (2074, 2074), (2084, 2084), (2088, 2088), + (2112, 2136), (2144, 2154), (2160, 2183), (2185, 2191), (2208, 2249), + (2308, 2361), (2365, 2365), (2384, 2384), (2392, 2401), (2417, 2432), + (2437, 2444), (2447, 2448), (2451, 2472), (2474, 2480), (2482, 2482), + (2486, 2489), (2493, 2493), (2510, 2510), (2524, 2525), (2527, 2529), + (2544, 2545), (2556, 2556), (2565, 2570), (2575, 2576), (2579, 2600), + (2602, 2608), (2610, 2611), (2613, 2614), (2616, 2617), (2649, 2652), + (2654, 2654), (2674, 2676), (2693, 2701), (2703, 2705), (2707, 2728), + (2730, 2736), (2738, 2739), (2741, 2745), (2749, 2749), (2768, 2768), + (2784, 2785), (2809, 2809), (2821, 2828), (2831, 2832), (2835, 2856), + (2858, 2864), (2866, 2867), (2869, 2873), (2877, 2877), (2908, 2909), + (2911, 2913), (2929, 2929), (2947, 2947), (2949, 2954), (2958, 2960), + (2962, 2965), (2969, 2970), (2972, 2972), (2974, 2975), (2979, 2980), + (2984, 2986), (2990, 3001), (3024, 3024), (3077, 3084), (3086, 3088), + (3090, 3112), (3114, 3129), (3133, 3133), (3160, 3162), (3164, 3165), + (3168, 3169), (3200, 3200), (3205, 3212), (3214, 3216), (3218, 3240), + (3242, 3251), (3253, 3257), (3261, 3261), (3292, 3294), (3296, 3297), + (3313, 3314), (3332, 3340), (3342, 3344), (3346, 3386), (3389, 3389), + (3406, 3406), (3412, 3414), (3423, 3425), (3450, 3455), (3461, 3478), + (3482, 3505), (3507, 3515), (3517, 3517), (3520, 3526), (3585, 3632), + (3634, 3634), (3648, 3654), (3713, 3714), (3716, 3716), (3718, 3722), + (3724, 3747), (3749, 3749), (3751, 3760), (3762, 3762), (3773, 3773), + (3776, 3780), (3782, 3782), (3804, 3807), (3840, 3840), (3904, 3911), + (3913, 3948), (3976, 3980), (4096, 4138), (4159, 4159), (4176, 4181), + (4186, 4189), (4193, 4193), (4197, 4198), (4206, 4208), (4213, 4225), + (4238, 4238), (4256, 4293), (4295, 4295), (4301, 4301), (4304, 4346), + (4348, 4680), (4682, 4685), (4688, 4694), (4696, 4696), (4698, 4701), + (4704, 4744), (4746, 4749), (4752, 4784), (4786, 4789), (4792, 4798), + (4800, 4800), (4802, 4805), (4808, 4822), (4824, 4880), (4882, 4885), + (4888, 4954), (4992, 5007), (5024, 5109), (5112, 5117), (5121, 5740), + (5743, 5759), (5761, 5786), (5792, 5866), (5870, 5880), (5888, 5905), + (5919, 5937), (5952, 5969), (5984, 5996), (5998, 6000), (6016, 6067), + (6103, 6103), (6108, 6108), (6176, 6264), (6272, 6312), (6314, 6314), + (6320, 6389), (6400, 6430), (6480, 6509), (6512, 6516), (6528, 6571), + (6576, 6601), (6656, 6678), (6688, 6740), (6823, 6823), (6917, 6963), + (6981, 6988), (7043, 7072), (7086, 7087), (7098, 7141), (7168, 7203), + (7245, 7247), (7258, 7293), (7296, 7306), (7312, 7354), (7357, 7359), + (7401, 7404), (7406, 7411), (7413, 7414), (7418, 7418), (7424, 7615), + (7680, 7957), (7960, 7965), (7968, 8005), (8008, 8013), (8016, 8023), + (8025, 8025), (8027, 8027), (8029, 8029), (8031, 8061), (8064, 8116), + (8118, 8124), (8126, 8126), (8130, 8132), (8134, 8140), (8144, 8147), + (8150, 8155), (8160, 8172), (8178, 8180), (8182, 8188), (8305, 8305), + (8319, 8319), (8335, 8351), (8450, 8450), (8455, 8455), (8458, 8467), + (8469, 8469), (8472, 8477), (8484, 8484), (8486, 8486), (8488, 8488), + (8490, 8505), (8508, 8511), (8517, 8521), (8526, 8526), (8544, 8584), + (11264, 11492), (11499, 11502), (11506, 11507), (11520, 11557), + (11559, 11559), (11565, 11565), (11568, 11623), (11631, 11631), + (11648, 11670), (11680, 11686), (11688, 11694), (11696, 11702), + (11704, 11710), (11712, 11718), (11720, 11726), (11728, 11734), + (11736, 11742), (12293, 12295), (12321, 12329), (12337, 12341), + (12344, 12348), (12353, 12438), (12445, 12447), (12449, 12538), + (12540, 12543), (12549, 12591), (12593, 12686), (12704, 12735), + (12784, 12799), (13312, 19903), (19968, 42124), (42192, 42237), + (42240, 42508), (42512, 42527), (42538, 42539), (42560, 42606), + (42623, 42653), (42656, 42735), (42775, 42783), (42786, 42888), + (42891, 42973), (42978, 42978), (42993, 43009), (43011, 43013), + (43015, 43018), (43020, 43042), (43072, 43123), (43138, 43187), + (43250, 43255), (43259, 43259), (43261, 43262), (43274, 43301), + (43312, 43334), (43360, 43388), (43396, 43442), (43471, 43471), + (43488, 43492), (43494, 43503), (43514, 43518), (43520, 43560), + (43584, 43586), (43588, 43595), (43616, 43638), (43642, 43642), + (43646, 43695), (43697, 43697), (43701, 43702), (43705, 43709), + (43712, 43712), (43714, 43714), (43739, 43741), (43744, 43754), + (43762, 43764), (43777, 43782), (43785, 43790), (43793, 43798), + (43808, 43814), (43816, 43822), (43824, 43866), (43868, 43881), + (43884, 43885), (43888, 44002), (44032, 55203), (55216, 55238), + (55243, 55291), (63744, 64109), (64112, 64217), (64256, 64262), + (64275, 64279), (64285, 64285), (64287, 64296), (64298, 64310), + (64312, 64316), (64318, 64318), (64320, 64321), (64323, 64324), + (64326, 64433), (64467, 64605), (64612, 64829), (64848, 64911), + (64914, 64967), (65008, 65017), (65137, 65137), (65139, 65139), + (65143, 65143), (65145, 65145), (65147, 65147), (65149, 65149), + (65151, 65276), (65313, 65338), (65345, 65370), (65382, 65437), + (65440, 65470), (65474, 65479), (65482, 65487), (65490, 65495), + (65498, 65500), (65536, 65547), (65549, 65574), (65576, 65594), + (65596, 65597), (65599, 65613), (65616, 65629), (65664, 65786), + (65856, 65908), (66176, 66204), (66208, 66256), (66304, 66335), + (66349, 66378), (66384, 66421), (66432, 66461), (66464, 66499), + (66504, 66511), (66513, 66517), (66560, 66717), (66736, 66771), + (66776, 66811), (66816, 66855), (66864, 66915), (66928, 66938), + (66940, 66954), (66956, 66962), (66964, 66965), (66967, 66977), + (66979, 66993), (66995, 67001), (67003, 67004), (67008, 67059), + (67072, 67382), (67392, 67413), (67424, 67431), (67456, 67461), + (67463, 67504), (67506, 67519), (67584, 67589), (67592, 67592), + (67594, 67637), (67639, 67640), (67644, 67644), (67647, 67669), + (67680, 67702), (67712, 67742), (67808, 67826), (67828, 67829), + (67840, 67861), (67872, 67897), (67904, 67929), (67968, 68023), + (68030, 68031), (68096, 68096), (68112, 68115), (68117, 68119), + (68121, 68149), (68192, 68220), (68224, 68252), (68288, 68295), + (68297, 68324), (68352, 68405), (68416, 68437), (68448, 68466), + (68480, 68497), (68608, 68680), (68736, 68786), (68800, 68850), + (68864, 68899), (68938, 68965), (68975, 68997), (69248, 69289), + (69296, 69297), (69314, 69319), (69337, 69358), (69376, 69404), + (69415, 69415), (69424, 69445), (69488, 69505), (69552, 69572), + (69600, 69622), (69635, 69687), (69745, 69746), (69749, 69749), + (69763, 69807), (69840, 69864), (69891, 69926), (69956, 69956), + (69959, 69959), (69968, 70002), (70006, 70006), (70019, 70066), + (70081, 70084), (70106, 70106), (70108, 70108), (70144, 70161), + (70163, 70187), (70207, 70208), (70272, 70278), (70280, 70280), + (70282, 70285), (70287, 70301), (70303, 70312), (70320, 70366), + (70405, 70412), (70415, 70416), (70419, 70440), (70442, 70448), + (70450, 70451), (70453, 70457), (70461, 70461), (70480, 70480), + (70493, 70497), (70528, 70537), (70539, 70539), (70542, 70542), + (70544, 70581), (70583, 70583), (70609, 70609), (70611, 70611), + (70656, 70708), (70727, 70730), (70751, 70753), (70784, 70831), + (70852, 70853), (70855, 70855), (71040, 71086), (71128, 71131), + (71168, 71215), (71236, 71236), (71296, 71338), (71352, 71352), + (71424, 71450), (71488, 71494), (71680, 71723), (71840, 71903), + (71935, 71942), (71945, 71945), (71948, 71955), (71957, 71958), + (71960, 71983), (71999, 71999), (72001, 72001), (72096, 72103), + (72106, 72144), (72161, 72161), (72163, 72163), (72192, 72192), + (72203, 72242), (72250, 72250), (72272, 72272), (72284, 72329), + (72349, 72349), (72368, 72440), (72458, 72458), (72640, 72672), + (72704, 72712), (72714, 72750), (72768, 72768), (72818, 72847), + (72960, 72966), (72968, 72969), (72971, 73008), (73030, 73030), + (73056, 73061), (73063, 73064), (73066, 73097), (73112, 73112), + (73136, 73179), (73201, 73201), (73440, 73458), (73474, 73474), + (73476, 73488), (73490, 73523), (73648, 73648), (73728, 74649), + (74752, 74863), (74869, 75075), (75088, 75398), (77712, 77808), + (77824, 78895), (78913, 78918), (78944, 82938), (82944, 83526), + (90368, 90397), (92160, 92728), (92736, 92766), (92784, 92862), + (92880, 92909), (92928, 92975), (92992, 92995), (93027, 93047), + (93053, 93071), (93504, 93548), (93760, 93823), (93856, 93880), + (93883, 93907), (93952, 94026), (94032, 94032), (94099, 94111), + (94176, 94177), (94179, 94179), (94194, 94198), (94208, 101594), + (101631, 101664), (101760, 101874), (101888, 102801), (102816, 102866), + (110576, 110579), (110581, 110587), (110589, 110590), (110592, 110888), + (110898, 110898), (110928, 110930), (110933, 110933), (110948, 110952), + (110960, 111355), (113664, 113770), (113776, 113788), (113792, 113800), + (113808, 113817), (119808, 119892), (119894, 119964), (119966, 119967), + (119970, 119970), (119973, 119974), (119977, 119980), (119982, 119993), + (119995, 119995), (119997, 120003), (120005, 120069), (120071, 120074), + (120077, 120084), (120086, 120092), (120094, 120121), (120123, 120126), + (120128, 120132), (120134, 120134), (120138, 120144), (120146, 120486), + (120488, 120512), (120514, 120538), (120540, 120570), (120572, 120596), + (120598, 120628), (120630, 120654), (120656, 120686), (120688, 120712), + (120714, 120744), (120746, 120770), (120772, 120779), (122624, 122753), + (122768, 122774), (122829, 122879), (122928, 122989), (123136, 123180), + (123191, 123197), (123214, 123214), (123536, 123565), (123584, 123627), + (124112, 124139), (124368, 124397), (124400, 124400), (124608, 124638), + (124640, 124642), (124644, 124645), (124647, 124653), (124656, 124660), + (124670, 124671), (124896, 124902), (124904, 124907), (124909, 124910), + (124912, 124926), (124928, 125124), (125184, 125251), (125259, 125259), + (126464, 126467), (126469, 126495), (126497, 126498), (126500, 126500), + (126503, 126503), (126505, 126514), (126516, 126519), (126521, 126521), + (126523, 126523), (126530, 126530), (126535, 126535), (126537, 126537), + (126539, 126539), (126541, 126543), (126545, 126546), (126548, 126548), + (126551, 126551), (126553, 126553), (126555, 126555), (126557, 126557), + (126559, 126559), (126561, 126562), (126564, 126564), (126567, 126570), + (126572, 126578), (126580, 126583), (126585, 126588), (126590, 126590), + (126592, 126601), (126603, 126619), (126625, 126627), (126629, 126633), + (126635, 126651), (131072, 173791), (173824, 178206), (178208, 183981), + (183984, 191456), (191472, 192093), (194560, 195101), (196608, 201546), + (201552, 210041), (249856, 261183), +]; diff --git a/third_party/crates/unicode-ident-1.0.24/tests/trie/mod.rs b/third_party/crates/unicode-ident-1.0.26/tests/trie/mod.rs similarity index 100% rename from third_party/crates/unicode-ident-1.0.24/tests/trie/mod.rs rename to third_party/crates/unicode-ident-1.0.26/tests/trie/mod.rs diff --git a/third_party/crates/unicode-ident-1.0.24/tests/trie/trie.rs b/third_party/crates/unicode-ident-1.0.26/tests/trie/trie.rs similarity index 74% rename from third_party/crates/unicode-ident-1.0.24/tests/trie/trie.rs rename to third_party/crates/unicode-ident-1.0.26/tests/trie/trie.rs index 0cca9ec..c385bc8 100644 --- a/third_party/crates/unicode-ident-1.0.24/tests/trie/trie.rs +++ b/third_party/crates/unicode-ident-1.0.26/tests/trie/trie.rs @@ -2,7 +2,7 @@ // // ucd-generate property-bool UCD --include XID_Start,XID_Continue --trie-set // -// Unicode version: 17.0.0. +// Unicode version: 18.0.0. // // ucd-generate 0.3.1 is available on crates.io. @@ -19,7 +19,7 @@ pub const XID_CONTINUE: &'static ::ucd_trie::TrieSet = &::ucd_trie::TrieSet { 0xFFFFFFFFFFFFFFFF, 0xB8DFFFFFFFFFFFFF, 0xFFFFFFFBFFFFD7C0, 0xFFBFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFCFB, 0xFFFFFFFFFFFFFFFF, 0xFFFEFFFFFFFFFFFF, - 0xFFFFFFFF027FFFFF, 0xBFFFFFFFFFFE01FF, 0x787FFFFFF00B6, + 0xFFFFFFFF037FFFFF, 0xBFFFFFFFFFFE19FF, 0x787FFFFFF03B6, 0xFFFFFFFF07FF0000, 0xFFFFC3FFFFFFFFFF, 0xFFFFFFFFFFFFFFFF, 0x9FFFFDFF9FEFFFFF, 0xFFFFFFFFFFFF0000, 0xFFFFFFFFFFFFE7FF, 0x3FFFFFFFFFFFF, 0x243FFFFFFFFFFFFF, @@ -76,7 +76,7 @@ pub const XID_CONTINUE: &'static ::ucd_trie::TrieSet = &::ucd_trie::TrieSet { 0xFFFFFFFBFFFFFFFF, 0xFFFFFFFFFFFFFFFF, 0xFFFEFFCFFFFFFFFF, 0xF3C5FDFFFFF99FEF, 0x5003FFCFB080799F, 0xD36DFDFFFFF987EE, 0x3FFFC05E023987, 0xF3EDFDFFFFFBBFEE, 0xFE00FFCF00013BBF, - 0xF3EDFDFFFFF99FEE, 0x2FFCFB0E0399F, 0xC3FFC718D63DC7EC, 0xFFC000813DC7, + 0xF3EDFDFFFFF99FEE, 0x2FFCFB0F8399F, 0xC3FFC718D63DC7EC, 0xFFC000813DC7, 0xF3FFFDFFFFFDDFFF, 0xFFCF37603DDF, 0xF3EFFDFFFFFDDFEF, 0xEFFCF70603DDF, 0xFFFFFFFFFFFDDFFF, 0xFC00FFCF80F07DDF, 0x2FFBFFFFFC7FFFEE, 0xCFFC0FF5F847F, 0x7FFFFFFFFFFFFFE, 0x3FF7FFF, 0x3FFFFFAFFFFFF7D6, @@ -89,20 +89,20 @@ pub const XID_CONTINUE: &'static ::ucd_trie::TrieSet = &::ucd_trie::TrieSet { 0x3FF308FFFFF, 0xFFFFFFFF03FFB800, 0x1FFFFFFFFFFFFFF, 0xFFFF07FFFFFFFFFF, 0x3FFFFFFFFFFFFF, 0xFFF0FFF7FFFFFFF, 0x1F3FFFFFFFFFC0, 0xFFFF0FFFFFFFFFFF, 0x7FF03FF, 0xFFFFFFFF0FFFFFFF, 0x9FFFFFFF7FFFFFFF, 0xBFFF008003FF03FF, - 0xFFF3FFFFFFF, 0xFF80003FF1FFF, 0xFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFF, + 0x1FFFFFFFFFFFF, 0xFF80003FF1FFF, 0xFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFF, 0x3FFFFFFFFFFFE3FF, 0xE7FFFFFFFFFF07FF, 0x7FFFFFFFFF70000, 0xFFFFFFFF3F3FFFFF, 0x3FFFFFFFAAFF3F3F, 0x5FDFFFFFFFFFFFFF, - 0x1FDC1FFF0FCF1FDC, 0x8000000000003000, 0x8002000000100001, 0x1FFF0000, + 0x1FDC1FFF0FCF1FDC, 0x8000000000003000, 0x8002000000100001, 0xFFFF8000, 0x1FFE21FFF0000, 0xF3FFFD503F2FFC84, 0xFFFFFFFF000043E0, 0x1FF, 0, 0xFF81FFFFFFFFF, 0xFFFF20BFFFFFFFFF, 0x800080FFFFFFFFFF, 0x7F7F7F7F007FFFFF, 0xFFFFFFFF7F7F7F7F, 0x1F3EFFFE000000E0, 0xFFFFFFFEE67FFFFF, 0xFFFEFFFFFFFFFFE0, 0xFFFFFFFF00007FFF, 0xFFFF000000000000, 0x1FFF, 0x3FFFFFFFFFFF0000, 0xFFFFFFF1FFF, 0xBFF0FFFFFFFFFFFF, 0x3FFFFFFFFFFFF, 0xFFFFFFFCFF800000, - 0xFFFFFFFFFFFFF9FF, 0xFFFE00001FFFFFFF, 0x10FFFFFFFFFF, + 0xFFFFFFFFFFFFF9FF, 0xFFFE00043FFFFFFF, 0x10FFFFFFFFFF, 0xE8FFFFFF03FF003F, 0xFFFF3FFFFFFFFFFF, 0x1FFFFFFF000FFFFF, 0x7FFFFFFF03FF8001, 0x7FFFFFFFFFFFFF, 0xFC7FFFFF03FF3FFF, - 0x7CFFFF38000007, 0xFFFF7F7F007E7E7E, 0xFFFF03FFF7FFFFFF, + 0x7CFFFF38000007, 0xFFFF7F7F007E7E7E, 0xFFFF33FFF7FFFFFF, 0x3FF37FFFFFFFFFF, 0xFFFF000FFFFFFFFF, 0xFFFFFFFFFFFF87F, 0x3FFFFFF, 0x5F7FFDFFE0F8007F, 0xFFFFFFFFFFFFFFDB, 0xFFFFFFFFFFF80000, 0xFFFFFFF03FFFFFFF, 0x3FFFFFFFFFFFFFFF, 0xFFFFFFFFFFFF0000, @@ -111,17 +111,17 @@ pub const XID_CONTINUE: &'static ::ucd_trie::TrieSet = &::ucd_trie::TrieSet { 0xFFFFFFE007FFFFFE, 0x7FFFFFFFFFFFFFFF, 0x1CFCFCFC, ], tree3_level1: &[ - 0, 1, 2, 3, 4, 5, 6, 7, 8, 5, 9, 10, 11, 12, 13, 14, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 15, 16, 17, 7, 18, 19, 7, 20, 7, 21, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 16, 17, 18, 7, 19, 20, 7, 21, 7, 22, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 7, 7, 23, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 24, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 22, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, ], tree3_level2: &[ 0, 1, 2, 3, 4, 5, 4, 6, 4, 4, 7, 8, 9, 10, 11, 12, 2, 2, 13, 14, 15, 16, @@ -129,11 +129,11 @@ pub const XID_CONTINUE: &'static ::ucd_trie::TrieSet = &::ucd_trie::TrieSet { 31, 32, 33, 34, 35, 4, 2, 36, 37, 37, 38, 39, 40, 4, 4, 4, 41, 42, 43, 44, 45, 46, 2, 47, 3, 48, 49, 50, 2, 51, 52, 53, 54, 55, 56, 57, 58, 59, 2, 60, 2, 61, 4, 4, 62, 63, 2, 64, 65, 66, 67, 68, 4, 4, 3, 4, 69, 70, 71, - 72, 73, 74, 75, 76, 77, 65, 4, 78, 4, 79, 80, 81, 82, 4, 83, 84, 85, 86, - 4, 4, 4, 87, 88, 89, 90, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 27, - 4, 2, 91, 2, 2, 2, 92, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 93, - 94, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 95, 96, 2, 2, 2, 2, 2, + 72, 73, 74, 75, 76, 77, 65, 78, 79, 4, 80, 81, 82, 83, 4, 84, 85, 86, 87, + 4, 4, 4, 88, 89, 90, 91, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 27, + 4, 2, 92, 2, 2, 2, 93, 2, 2, 2, 2, 68, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 94, + 95, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 96, 97, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 68, 4, 4, 4, 4, 4, 4, 4, @@ -141,52 +141,57 @@ pub const XID_CONTINUE: &'static ::ucd_trie::TrieSet = &::ucd_trie::TrieSet { 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 97, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 65, 98, 75, 99, 19, 100, 101, 4, 4, 4, - 4, 4, 4, 102, 4, 4, 4, 2, 103, 104, 2, 105, 106, 107, 2, 2, 2, 2, 2, 2, 2, + 98, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 65, 99, 75, 100, 19, 101, 102, 4, 4, + 4, 4, 4, 4, 103, 4, 4, 4, 2, 104, 105, 2, 106, 107, 108, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 108, 24, 4, 2, 37, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 109, 110, 4, 2, 37, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 111, 112, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 109, 2, 2, 2, 2, 110, 111, 2, 2, 2, 2, 2, - 112, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 113, 114, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 115, 4, 4, 4, 4, 4, 4, 4, 4, 116, 68, 4, 4, 4, 4, 4, - 4, 4, 117, 118, 4, 4, 119, 4, 4, 4, 4, 4, 4, 2, 120, 121, 122, 123, 124, - 2, 2, 2, 2, 125, 126, 127, 128, 129, 130, 4, 4, 4, 4, 4, 4, 4, 4, 131, - 132, 133, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 134, 4, 4, 4, - 135, 136, 137, 4, 138, 139, 4, 4, 4, 4, 140, 97, 4, 4, 4, 4, 4, 4, 4, 141, - 4, 4, 4, 142, 4, 4, 4, 143, 4, 4, 4, 144, 2, 2, 2, 145, 2, 146, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 147, 148, 149, 4, 4, 4, 4, 4, + 4, 4, 4, 113, 2, 2, 2, 2, 114, 115, 2, 2, 2, 2, 2, 116, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 115, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 150, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 11, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 116, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 151, 2, 2, 2, 2, 2, 2, 2, 2, 2, 152, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 2, 117, 118, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 152, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 153, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 119, 4, 4, 4, 4, 4, 4, 4, 4, 120, 68, 4, 4, 4, 4, 4, 4, 121, 122, 123, 4, + 4, 124, 53, 4, 4, 4, 4, 4, 2, 125, 126, 127, 128, 129, 2, 2, 2, 2, 130, + 131, 132, 133, 134, 135, 4, 4, 4, 4, 4, 4, 4, 4, 136, 137, 138, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 139, 140, 141, 142, 143, + 4, 144, 145, 4, 4, 4, 4, 146, 98, 4, 4, 4, 4, 4, 4, 4, 147, 4, 4, 4, 148, + 4, 4, 4, 149, 4, 4, 4, 150, 2, 2, 2, 151, 2, 152, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 153, 154, 155, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 119, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 156, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 97, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 157, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 120, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 158, 2, 2, 2, 2, 2, 2, 2, 2, 2, 159, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 159, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 160, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 98, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 2, 2, 2, 95, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 96, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, ], tree3_level3: &[ 0xB7FFFF7FFFFFEFFF, 0x3FFF3FFF, 0xFFFFFFFFFFFFFFFF, 0x7FFFFFFFFFFFFFF, 0, @@ -194,12 +199,12 @@ pub const XID_CONTINUE: &'static ::ucd_trie::TrieSet = &::ucd_trie::TrieSet { 0xFFFFE000FFFFFFFF, 0x7FFFFFFFFFF07FF, 0xFFFFFFFF3FFFFFFF, 0x3EFF0F, 0xFFFF03FF3FFFFFFF, 0xFFFFFFFFF0FFFFF, 0xFFFF00FFFFFFFFFF, 0xF7FF000FFFFFFFFF, 0x1BFBFFFBFFB7F7FF, 0xFFFFFFFFFFFFF, 0x7FFFFFFFFFFFFF, - 0xFF003FFFFF, 0x7FDFFFFFFFFFFBF, 0x91BFFFFFFFFFFD3F, 0x7FFFFF003FFFFF, + 0xFF003FFFFF, 0xFFFDFFFFFFFFFFBF, 0x91BFFFFFFFFFFD3F, 0x7FFFFF003FFFFF, 0x7FFFFFFF, 0x37FFFF00000000, 0x3FFFFFF003FFFFF, 0x3FFFFFF, 0xC0FFFFFFFFFFFFFF, 0x873FFFFFFEEFF06F, 0x1FFFFFFF00000000, 0x1FFFFFFF, 0x7FFFFFFEFF, 0x3FFFFFFFFFFFFF, 0x7FFFF003FFFFF, 0x3FFFF, 0x1FF, 0x7FFFFFFFFFFFF, 0x3FF00FFFFFFFFFF, 0xFFFFBE3FFFFFFFFF, 0x3F, - 0x31BFFFFFFFFFF, 0xFC000000000000FC, 0xFFFF00801FFFFFFF, + 0x31BFFFFFFFFFF, 0xFFFF7FFFFE00F8FC, 0xFFFF00801FFFFFFF, 0xFFFF00000001FFFF, 0xFFFF00000000003F, 0x7FFFFF0000001F, 0x803FFFC00000007F, 0x3FF01FFFFFF0004, 0xFFDFFFFFFFFFFFFF, 0x4FFFFFFFFF00F0, 0x17FFDE1F, 0xC0FFFFFFFFFBFFFF, 0x3, 0xFFFF01FFBFFFBD7F, @@ -208,27 +213,29 @@ pub const XID_CONTINUE: &'static ::ucd_trie::TrieSet = &::ucd_trie::TrieSet { 0xFF3FFFFFFFFFFFFF, 0x3F000001, 0x3FF0011, 0x1FFFFFFFFFFFFFF, 0xFFFFF03FF, 0x3FF0FFFE7FFFFFF, 0x7F, 0xFFFFFFFF00000000, 0x800003FFFFFFFFFF, 0xF9BFFFFFFF6FF27F, 0x3FF000F, 0xFFFFFCFF00000000, 0x1BFCFFFFFF, - 0x7FFFFFFFFFFFFFFF, 0xFFFFFFFFFFFF0080, 0xFFFF000023FFFFFF, 0xFF00000000, - 0x3FF0001FFFFFFFF, 0xFF7FFFFFFFFFFDFF, 0xFFFC000003FF0001, + 0x7FFFFFFFFFFFFFFF, 0xFFFFFFFFFFFF0080, 0xFFFF000023FFFFFF, 0x400, + 0xFF00000000, 0x3FF0001FFFFFFFF, 0xFF7FFFFFFFFFFDFF, 0xFFFC000003FF0001, 0x7FFEFFFFFCFFFF, 0xB47FFFFFFFFFFB7F, 0xFFFFFDBF03FF00FF, - 0xFFFF03FF01FB7FFF, 0x3FF0FFFFFFF, 0x7FFFFF00000000, 0xC7FFFFFFFFFDFFFF, - 0x7FF0007, 0x1000000000000, 0x7FFFFFFFFFFF, 0xF, 0xFFFFFFFFFFFF0000, - 0x1FFFFFFFFFFFF, 0xFFFFFFFFFFFF, 0xFFFFFFFF003FFFFF, 0x3FFFFFFFFFFFFFF, - 0xFFFF03FF7FFFFFFF, 0x1F3FFFFFFF03FF, 0xE0FFFFF803FF000F, 0xFFFF, - 0x3FF1FFFFFFFFFFF, 0xF9FFFFFF00000000, 0xFFFFF, 0xFFFFFFFFFFFF87FF, - 0xFFFF80FF, 0x7F001B00000000, 0x80000000003FFFFF, 0x6FEF000000000000, - 0x40007FFFFFFFF, 0xFFFF00F000270000, 0xFFFFFFFFFFFFFFF, - 0x1FFF07FFFFFFFFFF, 0x63FF01FF, 0x3FF000000000000, 0xFFFF3FFFFFFFFFFF, - 0xF807E3E000000000, 0x3C0000000FE7, 0x1C, 0xFFFFFFFFFFDFFFFF, - 0xEBFFDE64DFFFFFFF, 0xFFFFFFFFFFFFFFEF, 0x7BFFFFFFDFDFE7BF, - 0xFFFFFFFFFFFDFC5F, 0xFFFFFF3FFFFFFFFF, 0xF7FFFFFFF7FFFFFD, - 0xFFDFFFFFFFDFFFFF, 0xFFFF7FFFFFFF7FFF, 0xFFFFFDFFFFFFFDFF, - 0xFFFFFFFFFFFFCFF7, 0xF87FFFFFFFFFFFFF, 0x201FFFFFFFFFFF, 0xFFFEF8000010, - 0x7E07FFFFFFF, 0xFFFF07DBF9FFFF7F, 0x3FFFFFFFFFFF, 0x8000, - 0x3FFF1FFFFFFFFFFF, 0x43FF, 0x7FFFFFFF0000, 0x3FFFFFFFFFF0000, - 0x7FFFFFFFFFF0000, 0xC03FFFFF7FFFFFFF, 0x7FFF6F7F00000000, 0x7F001F, - 0x3FF0FFF, 0xAF7FE96FFFFFFEF, 0x5EF7F796AA96EA84, 0xFFFFBEE0FFFFBFF, - 0xFFFFFFFF, 0xFFFF0001FFFFFFFF, 0x3FFFFFFF, 0xFFFFFFFFFFFF07FF, + 0xFFFF03FF01FB7FFF, 0x303FF0FFFFFFF, 0x7FFFFF00000000, 0xC7FFFFFFFFFDFFFF, + 0x7FF0007, 0x1000000000000, 0xFFE0FFFFFFFFFFFF, 0xFFFFFFFFFFFF000F, + 0xFFFFFFFFFFFF0000, 0x1FFFFFFFFFFFF, 0xFFFFFFFFFFFF, 0xFFFFFFFF003FFFFF, + 0x3FFFFFFFFFFFFFF, 0xFFFF03FF7FFFFFFF, 0x1F3FFFFFFF03FF, + 0xE0FFFFF803FF000F, 0xFFFF, 0x3FF1FFFFFFFFFFF, 0xF9FFFFFF00000000, + 0xFFFFF, 0xFFFFFFFFFFFF87FF, 0xFFFF80FF, 0x7F001B00000000, + 0x8000000007FFFFFF, 0x1FFFFFFFF, 0xFFFFFFFF0003FFFF, 0x7FFFF, + 0x6FEF000000000000, 0x401FFFFFFFFFF, 0xFFFF01F000270000, + 0xFFFFFFFFFFFFFFF, 0x1FFF07FFFFFFFFFF, 0x63FF01FF, 0x3FF000000000000, + 0xFFFF3FFFFFFFFFFF, 0x18000000000, 0xF807E3E000000000, 0x3C0000000FE7, + 0x9807001C, 0xFFFFFFFFFFDFFFFF, 0xEBFFDE64DFFFFFFF, 0xFFFFFFFFFFFFFFEF, + 0x7BFFFFFFDFDFE7BF, 0xFFFFFFFFFFFDFC5F, 0xFFFFFF7FFFFFFFFF, + 0xF7FFFFFFF7FFFFFD, 0xFFDFFFFFFFDFFFFF, 0xFFFF7FFFFFFF7FFF, + 0xFFFFFDFFFFFFFDFF, 0xFFFFFFFFFFFFCFF7, 0xF87FFFFFFFFFFFFF, + 0x201FFFFFFFFFFF, 0xFFFEF8000010, 0x7F0003, 0xFFFFFFFFFFFFE000, + 0xFFFF07DBF9FFFF7F, 0x3FFFFFFFFFFF, 0x8000, 0x3FFF1FFFFFFFFFFF, 0x43FF, + 0x7FFFFFFF0000, 0x3FFFFFFFFFF0000, 0x7FFFFFFFFFF0000, 0xC03FFFFF7FFFFFFF, + 0x7FFF6F7F00000000, 0x7F001F, 0x3FF0FFF, 0xAF7FE96FFFFFFEF, + 0x5EF7F796AA96EA84, 0xFFFFBEE0FFFFBFF, 0xFFFFFFFF, 0xFFFFFFFF7FFFFFFF, + 0xFFFF0001FFFFFFFF, 0x3FFFFFFF, 0xFFFFFFFFFFFF07FF, ], }; @@ -240,7 +247,7 @@ pub const XID_START: &'static ::ucd_trie::TrieSet = &::ucd_trie::TrieSet { 0xFFFFFFFFFFFFFFFF, 0x501F0003FFC3, 0, 0xB8DF000000000000, 0xFFFFFFFBFFFFD740, 0xFFBFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFFFF, 0xFFFFFFFFFFFFFC03, 0xFFFFFFFFFFFFFFFF, - 0xFFFEFFFFFFFFFFFF, 0xFFFFFFFF027FFFFF, 0x1FF, 0x787FFFFFF0000, + 0xFFFEFFFFFFFFFFFF, 0xFFFFFFFF037FFFFF, 0x19FF, 0x787FFFFFF0000, 0xFFFFFFFF00000000, 0xFFFEC000000007FF, 0xFFFFFFFFFFFFFFFF, 0x9C00C060002FFFFF, 0xFFFFFFFD0000, 0xFFFFFFFFFFFFE000, 0x2003FFFFFFFFF, 0x43007FFFFFFFC00, @@ -324,17 +331,17 @@ pub const XID_START: &'static ::ucd_trie::TrieSet = &::ucd_trie::TrieSet { 0xFC00C001FFFFFFF8, 0x3FFFFFFFFF, 0xFFFFFFFFF, 0x3FFFFFFFFC00E000, 0xE7FFFFFFFFFF07FF, 0x46FDE0000000000, 0xFFFFFFFF3F3FFFFF, 0x3FFFFFFFAAFF3F3F, 0x5FDFFFFFFFFFFFFF, 0x1FDC1FFF0FCF1FDC, - 0x8002000000000000, 0x1FFF0000, 0xF3FFFD503F2FFC84, 0xFFFFFFFF000043E0, + 0x8002000000000000, 0xFFFF8000, 0xF3FFFD503F2FFC84, 0xFFFFFFFF000043E0, 0x1FF, 0xC781FFFFFFFFF, 0xFFFF20BFFFFFFFFF, 0x80FFFFFFFFFF, 0x7F7F7F7F007FFFFF, 0x7F7F7F7F, 0x1F3E03FE000000E0, 0xFFFFFFFEE07FFFFF, 0xF7FFFFFFFFFFFFFF, 0xFFFEFFFFFFFFFFE0, 0xFFFFFFFF00007FFF, 0xFFFF000000000000, 0x1FFF, 0x3FFFFFFFFFFF0000, 0xC00FFFF1FFF, 0x80007FFFFFFFFFFF, 0xFFFFFFFF3FFFFFFF, 0xFFFFFFFFFFFF, - 0xFFFFFFFCFF800000, 0xFFFFFFFFFFFFF9FF, 0xFFFE00001FFFFFFF, 0x7FFFFF7BB, + 0xFFFFFFFCFF800000, 0xFFFFFFFFFFFFF9FF, 0xFFFE00043FFFFFFF, 0x7FFFFF7BB, 0xFFFFFFFFFFFFC, 0x68FC000000000000, 0xFFFF003FFFFFFC00, 0x1FFFFFFF0000007F, 0x7FFFFFFFFFFF0, 0x7C00FFDF00008000, 0x1FFFFFFFFFF, 0xC47FFFFF00000FF7, 0x3E62FFFFFFFFFFFF, 0x1C07FF38000005, - 0xFFFF7F7F007E7E7E, 0xFFFF03FFF7FFFFFF, 0x7FFFFFFFF, 0xFFFF000FFFFFFFFF, + 0xFFFF7F7F007E7E7E, 0xFFFF33FFF7FFFFFF, 0x7FFFFFFFF, 0xFFFF000FFFFFFFFF, 0xFFFFFFFFFFFF87F, 0xFFFF3FFFFFFFFFFF, 0x3FFFFFF, 0x5F7FFDFFA0F8007F, 0xFFFFFFFFFFFFFFDB, 0x3FFFFFFFFFFFF, 0xFFFFFFFFFFF80000, 0xFFFFFFF03FFFFFFF, 0x3FFFFFFFFFFFFFFF, 0xFFFFFFFFFFFF0000, @@ -343,8 +350,9 @@ pub const XID_START: &'static ::ucd_trie::TrieSet = &::ucd_trie::TrieSet { 0x7FFFFFFF3FFFFFFF, 0x1CFCFCFC, ], tree3_level1: &[ - 0, 1, 2, 3, 4, 5, 6, 7, 8, 5, 9, 10, 5, 11, 12, 5, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 13, 14, 15, 7, 16, 17, 7, 18, 7, 19, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 5, 12, 13, 5, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 14, 15, 16, 7, 17, 18, 7, 19, 7, 20, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 7, 7, 21, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, @@ -352,8 +360,7 @@ pub const XID_START: &'static ::ucd_trie::TrieSet = &::ucd_trie::TrieSet { 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, ], tree3_level2: &[ 0, 1, 2, 3, 4, 5, 4, 4, 4, 4, 6, 7, 8, 9, 10, 11, 2, 2, 12, 13, 14, 15, @@ -361,56 +368,61 @@ pub const XID_START: &'static ::ucd_trie::TrieSet = &::ucd_trie::TrieSet { 30, 31, 32, 33, 34, 4, 2, 35, 36, 36, 37, 38, 39, 4, 4, 4, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 23, 57, 58, 59, 60, 5, 61, 62, 63, 4, 4, 64, 65, 62, 66, 67, 4, 68, 69, 4, 4, 70, 4, 71, 72, 73, - 74, 75, 76, 77, 78, 79, 80, 4, 4, 4, 81, 82, 83, 84, 4, 85, 86, 87, 88, 4, - 4, 4, 89, 90, 4, 91, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 26, 4, - 2, 64, 2, 2, 2, 92, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 93, 94, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 62, 95, 2, 2, 2, 2, 2, 2, + 74, 75, 76, 77, 78, 79, 80, 81, 4, 4, 82, 83, 84, 85, 4, 86, 87, 88, 89, + 4, 4, 4, 90, 91, 4, 92, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 26, + 4, 2, 93, 2, 2, 2, 94, 2, 2, 2, 2, 69, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 95, + 96, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 62, 97, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 69, 4, 4, 4, 4, 4, 4, 4, 4, + 2, 2, 2, 2, 2, 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 69, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 96, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 80, 97, 98, 99, 62, 100, 84, 4, 4, 4, 4, 4, - 4, 101, 4, 4, 4, 2, 102, 103, 2, 104, 105, 106, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 98, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 80, 99, 100, 101, 62, 102, 85, 4, 4, + 4, 4, 4, 4, 103, 4, 4, 4, 2, 104, 105, 2, 106, 107, 108, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 107, 23, 4, 2, 36, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 109, 82, 4, 2, 36, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 110, 111, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 108, 2, 2, 2, 2, 109, 110, 2, 2, 2, 2, 2, 111, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 112, 113, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 114, 115, - 116, 117, 118, 2, 2, 2, 2, 119, 120, 121, 122, 123, 124, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 125, 4, - 4, 4, 126, 127, 4, 4, 128, 129, 4, 4, 4, 4, 99, 70, 4, 4, 4, 4, 4, 4, 4, - 130, 4, 4, 4, 131, 4, 4, 4, 132, 4, 4, 4, 133, 2, 2, 2, 134, 2, 135, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 136, 137, 138, 4, 4, 4, 4, - 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 139, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 10, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 140, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 141, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 96, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, - 2, 2, 96, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 142, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 143, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 112, 2, 2, 2, 2, 113, 114, 2, 2, 2, 2, 2, 115, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 2, 116, 117, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 118, 119, 120, 121, 122, 2, + 2, 2, 2, 123, 124, 125, 126, 127, 128, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 129, 130, 131, 132, + 4, 4, 133, 134, 4, 4, 4, 4, 101, 70, 4, 4, 4, 4, 4, 4, 4, 135, 4, 4, 4, + 136, 4, 4, 4, 137, 4, 4, 4, 138, 2, 2, 2, 139, 2, 140, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 141, 142, 143, 4, 4, 4, 4, 4, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 144, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 145, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 146, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 147, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 98, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, + 98, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 148, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 149, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, ], tree3_level3: &[ 0xB7FFFF7FFFFFEFFF, 0x3FFF3FFF, 0xFFFFFFFFFFFFFFFF, 0x7FFFFFFFFFFFFFF, 0, @@ -418,11 +430,11 @@ pub const XID_START: &'static ::ucd_trie::TrieSet = &::ucd_trie::TrieSet { 0x3FFFFFFFFF07FF, 0xFFFFFFFF3FFFFFFF, 0x3EFF0F, 0xFFFF00003FFFFFFF, 0xFFFFFFFFF0FFFFF, 0xFFFF00FFFFFFFFFF, 0xF7FF000FFFFFFFFF, 0x1BFBFFFBFFB7F7FF, 0xFFFFFFFFFFFFF, 0x7FFFFFFFFFFFFF, 0xFF003FFFFF, - 0x7FDFFFFFFFFFFBF, 0x91BFFFFFFFFFFD3F, 0x7FFFFF003FFFFF, 0x7FFFFFFF, + 0xFFFDFFFFFFFFFFBF, 0x91BFFFFFFFFFFD3F, 0x7FFFFF003FFFFF, 0x7FFFFFFF, 0x37FFFF00000000, 0x3FFFFFF003FFFFF, 0x3FFFFFF, 0xC0FFFFFFFFFFFFFF, 0x3FFFFFFEEF0001, 0x1FFFFFFF00000000, 0x1FFFFFFF, 0x1FFFFFFEFF, 0x3FFFFFFFFFFFFF, 0x7FFFF003FFFFF, 0x3FFFF, 0x1FF, 0x7FFFFFFFFFFFF, - 0xFFFFFFFFF, 0xFFFF803FFFFFFC00, 0x3F, 0x303FFFFFFFFFF, 0xFC, + 0xFFFFFFFFF, 0xFFFF803FFFFFFC00, 0x3F, 0x303FFFFFFFFFF, 0x7FFFFE0000FC, 0xFFFF00801FFFFFFF, 0xFFFF00000000003F, 0xFFFF000000000003, 0x7FFFFF0000001F, 0xFFFFFFFFFFFFF8, 0x26000000000000, 0xFFFFFFFFFFF8, 0x1FFFFFF0000, 0x7FFFFFFFF8, 0x47FFFFFFFF0090, 0x7FFFFFFFFFFF8, @@ -432,22 +444,24 @@ pub const XID_START: &'static ::ucd_trie::TrieSet = &::ucd_trie::TrieSet { 0x7FFFFFF, 0x7F, 0xFFFFFFFFFFF, 0xFFFFFFFF00000000, 0x80000000FFFFFFFF, 0x8000FFFFFF6FF27F, 0x2, 0xFFFFFCFF00000000, 0xA0001FFFF, 0x407FFFFFFFFF801, 0xFFFFFFFFF0010000, 0xFFFF0000200003FF, - 0x1FFFFFFFFFFFFFF, 0x1FFFFFFFF, 0x7FFFFFFFFDFF, 0xFFFC000000000001, + 0x1FFFFFFFFFFFFFF, 0x400, 0x1FFFFFFFF, 0x7FFFFFFFFDFF, 0xFFFC000000000001, 0xFFFF, 0x1FFFFFFFFFB7F, 0xFFFFFDBF00000040, 0xFFFF0000010003FF, - 0xFFFFFFF, 0x7FFFF00000000, 0xFFFFFFFFDFFF4, 0x1000000000000, 0xF, - 0xFFFFFFFFFFFF0000, 0x1FFFFFFFFFFFF, 0xFFFFFFFF0000007E, 0x3FFFFFFF, - 0xFFFF00007FFFFFFF, 0x7FFFFFFFFFFFFFFF, 0x3FFFFFFF0000, - 0xE0FFFFF80000000F, 0x1FFFFFFFFFFF, 0xF9FFFFFF00000000, 0xFFFFF, 0x107FF, - 0xFFF80000, 0x7C000B00000000, 0x80000000003FFFFF, 0x6FEF000000000000, - 0x40007FFFFFFFF, 0xFFFF00F000270000, 0xFFFFFFFFFFFFFFF, + 0x200000FFFFFFF, 0x7FFFF00000000, 0xFFFFFFFFDFFF4, 0x1000000000000, + 0xFFE0FFFFFFFFFFFF, 0xFFFFFFFFFFFF000F, 0xFFFFFFFFFFFF0000, + 0x1FFFFFFFFFFFF, 0xFFFFFFFF0000007E, 0x3FFFFFFF, 0xFFFF00007FFFFFFF, + 0x7FFFFFFFFFFFFFFF, 0x3FFFFFFF0000, 0xE0FFFFF80000000F, 0x1FFFFFFFFFFF, + 0xF9FFFFFF00000000, 0xFFFFF, 0x107FF, 0xFFF80000, 0x7C000B00000000, + 0x8000000007FFFFFF, 0xFFFFFFFF0003FFFF, 0x7FFFF, 0x6FEF000000000000, + 0x401FFFFFFFFFF, 0xFFFF01F000270000, 0xFFFFFFFFFFFFFFF, 0x1FFF07FFFFFFFFFF, 0x3FF01FF, 0xFFFFFFFFFFDFFFFF, 0xEBFFDE64DFFFFFFF, 0xFFFFFFFFFFFFFFEF, 0x7BFFFFFFDFDFE7BF, 0xFFFFFFFFFFFDFC5F, - 0xFFFFFF3FFFFFFFFF, 0xF7FFFFFFF7FFFFFD, 0xFFDFFFFFFFDFFFFF, - 0xFFFF7FFFFFFF7FFF, 0xFFFFFDFFFFFFFDFF, 0xFF7, 0x7E07FFFFFFF, - 0xFFFF000000000000, 0x3FFFFFFFFFFF, 0x3F801FFFFFFFFFFF, 0x4000, - 0xFFFFFFF0000, 0x13FFFFFFF0000, 0xC01F3FB77FFFFFFF, 0x7FFF6F7F00000000, - 0x1F, 0x80F, 0xAF7FE96FFFFFFEF, 0x5EF7F796AA96EA84, 0xFFFFBEE0FFFFBFF, - 0xFFFFFFFF, 0xFFFF3FFFFFFFFFFF, 0xFFFF0001FFFFFFFF, 0xFFFFFFFFFFFF07FF, + 0xFFFFFF7FFFFFFFFF, 0xF7FFFFFFF7FFFFFD, 0xFFDFFFFFFFDFFFFF, + 0xFFFF7FFFFFFF7FFF, 0xFFFFFDFFFFFFFDFF, 0xFF7, 0x7F0003, + 0xFFFFFFFFFFFFE000, 0xFFFF000000000000, 0x3FFFFFFFFFFF, + 0x3F801FFFFFFFFFFF, 0x4000, 0xFFFFFFF0000, 0x13FFFFFFF0000, + 0xC01F3FB77FFFFFFF, 0x7FFF6F7F00000000, 0x1F, 0x80F, 0xAF7FE96FFFFFFEF, + 0x5EF7F796AA96EA84, 0xFFFFBEE0FFFFBFF, 0xFFFFFFFF, 0xFFFFFFFF7FFFFFFF, + 0xFFFF3FFFFFFFFFFF, 0xFFFF0001FFFFFFFF, 0xFFFFFFFFFFFF07FF, 0x3FFFFFFFFFFFFFF, ], }; -- 2.47.3