[INFO] crate las 0.7.1 is already in cache [INFO] testing las-0.7.1 against beta-2020-07-24 for beta-1.46-1 [INFO] extracting crate las 0.7.1 into /workspace/builds/worker-14/source [INFO] validating manifest of crates.io crate las 0.7.1 on toolchain beta-2020-07-24 [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2020-07-24" "read-manifest" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] started tweaking crates.io crate las 0.7.1 [INFO] finished tweaking crates.io crate las 0.7.1 [INFO] tweaked toml for crates.io crate las 0.7.1 written to /workspace/builds/worker-14/source/Cargo.toml [INFO] crate crates.io crate las 0.7.1 already has a lockfile, it will not be regenerated [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2020-07-24" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-14/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-14/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env@sha256:a636fd89d022f18117e1dc8fb37a0a009933cdbbe082814857f0e2024962d47c" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2020-07-24" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] c555714ab167c4294f468b2fb3d1c3309e42cb68a6a26a148ae35538d42a7e7a [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "c555714ab167c4294f468b2fb3d1c3309e42cb68a6a26a148ae35538d42a7e7a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "c555714ab167c4294f468b2fb3d1c3309e42cb68a6a26a148ae35538d42a7e7a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "c555714ab167c4294f468b2fb3d1c3309e42cb68a6a26a148ae35538d42a7e7a", kill_on_drop: false }` [INFO] [stdout] c555714ab167c4294f468b2fb3d1c3309e42cb68a6a26a148ae35538d42a7e7a [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-14/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-14/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env@sha256:a636fd89d022f18117e1dc8fb37a0a009933cdbbe082814857f0e2024962d47c" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2020-07-24" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] cba4d652139f72aca5e14e8209b1ae4566e6566463040d1dfe744e258abbe506 [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "cba4d652139f72aca5e14e8209b1ae4566e6566463040d1dfe744e258abbe506", kill_on_drop: false }` [INFO] [stderr] Compiling uuid v0.8.1 [INFO] [stderr] Compiling time v0.1.42 [INFO] [stderr] Compiling chrono v0.4.7 [INFO] [stderr] Compiling las v0.7.1 (/opt/rustwide/workdir) [INFO] [stdout] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string() [INFO] [stdout] --> src/header/mod.rs:64:1 [INFO] [stdout] | [INFO] [stdout] 64 | / quick_error! { [INFO] [stdout] 65 | | /// Header-specific errors. [INFO] [stdout] 66 | | #[derive(Clone, Copy, Debug)] [INFO] [stdout] 67 | | pub enum Error { [INFO] [stdout] ... | [INFO] [stdout] 122 | | } [INFO] [stdout] 123 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string() [INFO] [stdout] --> src/point/mod.rs:27:1 [INFO] [stdout] | [INFO] [stdout] 27 | / quick_error! { [INFO] [stdout] 28 | | /// Point-specific errors [INFO] [stdout] 29 | | #[derive(Debug, Clone, Copy)] [INFO] [stdout] 30 | | pub enum Error { [INFO] [stdout] ... | [INFO] [stdout] 62 | | } [INFO] [stdout] 63 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string() [INFO] [stdout] --> src/writer.rs:45:1 [INFO] [stdout] | [INFO] [stdout] 45 | / quick_error! { [INFO] [stdout] 46 | | /// Writer errors. [INFO] [stdout] 47 | | #[derive(Debug)] [INFO] [stdout] 48 | | pub enum Error { [INFO] [stdout] ... | [INFO] [stdout] 65 | | } [INFO] [stdout] 66 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] {"reason":"compiler-message","package_id":"las 0.7.1 (path+file:///opt/rustwide/workdir)","target":{"kind":["lib"],"crate_types":["lib"],"name":"las","src_path":"/opt/rustwide/workdir/src/lib.rs","edition":"2015","doctest":true},"message":{"message":"use of deprecated item 'std::error::Error::description': use the Display impl or to_string()","code":{"code":"deprecated","explanation":null},"level":"warning","spans":[{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":25467,"byte_end":25499,"line_start":737,"line_end":737,"column_start":29,"column_end":61,"is_primary":true,"text":[{"text":" write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":29,"highlight_end":61}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":25204,"byte_end":25293,"line_start":729,"line_end":731,"column_start":9,"column_end":27,"is_primary":false,"text":[{"text":" quick_error!(FIND_DISPLAY_IMPL","highlight_start":9,"highlight_end":39},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":25204,"byte_end":25293,"line_start":729,"line_end":731,"column_start":9,"column_end":27,"is_primary":false,"text":[{"text":" quick_error!(FIND_DISPLAY_IMPL","highlight_start":9,"highlight_end":39},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":22489,"byte_end":22619,"line_start":655,"line_end":657,"column_start":46,"column_end":48,"is_primary":false,"text":[{"text":" let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":46,"highlight_end":76},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":48}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":12566,"byte_end":12701,"line_start":423,"line_end":425,"column_start":9,"column_end":17,"is_primary":false,"text":[{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":9,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":17070,"byte_end":17341,"line_start":524,"line_end":528,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":" quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":13646,"byte_end":13881,"line_start":451,"line_end":455,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":" quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":13112,"byte_end":13316,"line_start":438,"line_end":441,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":" quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":13112,"byte_end":13316,"line_start":438,"line_end":441,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":" quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":17070,"byte_end":17341,"line_start":524,"line_end":528,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":" quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":15092,"byte_end":15333,"line_start":483,"line_end":487,"column_start":9,"column_end":11,"is_primary":false,"text":[{"text":" quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":13646,"byte_end":13881,"line_start":451,"line_end":455,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":" quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":13112,"byte_end":13316,"line_start":438,"line_end":441,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":" quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":13112,"byte_end":13316,"line_start":438,"line_end":441,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":" quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":17070,"byte_end":17341,"line_start":524,"line_end":528,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":" quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":15092,"byte_end":15333,"line_start":483,"line_end":487,"column_start":9,"column_end":11,"is_primary":false,"text":[{"text":" quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":13646,"byte_end":13881,"line_start":451,"line_end":455,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":" quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":13112,"byte_end":13316,"line_start":438,"line_end":441,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":" quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":17070,"byte_end":17341,"line_start":524,"line_end":528,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":" quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":15092,"byte_end":15333,"line_start":483,"line_end":487,"column_start":9,"column_end":11,"is_primary":false,"text":[{"text":" quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":13646,"byte_end":13881,"line_start":451,"line_end":455,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":" quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":13112,"byte_end":13316,"line_start":438,"line_end":441,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":" quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":17070,"byte_end":17341,"line_start":524,"line_end":528,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":" quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":15092,"byte_end":15333,"line_start":483,"line_end":487,"column_start":9,"column_end":11,"is_primary":false,"text":[{"text":" quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":13646,"byte_end":13881,"line_start":451,"line_end":455,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":" quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":13112,"byte_end":13316,"line_start":438,"line_end":441,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":" quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":17070,"byte_end":17341,"line_start":524,"line_end":528,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":" quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":15092,"byte_end":15333,"line_start":483,"line_end":487,"column_start":9,"column_end":11,"is_primary":false,"text":[{"text":" quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":13646,"byte_end":13881,"line_start":451,"line_end":455,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":" quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":13112,"byte_end":13316,"line_start":438,"line_end":441,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":" quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":17070,"byte_end":17341,"line_start":524,"line_end":528,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":" quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":15092,"byte_end":15333,"line_start":483,"line_end":487,"column_start":9,"column_end":11,"is_primary":false,"text":[{"text":" quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":13646,"byte_end":13881,"line_start":451,"line_end":455,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":" quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":13112,"byte_end":13316,"line_start":438,"line_end":441,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":" quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":17070,"byte_end":17341,"line_start":524,"line_end":528,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":" quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":15092,"byte_end":15333,"line_start":483,"line_end":487,"column_start":9,"column_end":11,"is_primary":false,"text":[{"text":" quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":13646,"byte_end":13881,"line_start":451,"line_end":455,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":" quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":13112,"byte_end":13316,"line_start":438,"line_end":441,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":" quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":17070,"byte_end":17341,"line_start":524,"line_end":528,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":" quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":15092,"byte_end":15333,"line_start":483,"line_end":487,"column_start":9,"column_end":11,"is_primary":false,"text":[{"text":" quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":13646,"byte_end":13881,"line_start":451,"line_end":455,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":" quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":13112,"byte_end":13316,"line_start":438,"line_end":441,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":" quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":17070,"byte_end":17341,"line_start":524,"line_end":528,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":" quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":15092,"byte_end":15333,"line_start":483,"line_end":487,"column_start":9,"column_end":11,"is_primary":false,"text":[{"text":" quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":13646,"byte_end":13881,"line_start":451,"line_end":455,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":" quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":13112,"byte_end":13316,"line_start":438,"line_end":441,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":" quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":17070,"byte_end":17341,"line_start":524,"line_end":528,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":" quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":13646,"byte_end":13881,"line_start":451,"line_end":455,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":" quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":13112,"byte_end":13316,"line_start":438,"line_end":441,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":" quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":17070,"byte_end":17341,"line_start":524,"line_end":528,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":" quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":15092,"byte_end":15333,"line_start":483,"line_end":487,"column_start":9,"column_end":11,"is_primary":false,"text":[{"text":" quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":13646,"byte_end":13881,"line_start":451,"line_end":455,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":" quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":13112,"byte_end":13316,"line_start":438,"line_end":441,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":" quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":17070,"byte_end":17341,"line_start":524,"line_end":528,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":" quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":15092,"byte_end":15333,"line_start":483,"line_end":487,"column_start":9,"column_end":11,"is_primary":false,"text":[{"text":" quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":13646,"byte_end":13881,"line_start":451,"line_end":455,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":" quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":13112,"byte_end":13316,"line_start":438,"line_end":441,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":" quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":17070,"byte_end":17341,"line_start":524,"line_end":528,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":" quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":15092,"byte_end":15333,"line_start":483,"line_end":487,"column_start":9,"column_end":11,"is_primary":false,"text":[{"text":" quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":13646,"byte_end":13881,"line_start":451,"line_end":455,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":" quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":13112,"byte_end":13316,"line_start":438,"line_end":441,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":" quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":17070,"byte_end":17341,"line_start":524,"line_end":528,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":" quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":15092,"byte_end":15333,"line_start":483,"line_end":487,"column_start":9,"column_end":11,"is_primary":false,"text":[{"text":" quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":13646,"byte_end":13881,"line_start":451,"line_end":455,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":" quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":13112,"byte_end":13316,"line_start":438,"line_end":441,"column_start":9,"column_end":34,"is_primary":false,"text":[{"text":" quick_error!(SORT [$( $def )*]","highlight_start":9,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8949,"byte_end":9061,"line_start":312,"line_end":314,"column_start":9,"column_end":36,"is_primary":false,"text":[{"text":" quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":9,"highlight_end":57},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":{"span":{"file_name":"src/error.rs","byte_start":90,"byte_end":3683,"line_start":5,"line_end":104,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"quick_error! {","highlight_start":1,"highlight_end":15},{"text":" /// Crate-specific error enum.","highlight_start":1,"highlight_end":35},{"text":" #[derive(Debug)]","highlight_start":1,"highlight_end":21},{"text":" pub enum Error {","highlight_start":1,"highlight_end":21},{"text":" /// Feature is not supported by version.","highlight_start":1,"highlight_end":49},{"text":" Feature(version: Version, feature: &'static str) {","highlight_start":1,"highlight_end":59},{"text":" description(\"feature is not supported by version\")","highlight_start":1,"highlight_end":63},{"text":" display(\"feature {} is not supported by version {}\", feature, version)","highlight_start":1,"highlight_end":83},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" /// A wrapper around `las::header::Error`.","highlight_start":1,"highlight_end":51},{"text":" Header(err: header::Error) {","highlight_start":1,"highlight_end":37},{"text":" from()","highlight_start":1,"highlight_end":19},{"text":" cause(err)","highlight_start":1,"highlight_end":23},{"text":" description(\"las header error\")","highlight_start":1,"highlight_end":44},{"text":" display(\"header error: {}\", err)","highlight_start":1,"highlight_end":45},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" /// The value can't have the inverse transform applied.","highlight_start":1,"highlight_end":64},{"text":" InverseTransform(n: f64, transform: Transform) {","highlight_start":1,"highlight_end":57},{"text":" description(\"cannot apply inverse transform\")","highlight_start":1,"highlight_end":58},{"text":" display(\"the transform {} cannot be inversely applied to {}\", transform, n)","highlight_start":1,"highlight_end":88},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" /// Wrapper around `std::io::Error`.","highlight_start":1,"highlight_end":45},{"text":" Io(err: io::Error) {","highlight_start":1,"highlight_end":29},{"text":" from()","highlight_start":1,"highlight_end":19},{"text":" cause(err)","highlight_start":1,"highlight_end":23},{"text":" description(err.description())","highlight_start":1,"highlight_end":43},{"text":" display(\"io error: {}\", err)","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" /// The las data is laszip compressed.","highlight_start":1,"highlight_end":47},{"text":" Laszip {","highlight_start":1,"highlight_end":17},{"text":" description(\"the las data is laszip compressed, and laszip compression is not supported by this build\")","highlight_start":1,"highlight_end":116},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" /// This string is not ASCII.","highlight_start":1,"highlight_end":38},{"text":" NotAscii(s: String) {","highlight_start":1,"highlight_end":30},{"text":" description(\"the string is not an ascii string\")","highlight_start":1,"highlight_end":61},{"text":" display(\"this string is not ascii: {}\", s)","highlight_start":1,"highlight_end":55},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" /// These bytes are not zero-filled.","highlight_start":1,"highlight_end":45},{"text":" NotZeroFilled(bytes: Vec) {","highlight_start":1,"highlight_end":40},{"text":" description(\"the bytes are not zero filled\")","highlight_start":1,"highlight_end":57},{"text":" display(\"the bytes are not zero filled: {:?}\", bytes)","highlight_start":1,"highlight_end":66},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" /// Wrapper around `las::point::Error`.","highlight_start":1,"highlight_end":48},{"text":" Point(err: point::Error) {","highlight_start":1,"highlight_end":35},{"text":" from()","highlight_start":1,"highlight_end":19},{"text":" cause(err)","highlight_start":1,"highlight_end":23},{"text":" description(\"point error\")","highlight_start":1,"highlight_end":39},{"text":" display(\"point error: {}\", err)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" /// Wrapper around `las::reader::Error`.","highlight_start":1,"highlight_end":49},{"text":" Reader(err: reader::Error) {","highlight_start":1,"highlight_end":37},{"text":" from()","highlight_start":1,"highlight_end":19},{"text":" cause(err)","highlight_start":1,"highlight_end":23},{"text":" description(\"reader error\")","highlight_start":1,"highlight_end":40},{"text":" display(\"reader error: {}\", err)","highlight_start":1,"highlight_end":45},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" /// This string is too long for the target slice.","highlight_start":1,"highlight_end":58},{"text":" StringTooLong(s: String, len: usize) {","highlight_start":1,"highlight_end":47},{"text":" description(\"the string is too long for the target slice\")","highlight_start":1,"highlight_end":71},{"text":" display(\"string is too long for a slice of length {}: {}\", len, s)","highlight_start":1,"highlight_end":79},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" /// Wrapper around `std::str::Utf8Error`.","highlight_start":1,"highlight_end":50},{"text":" Utf8(err: str::Utf8Error) {","highlight_start":1,"highlight_end":36},{"text":" from()","highlight_start":1,"highlight_end":19},{"text":" cause(err)","highlight_start":1,"highlight_end":23},{"text":" description(err.description())","highlight_start":1,"highlight_end":43},{"text":" display(\"utf8 error: {}\", err)","highlight_start":1,"highlight_end":43},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" /// Wrapper around `las::writer::Error`.","highlight_start":1,"highlight_end":49},{"text":" Writer(err: writer::Error) {","highlight_start":1,"highlight_end":37},{"text":" from()","highlight_start":1,"highlight_end":19},{"text":" cause(err)","highlight_start":1,"highlight_end":23},{"text":" description(\"writer error\")","highlight_start":1,"highlight_end":40},{"text":" display(\"writer error: {}\", err)","highlight_start":1,"highlight_end":45},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" /// Wrapper around `las::vlr::Error`.","highlight_start":1,"highlight_end":46},{"text":" Vlr(err: vlr::Error) {","highlight_start":1,"highlight_end":31},{"text":" from()","highlight_start":1,"highlight_end":19},{"text":" cause(err)","highlight_start":1,"highlight_end":23},{"text":" description(\"vlr error\")","highlight_start":1,"highlight_end":37},{"text":" display(\"vlr error: {}\", err)","highlight_start":1,"highlight_end":42},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" /// Wrapper around `laz::LasZipError`","highlight_start":1,"highlight_end":46},{"text":" #[cfg(feature = \"laz\")]","highlight_start":1,"highlight_end":32},{"text":" LasZipError(err: laz::LasZipError) {","highlight_start":1,"highlight_end":45},{"text":" description(\"Error related to LAZ\")","highlight_start":1,"highlight_end":48},{"text":" display(\"LasZipError: {}\", err)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":" /// The Laszip vlr was not found, the points cannot be decompressed","highlight_start":1,"highlight_end":76},{"text":" #[cfg(feature = \"laz\")]","highlight_start":1,"highlight_end":32},{"text":" LasZipVlrNotFound {","highlight_start":1,"highlight_end":28},{"text":" description(\"Expected a Laszip vlr to decompress points, but none was found\")","highlight_start":1,"highlight_end":90},{"text":" display(\"Expected a Laszip vlr to decompress points, but none was found\")","highlight_start":1,"highlight_end":86},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" }","highlight_start":1,"highlight_end":6},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (","highlight_start":1,"highlight_end":6},{"text":" WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":" $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":" fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":" $strname(err)","highlight_start":1,"highlight_end":30},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" self.0.description()","highlight_start":1,"highlight_end":37},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" self.0.cause()","highlight_start":1,"highlight_end":31},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":" (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":" $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":" $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":" buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [ ]);","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":" (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" pub enum $name {","highlight_start":1,"highlight_end":25},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":" (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" enum $name {","highlight_start":1,"highlight_end":21},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Unit variant","highlight_start":1,"highlight_end":20},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Tuple variant","highlight_start":1,"highlight_end":21},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Struct variant","highlight_start":1,"highlight_end":22},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":" $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":" $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":" )*}","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":" fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":" display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":" $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":" write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $expr","highlight_start":1,"highlight_end":14},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":" $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" stringify!($item)","highlight_start":1,"highlight_end":26},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" Some($expr)","highlight_start":1,"highlight_end":20},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":" { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" None","highlight_start":1,"highlight_end":13},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":" fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":" $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":" [ ]","highlight_start":1,"highlight_end":12},{"text":" { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":" $name::$item","highlight_start":1,"highlight_end":29},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: UNIT [ ]","highlight_start":1,"highlight_end":35},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context)","highlight_start":1,"highlight_end":74},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":" ) => { };","highlight_start":1,"highlight_end":14},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":" [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item","highlight_start":1,"highlight_end":21},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":" // anything else.","highlight_start":1,"highlight_end":22},{"text":" // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":" // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":" (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":" -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":" -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":" // Utility functions","highlight_start":1,"highlight_end":25},{"text":" (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (","highlight_start":1,"highlight_end":6},{"text":" WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":" $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":" fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":" $strname(err)","highlight_start":1,"highlight_end":30},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" self.0.description()","highlight_start":1,"highlight_end":37},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" self.0.cause()","highlight_start":1,"highlight_end":31},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":" (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":" $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":" $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":" buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [ ]);","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":" (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" pub enum $name {","highlight_start":1,"highlight_end":25},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":" (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" enum $name {","highlight_start":1,"highlight_end":21},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Unit variant","highlight_start":1,"highlight_end":20},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Tuple variant","highlight_start":1,"highlight_end":21},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Struct variant","highlight_start":1,"highlight_end":22},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":" $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":" $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":" )*}","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":" fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":" display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":" $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":" write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $expr","highlight_start":1,"highlight_end":14},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":" $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" stringify!($item)","highlight_start":1,"highlight_end":26},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" Some($expr)","highlight_start":1,"highlight_end":20},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":" { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" None","highlight_start":1,"highlight_end":13},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":" fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":" $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":" [ ]","highlight_start":1,"highlight_end":12},{"text":" { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":" $name::$item","highlight_start":1,"highlight_end":29},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: UNIT [ ]","highlight_start":1,"highlight_end":35},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context)","highlight_start":1,"highlight_end":74},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":" ) => { };","highlight_start":1,"highlight_end":14},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":" [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item","highlight_start":1,"highlight_end":21},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":" // anything else.","highlight_start":1,"highlight_end":22},{"text":" // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":" // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":" (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":" -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":" -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":" // Utility functions","highlight_start":1,"highlight_end":25},{"text":" (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (","highlight_start":1,"highlight_end":6},{"text":" WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":" $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":" fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":" $strname(err)","highlight_start":1,"highlight_end":30},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" self.0.description()","highlight_start":1,"highlight_end":37},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" self.0.cause()","highlight_start":1,"highlight_end":31},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":" (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":" $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":" $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":" buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [ ]);","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":" (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" pub enum $name {","highlight_start":1,"highlight_end":25},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":" (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" enum $name {","highlight_start":1,"highlight_end":21},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Unit variant","highlight_start":1,"highlight_end":20},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Tuple variant","highlight_start":1,"highlight_end":21},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Struct variant","highlight_start":1,"highlight_end":22},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":" $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":" $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":" )*}","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":" fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":" display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":" $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":" write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $expr","highlight_start":1,"highlight_end":14},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":" $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" stringify!($item)","highlight_start":1,"highlight_end":26},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" Some($expr)","highlight_start":1,"highlight_end":20},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":" { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" None","highlight_start":1,"highlight_end":13},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":" fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":" $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":" [ ]","highlight_start":1,"highlight_end":12},{"text":" { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":" $name::$item","highlight_start":1,"highlight_end":29},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: UNIT [ ]","highlight_start":1,"highlight_end":35},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context)","highlight_start":1,"highlight_end":74},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":" ) => { };","highlight_start":1,"highlight_end":14},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":" [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item","highlight_start":1,"highlight_end":21},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":" // anything else.","highlight_start":1,"highlight_end":22},{"text":" // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":" // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":" (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":" -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":" -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":" // Utility functions","highlight_start":1,"highlight_end":25},{"text":" (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (","highlight_start":1,"highlight_end":6},{"text":" WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":" $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":" fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":" $strname(err)","highlight_start":1,"highlight_end":30},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" self.0.description()","highlight_start":1,"highlight_end":37},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" self.0.cause()","highlight_start":1,"highlight_end":31},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":" (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":" $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":" $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":" buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [ ]);","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":" (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" pub enum $name {","highlight_start":1,"highlight_end":25},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":" (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" enum $name {","highlight_start":1,"highlight_end":21},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Unit variant","highlight_start":1,"highlight_end":20},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Tuple variant","highlight_start":1,"highlight_end":21},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Struct variant","highlight_start":1,"highlight_end":22},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":" $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":" $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":" )*}","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":" fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":" display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":" $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":" write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $expr","highlight_start":1,"highlight_end":14},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":" $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" stringify!($item)","highlight_start":1,"highlight_end":26},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" Some($expr)","highlight_start":1,"highlight_end":20},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":" { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" None","highlight_start":1,"highlight_end":13},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":" fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":" $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":" [ ]","highlight_start":1,"highlight_end":12},{"text":" { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":" $name::$item","highlight_start":1,"highlight_end":29},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: UNIT [ ]","highlight_start":1,"highlight_end":35},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context)","highlight_start":1,"highlight_end":74},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":" ) => { };","highlight_start":1,"highlight_end":14},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":" [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item","highlight_start":1,"highlight_end":21},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":" // anything else.","highlight_start":1,"highlight_end":22},{"text":" // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":" // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":" (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":" -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":" -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":" // Utility functions","highlight_start":1,"highlight_end":25},{"text":" (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (","highlight_start":1,"highlight_end":6},{"text":" WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":" $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":" fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":" $strname(err)","highlight_start":1,"highlight_end":30},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" self.0.description()","highlight_start":1,"highlight_end":37},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" self.0.cause()","highlight_start":1,"highlight_end":31},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":" (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":" $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":" $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":" buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [ ]);","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":" (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" pub enum $name {","highlight_start":1,"highlight_end":25},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":" (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" enum $name {","highlight_start":1,"highlight_end":21},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Unit variant","highlight_start":1,"highlight_end":20},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Tuple variant","highlight_start":1,"highlight_end":21},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Struct variant","highlight_start":1,"highlight_end":22},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":" $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":" $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":" )*}","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":" fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":" display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":" $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":" write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $expr","highlight_start":1,"highlight_end":14},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":" $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" stringify!($item)","highlight_start":1,"highlight_end":26},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" Some($expr)","highlight_start":1,"highlight_end":20},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":" { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" None","highlight_start":1,"highlight_end":13},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":" fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":" $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":" [ ]","highlight_start":1,"highlight_end":12},{"text":" { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":" $name::$item","highlight_start":1,"highlight_end":29},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: UNIT [ ]","highlight_start":1,"highlight_end":35},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context)","highlight_start":1,"highlight_end":74},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":" ) => { };","highlight_start":1,"highlight_end":14},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":" [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item","highlight_start":1,"highlight_end":21},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":" // anything else.","highlight_start":1,"highlight_end":22},{"text":" // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":" // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":" (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":" -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":" -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":" // Utility functions","highlight_start":1,"highlight_end":25},{"text":" (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (","highlight_start":1,"highlight_end":6},{"text":" WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":" $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":" fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":" $strname(err)","highlight_start":1,"highlight_end":30},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" self.0.description()","highlight_start":1,"highlight_end":37},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" self.0.cause()","highlight_start":1,"highlight_end":31},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":" (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":" $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":" $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":" buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [ ]);","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":" (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" pub enum $name {","highlight_start":1,"highlight_end":25},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":" (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" enum $name {","highlight_start":1,"highlight_end":21},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Unit variant","highlight_start":1,"highlight_end":20},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Tuple variant","highlight_start":1,"highlight_end":21},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Struct variant","highlight_start":1,"highlight_end":22},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":" $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":" $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":" )*}","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":" fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":" display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":" $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":" write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $expr","highlight_start":1,"highlight_end":14},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":" $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" stringify!($item)","highlight_start":1,"highlight_end":26},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" Some($expr)","highlight_start":1,"highlight_end":20},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":" { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" None","highlight_start":1,"highlight_end":13},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":" fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":" $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":" [ ]","highlight_start":1,"highlight_end":12},{"text":" { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":" $name::$item","highlight_start":1,"highlight_end":29},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: UNIT [ ]","highlight_start":1,"highlight_end":35},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context)","highlight_start":1,"highlight_end":74},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":" ) => { };","highlight_start":1,"highlight_end":14},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":" [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item","highlight_start":1,"highlight_end":21},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":" // anything else.","highlight_start":1,"highlight_end":22},{"text":" // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":" // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":" (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":" -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":" -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":" // Utility functions","highlight_start":1,"highlight_end":25},{"text":" (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (","highlight_start":1,"highlight_end":6},{"text":" WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":" $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":" fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":" $strname(err)","highlight_start":1,"highlight_end":30},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" self.0.description()","highlight_start":1,"highlight_end":37},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" self.0.cause()","highlight_start":1,"highlight_end":31},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":" (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":" $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":" $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":" buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [ ]);","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":" (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" pub enum $name {","highlight_start":1,"highlight_end":25},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":" (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" enum $name {","highlight_start":1,"highlight_end":21},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Unit variant","highlight_start":1,"highlight_end":20},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Tuple variant","highlight_start":1,"highlight_end":21},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Struct variant","highlight_start":1,"highlight_end":22},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":" $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":" $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":" )*}","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":" fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":" display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":" $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":" write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $expr","highlight_start":1,"highlight_end":14},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":" $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" stringify!($item)","highlight_start":1,"highlight_end":26},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" Some($expr)","highlight_start":1,"highlight_end":20},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":" { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" None","highlight_start":1,"highlight_end":13},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":" fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":" $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":" [ ]","highlight_start":1,"highlight_end":12},{"text":" { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":" $name::$item","highlight_start":1,"highlight_end":29},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: UNIT [ ]","highlight_start":1,"highlight_end":35},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context)","highlight_start":1,"highlight_end":74},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":" ) => { };","highlight_start":1,"highlight_end":14},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":" [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item","highlight_start":1,"highlight_end":21},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":" // anything else.","highlight_start":1,"highlight_end":22},{"text":" // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":" // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":" (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":" -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":" -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":" // Utility functions","highlight_start":1,"highlight_end":25},{"text":" (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (","highlight_start":1,"highlight_end":6},{"text":" WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":" $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":" fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":" $strname(err)","highlight_start":1,"highlight_end":30},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" self.0.description()","highlight_start":1,"highlight_end":37},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" self.0.cause()","highlight_start":1,"highlight_end":31},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":" (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":" $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":" $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":" buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [ ]);","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":" (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" pub enum $name {","highlight_start":1,"highlight_end":25},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":" (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" enum $name {","highlight_start":1,"highlight_end":21},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Unit variant","highlight_start":1,"highlight_end":20},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Tuple variant","highlight_start":1,"highlight_end":21},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Struct variant","highlight_start":1,"highlight_end":22},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":" $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":" $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":" )*}","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":" fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":" display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":" $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":" write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $expr","highlight_start":1,"highlight_end":14},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":" $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" stringify!($item)","highlight_start":1,"highlight_end":26},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" Some($expr)","highlight_start":1,"highlight_end":20},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":" { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" None","highlight_start":1,"highlight_end":13},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":" fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":" $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":" [ ]","highlight_start":1,"highlight_end":12},{"text":" { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":" $name::$item","highlight_start":1,"highlight_end":29},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: UNIT [ ]","highlight_start":1,"highlight_end":35},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context)","highlight_start":1,"highlight_end":74},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":" ) => { };","highlight_start":1,"highlight_end":14},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":" [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item","highlight_start":1,"highlight_end":21},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":" // anything else.","highlight_start":1,"highlight_end":22},{"text":" // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":" // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":" (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":" -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":" -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":" // Utility functions","highlight_start":1,"highlight_end":25},{"text":" (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (","highlight_start":1,"highlight_end":6},{"text":" WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":" $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":" fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":" $strname(err)","highlight_start":1,"highlight_end":30},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" self.0.description()","highlight_start":1,"highlight_end":37},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" self.0.cause()","highlight_start":1,"highlight_end":31},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":" (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":" $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":" $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":" buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [ ]);","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":" (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" pub enum $name {","highlight_start":1,"highlight_end":25},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":" (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" enum $name {","highlight_start":1,"highlight_end":21},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Unit variant","highlight_start":1,"highlight_end":20},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Tuple variant","highlight_start":1,"highlight_end":21},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Struct variant","highlight_start":1,"highlight_end":22},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":" $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":" $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":" )*}","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":" fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":" display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":" $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":" write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $expr","highlight_start":1,"highlight_end":14},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":" $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" stringify!($item)","highlight_start":1,"highlight_end":26},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" Some($expr)","highlight_start":1,"highlight_end":20},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":" { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" None","highlight_start":1,"highlight_end":13},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":" fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":" $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":" [ ]","highlight_start":1,"highlight_end":12},{"text":" { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":" $name::$item","highlight_start":1,"highlight_end":29},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: UNIT [ ]","highlight_start":1,"highlight_end":35},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context)","highlight_start":1,"highlight_end":74},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":" ) => { };","highlight_start":1,"highlight_end":14},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":" [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item","highlight_start":1,"highlight_end":21},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":" // anything else.","highlight_start":1,"highlight_end":22},{"text":" // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":" // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":" (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":" -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":" -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":" // Utility functions","highlight_start":1,"highlight_end":25},{"text":" (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (","highlight_start":1,"highlight_end":6},{"text":" WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":" $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":" fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":" $strname(err)","highlight_start":1,"highlight_end":30},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" self.0.description()","highlight_start":1,"highlight_end":37},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" self.0.cause()","highlight_start":1,"highlight_end":31},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":" (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":" $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":" $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":" buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [ ]);","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":" (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" pub enum $name {","highlight_start":1,"highlight_end":25},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":" (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" enum $name {","highlight_start":1,"highlight_end":21},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Unit variant","highlight_start":1,"highlight_end":20},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Tuple variant","highlight_start":1,"highlight_end":21},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Struct variant","highlight_start":1,"highlight_end":22},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":" $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":" $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":" )*}","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":" fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":" display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":" $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":" write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $expr","highlight_start":1,"highlight_end":14},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":" $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" stringify!($item)","highlight_start":1,"highlight_end":26},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" Some($expr)","highlight_start":1,"highlight_end":20},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":" { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" None","highlight_start":1,"highlight_end":13},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":" fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":" $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":" [ ]","highlight_start":1,"highlight_end":12},{"text":" { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":" $name::$item","highlight_start":1,"highlight_end":29},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: UNIT [ ]","highlight_start":1,"highlight_end":35},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context)","highlight_start":1,"highlight_end":74},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":" ) => { };","highlight_start":1,"highlight_end":14},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":" [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item","highlight_start":1,"highlight_end":21},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":" // anything else.","highlight_start":1,"highlight_end":22},{"text":" // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":" // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":" (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":" -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":" -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":" // Utility functions","highlight_start":1,"highlight_end":25},{"text":" (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (","highlight_start":1,"highlight_end":6},{"text":" WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":" $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":" fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":" $strname(err)","highlight_start":1,"highlight_end":30},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" self.0.description()","highlight_start":1,"highlight_end":37},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" self.0.cause()","highlight_start":1,"highlight_end":31},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":" (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":" $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":" $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":" buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [ ]);","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":" (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" pub enum $name {","highlight_start":1,"highlight_end":25},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":" (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" enum $name {","highlight_start":1,"highlight_end":21},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Unit variant","highlight_start":1,"highlight_end":20},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Tuple variant","highlight_start":1,"highlight_end":21},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Struct variant","highlight_start":1,"highlight_end":22},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":" $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":" $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":" )*}","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":" fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":" display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":" $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":" write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $expr","highlight_start":1,"highlight_end":14},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":" $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" stringify!($item)","highlight_start":1,"highlight_end":26},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" Some($expr)","highlight_start":1,"highlight_end":20},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":" { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" None","highlight_start":1,"highlight_end":13},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":" fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":" $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":" [ ]","highlight_start":1,"highlight_end":12},{"text":" { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":" $name::$item","highlight_start":1,"highlight_end":29},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: UNIT [ ]","highlight_start":1,"highlight_end":35},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context)","highlight_start":1,"highlight_end":74},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":" ) => { };","highlight_start":1,"highlight_end":14},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":" [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item","highlight_start":1,"highlight_end":21},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":" // anything else.","highlight_start":1,"highlight_end":22},{"text":" // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":" // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":" (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":" -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":" -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":" // Utility functions","highlight_start":1,"highlight_end":25},{"text":" (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (","highlight_start":1,"highlight_end":6},{"text":" WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":" $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":" fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":" $strname(err)","highlight_start":1,"highlight_end":30},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" self.0.description()","highlight_start":1,"highlight_end":37},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" self.0.cause()","highlight_start":1,"highlight_end":31},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":" (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":" $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":" $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":" buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [ ]);","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":" (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" pub enum $name {","highlight_start":1,"highlight_end":25},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":" (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" enum $name {","highlight_start":1,"highlight_end":21},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Unit variant","highlight_start":1,"highlight_end":20},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Tuple variant","highlight_start":1,"highlight_end":21},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Struct variant","highlight_start":1,"highlight_end":22},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":" $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":" $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":" )*}","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":" fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":" display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":" $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":" write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $expr","highlight_start":1,"highlight_end":14},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":" $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" stringify!($item)","highlight_start":1,"highlight_end":26},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" Some($expr)","highlight_start":1,"highlight_end":20},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":" { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" None","highlight_start":1,"highlight_end":13},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":" fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":" $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":" [ ]","highlight_start":1,"highlight_end":12},{"text":" { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":" $name::$item","highlight_start":1,"highlight_end":29},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: UNIT [ ]","highlight_start":1,"highlight_end":35},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context)","highlight_start":1,"highlight_end":74},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":" ) => { };","highlight_start":1,"highlight_end":14},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":" [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item","highlight_start":1,"highlight_end":21},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":" // anything else.","highlight_start":1,"highlight_end":22},{"text":" // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":" // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":" (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":" -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":" -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":" // Utility functions","highlight_start":1,"highlight_end":25},{"text":" (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (","highlight_start":1,"highlight_end":6},{"text":" WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":" $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":" fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":" $strname(err)","highlight_start":1,"highlight_end":30},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" self.0.description()","highlight_start":1,"highlight_end":37},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" self.0.cause()","highlight_start":1,"highlight_end":31},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":" (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":" $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":" $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":" buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [ ]);","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":" (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" pub enum $name {","highlight_start":1,"highlight_end":25},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":" (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" enum $name {","highlight_start":1,"highlight_end":21},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Unit variant","highlight_start":1,"highlight_end":20},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Tuple variant","highlight_start":1,"highlight_end":21},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Struct variant","highlight_start":1,"highlight_end":22},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":" $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":" $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":" )*}","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":" fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":" display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":" $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":" write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $expr","highlight_start":1,"highlight_end":14},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":" $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" stringify!($item)","highlight_start":1,"highlight_end":26},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" Some($expr)","highlight_start":1,"highlight_end":20},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":" { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" None","highlight_start":1,"highlight_end":13},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":" fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":" $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":" [ ]","highlight_start":1,"highlight_end":12},{"text":" { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":" $name::$item","highlight_start":1,"highlight_end":29},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: UNIT [ ]","highlight_start":1,"highlight_end":35},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context)","highlight_start":1,"highlight_end":74},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":" ) => { };","highlight_start":1,"highlight_end":14},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":" [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item","highlight_start":1,"highlight_end":21},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":" // anything else.","highlight_start":1,"highlight_end":22},{"text":" // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":" // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":" (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":" -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":" -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":" // Utility functions","highlight_start":1,"highlight_end":25},{"text":" (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (","highlight_start":1,"highlight_end":6},{"text":" WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":" $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":" fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":" $strname(err)","highlight_start":1,"highlight_end":30},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" self.0.description()","highlight_start":1,"highlight_end":37},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" self.0.cause()","highlight_start":1,"highlight_end":31},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":" (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":" $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":" $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":" buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [ ]);","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":" (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" pub enum $name {","highlight_start":1,"highlight_end":25},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":" (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" enum $name {","highlight_start":1,"highlight_end":21},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Unit variant","highlight_start":1,"highlight_end":20},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Tuple variant","highlight_start":1,"highlight_end":21},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Struct variant","highlight_start":1,"highlight_end":22},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":" $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":" $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":" )*}","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":" fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":" display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":" $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":" write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $expr","highlight_start":1,"highlight_end":14},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":" $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" stringify!($item)","highlight_start":1,"highlight_end":26},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" Some($expr)","highlight_start":1,"highlight_end":20},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":" { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" None","highlight_start":1,"highlight_end":13},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":" fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":" $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":" [ ]","highlight_start":1,"highlight_end":12},{"text":" { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":" $name::$item","highlight_start":1,"highlight_end":29},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: UNIT [ ]","highlight_start":1,"highlight_end":35},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context)","highlight_start":1,"highlight_end":74},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":" ) => { };","highlight_start":1,"highlight_end":14},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":" [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item","highlight_start":1,"highlight_end":21},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":" // anything else.","highlight_start":1,"highlight_end":22},{"text":" // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":" // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":" (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":" -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":" -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":" // Utility functions","highlight_start":1,"highlight_end":25},{"text":" (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (","highlight_start":1,"highlight_end":6},{"text":" WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":" $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":" fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":" $strname(err)","highlight_start":1,"highlight_end":30},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" self.0.description()","highlight_start":1,"highlight_end":37},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" self.0.cause()","highlight_start":1,"highlight_end":31},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":" (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":" $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":" $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":" buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [ ]);","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":" (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" pub enum $name {","highlight_start":1,"highlight_end":25},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":" (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" enum $name {","highlight_start":1,"highlight_end":21},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Unit variant","highlight_start":1,"highlight_end":20},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Tuple variant","highlight_start":1,"highlight_end":21},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Struct variant","highlight_start":1,"highlight_end":22},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":" $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":" $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":" )*}","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":" fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":" display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":" $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":" write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $expr","highlight_start":1,"highlight_end":14},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":" $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" stringify!($item)","highlight_start":1,"highlight_end":26},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" Some($expr)","highlight_start":1,"highlight_end":20},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":" { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" None","highlight_start":1,"highlight_end":13},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":" fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":" $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":" [ ]","highlight_start":1,"highlight_end":12},{"text":" { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":" $name::$item","highlight_start":1,"highlight_end":29},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: UNIT [ ]","highlight_start":1,"highlight_end":35},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context)","highlight_start":1,"highlight_end":74},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":" ) => { };","highlight_start":1,"highlight_end":14},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":" [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item","highlight_start":1,"highlight_end":21},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":" // anything else.","highlight_start":1,"highlight_end":22},{"text":" // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":" // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":" (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":" -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":" -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":" // Utility functions","highlight_start":1,"highlight_end":25},{"text":" (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (","highlight_start":1,"highlight_end":6},{"text":" WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":" $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":" fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":" $strname(err)","highlight_start":1,"highlight_end":30},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" self.0.description()","highlight_start":1,"highlight_end":37},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" self.0.cause()","highlight_start":1,"highlight_end":31},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":" (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":" $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":" $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":" buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [ ]);","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":" (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" pub enum $name {","highlight_start":1,"highlight_end":25},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":" (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" enum $name {","highlight_start":1,"highlight_end":21},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Unit variant","highlight_start":1,"highlight_end":20},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Tuple variant","highlight_start":1,"highlight_end":21},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Struct variant","highlight_start":1,"highlight_end":22},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":" $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":" $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":" )*}","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":" fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":" display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":" $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":" write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $expr","highlight_start":1,"highlight_end":14},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":" $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" stringify!($item)","highlight_start":1,"highlight_end":26},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" Some($expr)","highlight_start":1,"highlight_end":20},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":" { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" None","highlight_start":1,"highlight_end":13},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":" fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":" $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":" [ ]","highlight_start":1,"highlight_end":12},{"text":" { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":" $name::$item","highlight_start":1,"highlight_end":29},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: UNIT [ ]","highlight_start":1,"highlight_end":35},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context)","highlight_start":1,"highlight_end":74},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":" ) => { };","highlight_start":1,"highlight_end":14},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":" [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item","highlight_start":1,"highlight_end":21},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":" // anything else.","highlight_start":1,"highlight_end":22},{"text":" // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":" // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":" (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":" -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":" -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":" // Utility functions","highlight_start":1,"highlight_end":25},{"text":" (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (","highlight_start":1,"highlight_end":6},{"text":" WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":" $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":" fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":" $strname(err)","highlight_start":1,"highlight_end":30},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" self.0.description()","highlight_start":1,"highlight_end":37},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" self.0.cause()","highlight_start":1,"highlight_end":31},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":" (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":" $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":" $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":" buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [ ]);","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":" (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" pub enum $name {","highlight_start":1,"highlight_end":25},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":" (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" enum $name {","highlight_start":1,"highlight_end":21},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Unit variant","highlight_start":1,"highlight_end":20},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Tuple variant","highlight_start":1,"highlight_end":21},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Struct variant","highlight_start":1,"highlight_end":22},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":" $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":" $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":" )*}","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":" fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":" display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":" $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":" write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $expr","highlight_start":1,"highlight_end":14},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":" $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" stringify!($item)","highlight_start":1,"highlight_end":26},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" Some($expr)","highlight_start":1,"highlight_end":20},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":" { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" None","highlight_start":1,"highlight_end":13},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":" fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":" $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":" [ ]","highlight_start":1,"highlight_end":12},{"text":" { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":" $name::$item","highlight_start":1,"highlight_end":29},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: UNIT [ ]","highlight_start":1,"highlight_end":35},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context)","highlight_start":1,"highlight_end":74},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":" ) => { };","highlight_start":1,"highlight_end":14},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":" [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item","highlight_start":1,"highlight_end":21},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":" // anything else.","highlight_start":1,"highlight_end":22},{"text":" // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":" // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":" (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":" -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":" -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":" // Utility functions","highlight_start":1,"highlight_end":25},{"text":" (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (","highlight_start":1,"highlight_end":6},{"text":" WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":" $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":" fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":" $strname(err)","highlight_start":1,"highlight_end":30},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" self.0.description()","highlight_start":1,"highlight_end":37},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" self.0.cause()","highlight_start":1,"highlight_end":31},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":" (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":" $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":" $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":" buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [ ]);","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":" (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" pub enum $name {","highlight_start":1,"highlight_end":25},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":" (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" enum $name {","highlight_start":1,"highlight_end":21},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Unit variant","highlight_start":1,"highlight_end":20},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Tuple variant","highlight_start":1,"highlight_end":21},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Struct variant","highlight_start":1,"highlight_end":22},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":" $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":" $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":" )*}","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":" fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":" display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":" $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":" write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $expr","highlight_start":1,"highlight_end":14},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":" $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" stringify!($item)","highlight_start":1,"highlight_end":26},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" Some($expr)","highlight_start":1,"highlight_end":20},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":" { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" None","highlight_start":1,"highlight_end":13},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":" fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":" $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":" [ ]","highlight_start":1,"highlight_end":12},{"text":" { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":" $name::$item","highlight_start":1,"highlight_end":29},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: UNIT [ ]","highlight_start":1,"highlight_end":35},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context)","highlight_start":1,"highlight_end":74},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":" ) => { };","highlight_start":1,"highlight_end":14},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":" [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item","highlight_start":1,"highlight_end":21},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":" // anything else.","highlight_start":1,"highlight_end":22},{"text":" // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":" // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":" (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":" -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":" -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":" // Utility functions","highlight_start":1,"highlight_end":25},{"text":" (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (","highlight_start":1,"highlight_end":6},{"text":" WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":" $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":" fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":" $strname(err)","highlight_start":1,"highlight_end":30},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" self.0.description()","highlight_start":1,"highlight_end":37},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" self.0.cause()","highlight_start":1,"highlight_end":31},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":" (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":" $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":" $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":" buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [ ]);","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":" (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" pub enum $name {","highlight_start":1,"highlight_end":25},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":" (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" enum $name {","highlight_start":1,"highlight_end":21},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Unit variant","highlight_start":1,"highlight_end":20},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Tuple variant","highlight_start":1,"highlight_end":21},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Struct variant","highlight_start":1,"highlight_end":22},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":" $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":" $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":" )*}","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":" fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":" display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":" $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":" write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $expr","highlight_start":1,"highlight_end":14},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":" $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" stringify!($item)","highlight_start":1,"highlight_end":26},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" Some($expr)","highlight_start":1,"highlight_end":20},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":" { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" None","highlight_start":1,"highlight_end":13},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":" fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":" $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":" [ ]","highlight_start":1,"highlight_end":12},{"text":" { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":" $name::$item","highlight_start":1,"highlight_end":29},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: UNIT [ ]","highlight_start":1,"highlight_end":35},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context)","highlight_start":1,"highlight_end":74},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":" ) => { };","highlight_start":1,"highlight_end":14},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":" [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item","highlight_start":1,"highlight_end":21},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":" // anything else.","highlight_start":1,"highlight_end":22},{"text":" // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":" // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":" (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":" -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":" -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":" // Utility functions","highlight_start":1,"highlight_end":25},{"text":" (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (","highlight_start":1,"highlight_end":6},{"text":" WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":" $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":" fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":" $strname(err)","highlight_start":1,"highlight_end":30},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" self.0.description()","highlight_start":1,"highlight_end":37},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" self.0.cause()","highlight_start":1,"highlight_end":31},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":" (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":" $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":" $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":" buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [ ]);","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":" (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" pub enum $name {","highlight_start":1,"highlight_end":25},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":" (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" enum $name {","highlight_start":1,"highlight_end":21},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Unit variant","highlight_start":1,"highlight_end":20},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Tuple variant","highlight_start":1,"highlight_end":21},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Struct variant","highlight_start":1,"highlight_end":22},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":" $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":" $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":" )*}","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":" fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":" display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":" $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":" write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $expr","highlight_start":1,"highlight_end":14},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":" $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" stringify!($item)","highlight_start":1,"highlight_end":26},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" Some($expr)","highlight_start":1,"highlight_end":20},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":" { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" None","highlight_start":1,"highlight_end":13},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":" fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":" $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":" [ ]","highlight_start":1,"highlight_end":12},{"text":" { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":" $name::$item","highlight_start":1,"highlight_end":29},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: UNIT [ ]","highlight_start":1,"highlight_end":35},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context)","highlight_start":1,"highlight_end":74},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":" ) => { };","highlight_start":1,"highlight_end":14},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":" [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item","highlight_start":1,"highlight_end":21},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":" // anything else.","highlight_start":1,"highlight_end":22},{"text":" // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":" // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":" (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":" -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":" -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":" // Utility functions","highlight_start":1,"highlight_end":25},{"text":" (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (","highlight_start":1,"highlight_end":6},{"text":" WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":" $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":" fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":" $strname(err)","highlight_start":1,"highlight_end":30},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" self.0.description()","highlight_start":1,"highlight_end":37},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" self.0.cause()","highlight_start":1,"highlight_end":31},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":" (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":" $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":" $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":" buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [ ]);","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":" (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" pub enum $name {","highlight_start":1,"highlight_end":25},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":" (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" enum $name {","highlight_start":1,"highlight_end":21},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Unit variant","highlight_start":1,"highlight_end":20},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Tuple variant","highlight_start":1,"highlight_end":21},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Struct variant","highlight_start":1,"highlight_end":22},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":" $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":" $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":" )*}","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":" fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":" display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":" $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":" write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $expr","highlight_start":1,"highlight_end":14},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":" $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" stringify!($item)","highlight_start":1,"highlight_end":26},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" Some($expr)","highlight_start":1,"highlight_end":20},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":" { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" None","highlight_start":1,"highlight_end":13},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":" fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":" $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":" [ ]","highlight_start":1,"highlight_end":12},{"text":" { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":" $name::$item","highlight_start":1,"highlight_end":29},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: UNIT [ ]","highlight_start":1,"highlight_end":35},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context)","highlight_start":1,"highlight_end":74},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":" ) => { };","highlight_start":1,"highlight_end":14},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":" [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item","highlight_start":1,"highlight_end":21},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":" // anything else.","highlight_start":1,"highlight_end":22},{"text":" // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":" // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":" (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":" -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":" -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":" // Utility functions","highlight_start":1,"highlight_end":25},{"text":" (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (","highlight_start":1,"highlight_end":6},{"text":" WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":" $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":" fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":" $strname(err)","highlight_start":1,"highlight_end":30},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" self.0.description()","highlight_start":1,"highlight_end":37},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" self.0.cause()","highlight_start":1,"highlight_end":31},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":" (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":" $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":" $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":" buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [ ]);","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":" (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" pub enum $name {","highlight_start":1,"highlight_end":25},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":" (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" enum $name {","highlight_start":1,"highlight_end":21},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Unit variant","highlight_start":1,"highlight_end":20},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Tuple variant","highlight_start":1,"highlight_end":21},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Struct variant","highlight_start":1,"highlight_end":22},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":" $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":" $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":" )*}","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":" fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":" display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":" $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":" write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $expr","highlight_start":1,"highlight_end":14},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":" $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" stringify!($item)","highlight_start":1,"highlight_end":26},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" Some($expr)","highlight_start":1,"highlight_end":20},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":" { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" None","highlight_start":1,"highlight_end":13},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":" fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":" $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":" [ ]","highlight_start":1,"highlight_end":12},{"text":" { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":" $name::$item","highlight_start":1,"highlight_end":29},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: UNIT [ ]","highlight_start":1,"highlight_end":35},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context)","highlight_start":1,"highlight_end":74},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":" ) => { };","highlight_start":1,"highlight_end":14},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":" [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item","highlight_start":1,"highlight_end":21},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":" // anything else.","highlight_start":1,"highlight_end":22},{"text":" // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":" // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":" (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":" -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":" -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":" // Utility functions","highlight_start":1,"highlight_end":25},{"text":" (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (","highlight_start":1,"highlight_end":6},{"text":" WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":" $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":" fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":" $strname(err)","highlight_start":1,"highlight_end":30},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" self.0.description()","highlight_start":1,"highlight_end":37},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" self.0.cause()","highlight_start":1,"highlight_end":31},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":" (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":" $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":" $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":" buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [ ]);","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":" (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" pub enum $name {","highlight_start":1,"highlight_end":25},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":" (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" enum $name {","highlight_start":1,"highlight_end":21},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Unit variant","highlight_start":1,"highlight_end":20},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Tuple variant","highlight_start":1,"highlight_end":21},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Struct variant","highlight_start":1,"highlight_end":22},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":" $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":" $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":" )*}","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":" fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":" display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":" $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":" write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $expr","highlight_start":1,"highlight_end":14},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":" $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" stringify!($item)","highlight_start":1,"highlight_end":26},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" Some($expr)","highlight_start":1,"highlight_end":20},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":" { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" None","highlight_start":1,"highlight_end":13},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":" fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":" $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":" [ ]","highlight_start":1,"highlight_end":12},{"text":" { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":" $name::$item","highlight_start":1,"highlight_end":29},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: UNIT [ ]","highlight_start":1,"highlight_end":35},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context)","highlight_start":1,"highlight_end":74},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":" ) => { };","highlight_start":1,"highlight_end":14},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":" [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item","highlight_start":1,"highlight_end":21},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":" // anything else.","highlight_start":1,"highlight_end":22},{"text":" // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":" // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":" (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":" -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":" -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":" // Utility functions","highlight_start":1,"highlight_end":25},{"text":" (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (","highlight_start":1,"highlight_end":6},{"text":" WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":" $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":" fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":" $strname(err)","highlight_start":1,"highlight_end":30},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" self.0.description()","highlight_start":1,"highlight_end":37},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" self.0.cause()","highlight_start":1,"highlight_end":31},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":" (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":" $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":" $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":" buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [ ]);","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":" (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" pub enum $name {","highlight_start":1,"highlight_end":25},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":" (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" enum $name {","highlight_start":1,"highlight_end":21},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Unit variant","highlight_start":1,"highlight_end":20},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Tuple variant","highlight_start":1,"highlight_end":21},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Struct variant","highlight_start":1,"highlight_end":22},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":" $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":" $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":" )*}","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":" fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":" display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":" $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":" write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $expr","highlight_start":1,"highlight_end":14},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":" $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" stringify!($item)","highlight_start":1,"highlight_end":26},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" Some($expr)","highlight_start":1,"highlight_end":20},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":" { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" None","highlight_start":1,"highlight_end":13},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":" fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":" $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":" [ ]","highlight_start":1,"highlight_end":12},{"text":" { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":" $name::$item","highlight_start":1,"highlight_end":29},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: UNIT [ ]","highlight_start":1,"highlight_end":35},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context)","highlight_start":1,"highlight_end":74},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":" ) => { };","highlight_start":1,"highlight_end":14},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":" [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item","highlight_start":1,"highlight_end":21},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":" // anything else.","highlight_start":1,"highlight_end":22},{"text":" // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":" // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":" (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":" -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":" -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":" // Utility functions","highlight_start":1,"highlight_end":25},{"text":" (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (","highlight_start":1,"highlight_end":6},{"text":" WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":" $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":" fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":" $strname(err)","highlight_start":1,"highlight_end":30},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" self.0.description()","highlight_start":1,"highlight_end":37},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" self.0.cause()","highlight_start":1,"highlight_end":31},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":" (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":" $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":" $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":" buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [ ]);","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":" (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" pub enum $name {","highlight_start":1,"highlight_end":25},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":" (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" enum $name {","highlight_start":1,"highlight_end":21},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Unit variant","highlight_start":1,"highlight_end":20},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Tuple variant","highlight_start":1,"highlight_end":21},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Struct variant","highlight_start":1,"highlight_end":22},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":" $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":" $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":" )*}","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":" fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":" display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":" $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":" write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $expr","highlight_start":1,"highlight_end":14},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":" $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" stringify!($item)","highlight_start":1,"highlight_end":26},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" Some($expr)","highlight_start":1,"highlight_end":20},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":" { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" None","highlight_start":1,"highlight_end":13},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":" fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":" $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":" [ ]","highlight_start":1,"highlight_end":12},{"text":" { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":" $name::$item","highlight_start":1,"highlight_end":29},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: UNIT [ ]","highlight_start":1,"highlight_end":35},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context)","highlight_start":1,"highlight_end":74},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":" ) => { };","highlight_start":1,"highlight_end":14},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":" [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item","highlight_start":1,"highlight_end":21},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":" // anything else.","highlight_start":1,"highlight_end":22},{"text":" // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":" // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":" (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":" -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":" -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":" // Utility functions","highlight_start":1,"highlight_end":25},{"text":" (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (","highlight_start":1,"highlight_end":6},{"text":" WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":" $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":" fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":" $strname(err)","highlight_start":1,"highlight_end":30},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" self.0.description()","highlight_start":1,"highlight_end":37},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" self.0.cause()","highlight_start":1,"highlight_end":31},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":" (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":" $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":" $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":" buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [ ]);","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":" (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" pub enum $name {","highlight_start":1,"highlight_end":25},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":" (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" enum $name {","highlight_start":1,"highlight_end":21},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Unit variant","highlight_start":1,"highlight_end":20},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Tuple variant","highlight_start":1,"highlight_end":21},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Struct variant","highlight_start":1,"highlight_end":22},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":" $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":" $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":" )*}","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":" fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":" display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":" $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":" write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $expr","highlight_start":1,"highlight_end":14},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":" $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" stringify!($item)","highlight_start":1,"highlight_end":26},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" Some($expr)","highlight_start":1,"highlight_end":20},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":" { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" None","highlight_start":1,"highlight_end":13},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":" fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":" $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":" [ ]","highlight_start":1,"highlight_end":12},{"text":" { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":" $name::$item","highlight_start":1,"highlight_end":29},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: UNIT [ ]","highlight_start":1,"highlight_end":35},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context)","highlight_start":1,"highlight_end":74},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":" ) => { };","highlight_start":1,"highlight_end":14},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":" [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item","highlight_start":1,"highlight_end":21},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":" // anything else.","highlight_start":1,"highlight_end":22},{"text":" // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":" // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":" (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":" -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":" -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":" // Utility functions","highlight_start":1,"highlight_end":25},{"text":" (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (","highlight_start":1,"highlight_end":6},{"text":" WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":" $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":" fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":" $strname(err)","highlight_start":1,"highlight_end":30},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" self.0.description()","highlight_start":1,"highlight_end":37},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" self.0.cause()","highlight_start":1,"highlight_end":31},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":" (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":" $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":" $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":" buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [ ]);","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":" (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" pub enum $name {","highlight_start":1,"highlight_end":25},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":" (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" enum $name {","highlight_start":1,"highlight_end":21},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Unit variant","highlight_start":1,"highlight_end":20},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Tuple variant","highlight_start":1,"highlight_end":21},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Struct variant","highlight_start":1,"highlight_end":22},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":" $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":" $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":" )*}","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":" fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":" display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":" $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":" write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $expr","highlight_start":1,"highlight_end":14},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":" $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" stringify!($item)","highlight_start":1,"highlight_end":26},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" Some($expr)","highlight_start":1,"highlight_end":20},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":" { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" None","highlight_start":1,"highlight_end":13},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":" fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":" $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":" [ ]","highlight_start":1,"highlight_end":12},{"text":" { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":" $name::$item","highlight_start":1,"highlight_end":29},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: UNIT [ ]","highlight_start":1,"highlight_end":35},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context)","highlight_start":1,"highlight_end":74},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":" ) => { };","highlight_start":1,"highlight_end":14},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":" [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item","highlight_start":1,"highlight_end":21},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":" // anything else.","highlight_start":1,"highlight_end":22},{"text":" // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":" // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":" (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":" -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":" -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":" // Utility functions","highlight_start":1,"highlight_end":25},{"text":" (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (","highlight_start":1,"highlight_end":6},{"text":" WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":" $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":" fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":" $strname(err)","highlight_start":1,"highlight_end":30},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" self.0.description()","highlight_start":1,"highlight_end":37},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" self.0.cause()","highlight_start":1,"highlight_end":31},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":" (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":" $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":" $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":" buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [ ]);","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":" (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" pub enum $name {","highlight_start":1,"highlight_end":25},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":" (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" enum $name {","highlight_start":1,"highlight_end":21},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Unit variant","highlight_start":1,"highlight_end":20},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Tuple variant","highlight_start":1,"highlight_end":21},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Struct variant","highlight_start":1,"highlight_end":22},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":" $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":" $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":" )*}","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":" fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":" display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":" $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":" write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $expr","highlight_start":1,"highlight_end":14},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":" $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" stringify!($item)","highlight_start":1,"highlight_end":26},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" Some($expr)","highlight_start":1,"highlight_end":20},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":" { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" None","highlight_start":1,"highlight_end":13},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":" fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":" $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":" [ ]","highlight_start":1,"highlight_end":12},{"text":" { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":" $name::$item","highlight_start":1,"highlight_end":29},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: UNIT [ ]","highlight_start":1,"highlight_end":35},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context)","highlight_start":1,"highlight_end":74},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":" ) => { };","highlight_start":1,"highlight_end":14},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":" [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item","highlight_start":1,"highlight_end":21},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":" // anything else.","highlight_start":1,"highlight_end":22},{"text":" // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":" // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":" (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":" -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":" -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":" // Utility functions","highlight_start":1,"highlight_end":25},{"text":" (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (","highlight_start":1,"highlight_end":6},{"text":" WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":" $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":" fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":" $strname(err)","highlight_start":1,"highlight_end":30},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" self.0.description()","highlight_start":1,"highlight_end":37},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" self.0.cause()","highlight_start":1,"highlight_end":31},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":" (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":" $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":" $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":" buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [ ]);","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":" (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" pub enum $name {","highlight_start":1,"highlight_end":25},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":" (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" enum $name {","highlight_start":1,"highlight_end":21},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Unit variant","highlight_start":1,"highlight_end":20},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Tuple variant","highlight_start":1,"highlight_end":21},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Struct variant","highlight_start":1,"highlight_end":22},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":" $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":" $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":" )*}","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":" fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":" display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":" $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":" write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $expr","highlight_start":1,"highlight_end":14},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":" $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" stringify!($item)","highlight_start":1,"highlight_end":26},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" Some($expr)","highlight_start":1,"highlight_end":20},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":" { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" None","highlight_start":1,"highlight_end":13},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":" fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":" $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":" [ ]","highlight_start":1,"highlight_end":12},{"text":" { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":" $name::$item","highlight_start":1,"highlight_end":29},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: UNIT [ ]","highlight_start":1,"highlight_end":35},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context)","highlight_start":1,"highlight_end":74},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":" ) => { };","highlight_start":1,"highlight_end":14},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":" [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item","highlight_start":1,"highlight_end":21},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":" // anything else.","highlight_start":1,"highlight_end":22},{"text":" // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":" // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":" (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":" -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":" -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":" // Utility functions","highlight_start":1,"highlight_end":25},{"text":" (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (","highlight_start":1,"highlight_end":6},{"text":" WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":" $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":" fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":" $strname(err)","highlight_start":1,"highlight_end":30},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" self.0.description()","highlight_start":1,"highlight_end":37},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" self.0.cause()","highlight_start":1,"highlight_end":31},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":" (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":" $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":" $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":" buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [ ]);","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":" (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" pub enum $name {","highlight_start":1,"highlight_end":25},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":" (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" enum $name {","highlight_start":1,"highlight_end":21},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Unit variant","highlight_start":1,"highlight_end":20},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Tuple variant","highlight_start":1,"highlight_end":21},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Struct variant","highlight_start":1,"highlight_end":22},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":" $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":" $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":" )*}","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":" fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":" display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":" $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":" write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $expr","highlight_start":1,"highlight_end":14},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":" $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" stringify!($item)","highlight_start":1,"highlight_end":26},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" Some($expr)","highlight_start":1,"highlight_end":20},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":" { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" None","highlight_start":1,"highlight_end":13},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":" fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":" $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":" [ ]","highlight_start":1,"highlight_end":12},{"text":" { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":" $name::$item","highlight_start":1,"highlight_end":29},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: UNIT [ ]","highlight_start":1,"highlight_end":35},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context)","highlight_start":1,"highlight_end":74},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":" ) => { };","highlight_start":1,"highlight_end":14},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":" [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item","highlight_start":1,"highlight_end":21},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":" // anything else.","highlight_start":1,"highlight_end":22},{"text":" // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":" // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":" (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":" -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":" -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":" // Utility functions","highlight_start":1,"highlight_end":25},{"text":" (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (","highlight_start":1,"highlight_end":6},{"text":" WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":" $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":" fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":" $strname(err)","highlight_start":1,"highlight_end":30},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" self.0.description()","highlight_start":1,"highlight_end":37},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" self.0.cause()","highlight_start":1,"highlight_end":31},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":" (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":" $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":" $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":" buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [ ]);","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":" (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" pub enum $name {","highlight_start":1,"highlight_end":25},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":" (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" enum $name {","highlight_start":1,"highlight_end":21},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Unit variant","highlight_start":1,"highlight_end":20},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Tuple variant","highlight_start":1,"highlight_end":21},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Struct variant","highlight_start":1,"highlight_end":22},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":" $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":" $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":" )*}","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":" fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":" display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":" $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":" write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $expr","highlight_start":1,"highlight_end":14},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":" $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" stringify!($item)","highlight_start":1,"highlight_end":26},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" Some($expr)","highlight_start":1,"highlight_end":20},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":" { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" None","highlight_start":1,"highlight_end":13},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":" fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":" $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":" [ ]","highlight_start":1,"highlight_end":12},{"text":" { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":" $name::$item","highlight_start":1,"highlight_end":29},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: UNIT [ ]","highlight_start":1,"highlight_end":35},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context)","highlight_start":1,"highlight_end":74},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":" ) => { };","highlight_start":1,"highlight_end":14},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":" [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item","highlight_start":1,"highlight_end":21},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":" // anything else.","highlight_start":1,"highlight_end":22},{"text":" // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":" // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":" (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":" -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":" -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":" // Utility functions","highlight_start":1,"highlight_end":25},{"text":" (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (","highlight_start":1,"highlight_end":6},{"text":" WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":" $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":" fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":" $strname(err)","highlight_start":1,"highlight_end":30},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" self.0.description()","highlight_start":1,"highlight_end":37},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" self.0.cause()","highlight_start":1,"highlight_end":31},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":" (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":" $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":" $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":" buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [ ]);","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":" (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" pub enum $name {","highlight_start":1,"highlight_end":25},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":" (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" enum $name {","highlight_start":1,"highlight_end":21},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Unit variant","highlight_start":1,"highlight_end":20},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Tuple variant","highlight_start":1,"highlight_end":21},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Struct variant","highlight_start":1,"highlight_end":22},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":" $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":" $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":" )*}","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":" fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":" display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":" $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":" write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $expr","highlight_start":1,"highlight_end":14},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":" $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" stringify!($item)","highlight_start":1,"highlight_end":26},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" Some($expr)","highlight_start":1,"highlight_end":20},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":" { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" None","highlight_start":1,"highlight_end":13},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":" fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":" $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":" [ ]","highlight_start":1,"highlight_end":12},{"text":" { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":" $name::$item","highlight_start":1,"highlight_end":29},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: UNIT [ ]","highlight_start":1,"highlight_end":35},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context)","highlight_start":1,"highlight_end":74},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":" ) => { };","highlight_start":1,"highlight_end":14},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":" [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item","highlight_start":1,"highlight_end":21},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":" // anything else.","highlight_start":1,"highlight_end":22},{"text":" // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":" // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":" (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":" -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":" -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":" // Utility functions","highlight_start":1,"highlight_end":25},{"text":" (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (","highlight_start":1,"highlight_end":6},{"text":" WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":" $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":" fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":" $strname(err)","highlight_start":1,"highlight_end":30},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" self.0.description()","highlight_start":1,"highlight_end":37},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" self.0.cause()","highlight_start":1,"highlight_end":31},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":" (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":" $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":" $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":" buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [ ]);","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":" (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" pub enum $name {","highlight_start":1,"highlight_end":25},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":" (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" enum $name {","highlight_start":1,"highlight_end":21},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Unit variant","highlight_start":1,"highlight_end":20},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Tuple variant","highlight_start":1,"highlight_end":21},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Struct variant","highlight_start":1,"highlight_end":22},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":" $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":" $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":" )*}","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":" fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":" display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":" $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":" write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $expr","highlight_start":1,"highlight_end":14},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":" $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" stringify!($item)","highlight_start":1,"highlight_end":26},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" Some($expr)","highlight_start":1,"highlight_end":20},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":" { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" None","highlight_start":1,"highlight_end":13},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":" fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":" $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":" [ ]","highlight_start":1,"highlight_end":12},{"text":" { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":" $name::$item","highlight_start":1,"highlight_end":29},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: UNIT [ ]","highlight_start":1,"highlight_end":35},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context)","highlight_start":1,"highlight_end":74},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":" ) => { };","highlight_start":1,"highlight_end":14},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":" [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item","highlight_start":1,"highlight_end":21},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":" // anything else.","highlight_start":1,"highlight_end":22},{"text":" // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":" // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":" (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":" -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":" -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":" // Utility functions","highlight_start":1,"highlight_end":25},{"text":" (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (","highlight_start":1,"highlight_end":6},{"text":" WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":" $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":" fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":" $strname(err)","highlight_start":1,"highlight_end":30},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" self.0.description()","highlight_start":1,"highlight_end":37},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" self.0.cause()","highlight_start":1,"highlight_end":31},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":" (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":" $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":" $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":" buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [ ]);","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":" (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" pub enum $name {","highlight_start":1,"highlight_end":25},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":" (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" enum $name {","highlight_start":1,"highlight_end":21},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Unit variant","highlight_start":1,"highlight_end":20},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Tuple variant","highlight_start":1,"highlight_end":21},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Struct variant","highlight_start":1,"highlight_end":22},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":" $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":" $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":" )*}","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":" fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":" display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":" $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":" write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $expr","highlight_start":1,"highlight_end":14},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":" $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" stringify!($item)","highlight_start":1,"highlight_end":26},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" Some($expr)","highlight_start":1,"highlight_end":20},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":" { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" None","highlight_start":1,"highlight_end":13},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":" fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":" $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":" [ ]","highlight_start":1,"highlight_end":12},{"text":" { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":" $name::$item","highlight_start":1,"highlight_end":29},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: UNIT [ ]","highlight_start":1,"highlight_end":35},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context)","highlight_start":1,"highlight_end":74},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":" ) => { };","highlight_start":1,"highlight_end":14},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":" [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item","highlight_start":1,"highlight_end":21},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":" // anything else.","highlight_start":1,"highlight_end":22},{"text":" // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":" // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":" (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":" -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":" -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":" // Utility functions","highlight_start":1,"highlight_end":25},{"text":" (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (","highlight_start":1,"highlight_end":6},{"text":" WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":" $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":" fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":" $strname(err)","highlight_start":1,"highlight_end":30},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" self.0.description()","highlight_start":1,"highlight_end":37},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" self.0.cause()","highlight_start":1,"highlight_end":31},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":" (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":" $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":" $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":" buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [ ]);","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":" (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" pub enum $name {","highlight_start":1,"highlight_end":25},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":" (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" enum $name {","highlight_start":1,"highlight_end":21},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Unit variant","highlight_start":1,"highlight_end":20},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Tuple variant","highlight_start":1,"highlight_end":21},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Struct variant","highlight_start":1,"highlight_end":22},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":" $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":" $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":" )*}","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":" fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":" display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":" $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":" write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $expr","highlight_start":1,"highlight_end":14},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":" $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" stringify!($item)","highlight_start":1,"highlight_end":26},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" Some($expr)","highlight_start":1,"highlight_end":20},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":" { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" None","highlight_start":1,"highlight_end":13},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":" fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":" $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":" [ ]","highlight_start":1,"highlight_end":12},{"text":" { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":" $name::$item","highlight_start":1,"highlight_end":29},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: UNIT [ ]","highlight_start":1,"highlight_end":35},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context)","highlight_start":1,"highlight_end":74},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":" ) => { };","highlight_start":1,"highlight_end":14},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":" [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item","highlight_start":1,"highlight_end":21},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":" // anything else.","highlight_start":1,"highlight_end":22},{"text":" // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":" // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":" (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":" -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":" -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":" // Utility functions","highlight_start":1,"highlight_end":25},{"text":" (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (","highlight_start":1,"highlight_end":6},{"text":" WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":" $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":" fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":" $strname(err)","highlight_start":1,"highlight_end":30},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" self.0.description()","highlight_start":1,"highlight_end":37},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" self.0.cause()","highlight_start":1,"highlight_end":31},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":" (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":" $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":" $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":" buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [ ]);","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":" (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" pub enum $name {","highlight_start":1,"highlight_end":25},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":" (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" enum $name {","highlight_start":1,"highlight_end":21},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Unit variant","highlight_start":1,"highlight_end":20},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Tuple variant","highlight_start":1,"highlight_end":21},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Struct variant","highlight_start":1,"highlight_end":22},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":" $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":" $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":" )*}","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":" fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":" display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":" $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":" write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $expr","highlight_start":1,"highlight_end":14},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":" $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" stringify!($item)","highlight_start":1,"highlight_end":26},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" Some($expr)","highlight_start":1,"highlight_end":20},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":" { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" None","highlight_start":1,"highlight_end":13},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":" fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":" $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":" [ ]","highlight_start":1,"highlight_end":12},{"text":" { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":" $name::$item","highlight_start":1,"highlight_end":29},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: UNIT [ ]","highlight_start":1,"highlight_end":35},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context)","highlight_start":1,"highlight_end":74},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":" ) => { };","highlight_start":1,"highlight_end":14},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":" [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item","highlight_start":1,"highlight_end":21},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":" // anything else.","highlight_start":1,"highlight_end":22},{"text":" // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":" // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":" (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":" -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":" -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":" // Utility functions","highlight_start":1,"highlight_end":25},{"text":" (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (","highlight_start":1,"highlight_end":6},{"text":" WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":" $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":" fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":" $strname(err)","highlight_start":1,"highlight_end":30},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" self.0.description()","highlight_start":1,"highlight_end":37},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" self.0.cause()","highlight_start":1,"highlight_end":31},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":" (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":" $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":" $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":" buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [ ]);","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":" (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" pub enum $name {","highlight_start":1,"highlight_end":25},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":" (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" enum $name {","highlight_start":1,"highlight_end":21},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Unit variant","highlight_start":1,"highlight_end":20},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Tuple variant","highlight_start":1,"highlight_end":21},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Struct variant","highlight_start":1,"highlight_end":22},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":" $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":" $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":" )*}","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":" fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":" display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":" $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":" write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $expr","highlight_start":1,"highlight_end":14},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":" $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" stringify!($item)","highlight_start":1,"highlight_end":26},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" Some($expr)","highlight_start":1,"highlight_end":20},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":" { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" None","highlight_start":1,"highlight_end":13},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":" fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":" $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":" [ ]","highlight_start":1,"highlight_end":12},{"text":" { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":" $name::$item","highlight_start":1,"highlight_end":29},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: UNIT [ ]","highlight_start":1,"highlight_end":35},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context)","highlight_start":1,"highlight_end":74},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":" ) => { };","highlight_start":1,"highlight_end":14},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":" [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item","highlight_start":1,"highlight_end":21},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":" // anything else.","highlight_start":1,"highlight_end":22},{"text":" // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":" // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":" (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":" -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":" -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":" // Utility functions","highlight_start":1,"highlight_end":25},{"text":" (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (","highlight_start":1,"highlight_end":6},{"text":" WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":" $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":" fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":" $strname(err)","highlight_start":1,"highlight_end":30},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" self.0.description()","highlight_start":1,"highlight_end":37},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" self.0.cause()","highlight_start":1,"highlight_end":31},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":" (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":" $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":" $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":" buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [ ]);","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":" (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" pub enum $name {","highlight_start":1,"highlight_end":25},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":" (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" enum $name {","highlight_start":1,"highlight_end":21},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Unit variant","highlight_start":1,"highlight_end":20},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Tuple variant","highlight_start":1,"highlight_end":21},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Struct variant","highlight_start":1,"highlight_end":22},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":" $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":" $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":" )*}","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":" fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":" display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":" $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":" write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $expr","highlight_start":1,"highlight_end":14},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":" $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" stringify!($item)","highlight_start":1,"highlight_end":26},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" Some($expr)","highlight_start":1,"highlight_end":20},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":" { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" None","highlight_start":1,"highlight_end":13},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":" fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":" $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":" [ ]","highlight_start":1,"highlight_end":12},{"text":" { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":" $name::$item","highlight_start":1,"highlight_end":29},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: UNIT [ ]","highlight_start":1,"highlight_end":35},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context)","highlight_start":1,"highlight_end":74},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":" ) => { };","highlight_start":1,"highlight_end":14},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":" [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item","highlight_start":1,"highlight_end":21},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":" // anything else.","highlight_start":1,"highlight_end":22},{"text":" // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":" // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":" (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":" -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":" -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":" // Utility functions","highlight_start":1,"highlight_end":25},{"text":" (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (","highlight_start":1,"highlight_end":6},{"text":" WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":" $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":" fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":" $strname(err)","highlight_start":1,"highlight_end":30},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" self.0.description()","highlight_start":1,"highlight_end":37},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" self.0.cause()","highlight_start":1,"highlight_end":31},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":" (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":" $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":" $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":" buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [ ]);","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":" (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" pub enum $name {","highlight_start":1,"highlight_end":25},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":" (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" enum $name {","highlight_start":1,"highlight_end":21},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Unit variant","highlight_start":1,"highlight_end":20},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Tuple variant","highlight_start":1,"highlight_end":21},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Struct variant","highlight_start":1,"highlight_end":22},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":" $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":" $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":" )*}","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":" fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":" display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":" $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":" write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $expr","highlight_start":1,"highlight_end":14},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":" $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" stringify!($item)","highlight_start":1,"highlight_end":26},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" Some($expr)","highlight_start":1,"highlight_end":20},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":" { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" None","highlight_start":1,"highlight_end":13},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":" fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":" $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":" [ ]","highlight_start":1,"highlight_end":12},{"text":" { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":" $name::$item","highlight_start":1,"highlight_end":29},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: UNIT [ ]","highlight_start":1,"highlight_end":35},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context)","highlight_start":1,"highlight_end":74},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":" ) => { };","highlight_start":1,"highlight_end":14},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":" [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item","highlight_start":1,"highlight_end":21},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":" // anything else.","highlight_start":1,"highlight_end":22},{"text":" // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":" // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":" (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":" -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":" -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":" // Utility functions","highlight_start":1,"highlight_end":25},{"text":" (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (","highlight_start":1,"highlight_end":6},{"text":" WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":" $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":" fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":" $strname(err)","highlight_start":1,"highlight_end":30},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" self.0.description()","highlight_start":1,"highlight_end":37},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" self.0.cause()","highlight_start":1,"highlight_end":31},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":" (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":" $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":" $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":" buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [ ]);","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":" (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" pub enum $name {","highlight_start":1,"highlight_end":25},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":" (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" enum $name {","highlight_start":1,"highlight_end":21},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Unit variant","highlight_start":1,"highlight_end":20},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Tuple variant","highlight_start":1,"highlight_end":21},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Struct variant","highlight_start":1,"highlight_end":22},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":" $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":" $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":" )*}","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":" fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":" display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":" $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":" write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $expr","highlight_start":1,"highlight_end":14},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":" $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" stringify!($item)","highlight_start":1,"highlight_end":26},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" Some($expr)","highlight_start":1,"highlight_end":20},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":" { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" None","highlight_start":1,"highlight_end":13},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":" fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":" $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":" [ ]","highlight_start":1,"highlight_end":12},{"text":" { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":" $name::$item","highlight_start":1,"highlight_end":29},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: UNIT [ ]","highlight_start":1,"highlight_end":35},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context)","highlight_start":1,"highlight_end":74},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":" ) => { };","highlight_start":1,"highlight_end":14},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":" [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item","highlight_start":1,"highlight_end":21},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":" // anything else.","highlight_start":1,"highlight_end":22},{"text":" // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":" // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":" (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":" -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":" -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":" // Utility functions","highlight_start":1,"highlight_end":25},{"text":" (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (","highlight_start":1,"highlight_end":6},{"text":" WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":" $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":" fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":" $strname(err)","highlight_start":1,"highlight_end":30},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" self.0.description()","highlight_start":1,"highlight_end":37},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" self.0.cause()","highlight_start":1,"highlight_end":31},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":" (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":" $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":" $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":" buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [ ]);","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":" (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" pub enum $name {","highlight_start":1,"highlight_end":25},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":" (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" enum $name {","highlight_start":1,"highlight_end":21},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Unit variant","highlight_start":1,"highlight_end":20},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Tuple variant","highlight_start":1,"highlight_end":21},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Struct variant","highlight_start":1,"highlight_end":22},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":" $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":" $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":" )*}","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":" fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":" display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":" $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":" write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $expr","highlight_start":1,"highlight_end":14},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":" $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" stringify!($item)","highlight_start":1,"highlight_end":26},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" Some($expr)","highlight_start":1,"highlight_end":20},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":" { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" None","highlight_start":1,"highlight_end":13},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":" fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":" $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":" [ ]","highlight_start":1,"highlight_end":12},{"text":" { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":" $name::$item","highlight_start":1,"highlight_end":29},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: UNIT [ ]","highlight_start":1,"highlight_end":35},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context)","highlight_start":1,"highlight_end":74},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":" ) => { };","highlight_start":1,"highlight_end":14},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":" [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item","highlight_start":1,"highlight_end":21},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":" // anything else.","highlight_start":1,"highlight_end":22},{"text":" // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":" // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":" (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":" -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":" -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":" // Utility functions","highlight_start":1,"highlight_end":25},{"text":" (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (","highlight_start":1,"highlight_end":6},{"text":" WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":" $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":" fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":" $strname(err)","highlight_start":1,"highlight_end":30},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" self.0.description()","highlight_start":1,"highlight_end":37},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" self.0.cause()","highlight_start":1,"highlight_end":31},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":" (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":" $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":" $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":" buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [ ]);","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":" (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" pub enum $name {","highlight_start":1,"highlight_end":25},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":" (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" enum $name {","highlight_start":1,"highlight_end":21},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Unit variant","highlight_start":1,"highlight_end":20},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Tuple variant","highlight_start":1,"highlight_end":21},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Struct variant","highlight_start":1,"highlight_end":22},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":" $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":" $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":" )*}","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":" fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":" display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":" $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":" write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $expr","highlight_start":1,"highlight_end":14},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":" $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" stringify!($item)","highlight_start":1,"highlight_end":26},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" Some($expr)","highlight_start":1,"highlight_end":20},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":" { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" None","highlight_start":1,"highlight_end":13},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":" fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":" $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":" [ ]","highlight_start":1,"highlight_end":12},{"text":" { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":" $name::$item","highlight_start":1,"highlight_end":29},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: UNIT [ ]","highlight_start":1,"highlight_end":35},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context)","highlight_start":1,"highlight_end":74},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":" ) => { };","highlight_start":1,"highlight_end":14},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":" [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item","highlight_start":1,"highlight_end":21},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":" // anything else.","highlight_start":1,"highlight_end":22},{"text":" // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":" // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":" (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":" -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":" -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":" // Utility functions","highlight_start":1,"highlight_end":25},{"text":" (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (","highlight_start":1,"highlight_end":6},{"text":" WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":" $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":" fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":" $strname(err)","highlight_start":1,"highlight_end":30},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" self.0.description()","highlight_start":1,"highlight_end":37},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" self.0.cause()","highlight_start":1,"highlight_end":31},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":" (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":" $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":" $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":" buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [ ]);","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":" (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" pub enum $name {","highlight_start":1,"highlight_end":25},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":" (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" enum $name {","highlight_start":1,"highlight_end":21},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Unit variant","highlight_start":1,"highlight_end":20},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Tuple variant","highlight_start":1,"highlight_end":21},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Struct variant","highlight_start":1,"highlight_end":22},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":" $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":" $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":" )*}","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":" fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":" display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":" $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":" write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $expr","highlight_start":1,"highlight_end":14},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":" $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" stringify!($item)","highlight_start":1,"highlight_end":26},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" Some($expr)","highlight_start":1,"highlight_end":20},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":" { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" None","highlight_start":1,"highlight_end":13},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":" fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":" $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":" [ ]","highlight_start":1,"highlight_end":12},{"text":" { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":" $name::$item","highlight_start":1,"highlight_end":29},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: UNIT [ ]","highlight_start":1,"highlight_end":35},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context)","highlight_start":1,"highlight_end":74},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":" ) => { };","highlight_start":1,"highlight_end":14},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":" [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item","highlight_start":1,"highlight_end":21},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":" // anything else.","highlight_start":1,"highlight_end":22},{"text":" // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":" // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":" (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":" -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":" -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":" // Utility functions","highlight_start":1,"highlight_end":25},{"text":" (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (","highlight_start":1,"highlight_end":6},{"text":" WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":" $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":" fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":" $strname(err)","highlight_start":1,"highlight_end":30},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" self.0.description()","highlight_start":1,"highlight_end":37},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" self.0.cause()","highlight_start":1,"highlight_end":31},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":" (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":" $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":" $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":" buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [ ]);","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":" (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" pub enum $name {","highlight_start":1,"highlight_end":25},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":" (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" enum $name {","highlight_start":1,"highlight_end":21},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Unit variant","highlight_start":1,"highlight_end":20},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Tuple variant","highlight_start":1,"highlight_end":21},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Struct variant","highlight_start":1,"highlight_end":22},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":" $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":" $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":" )*}","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":" fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":" display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":" $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":" write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $expr","highlight_start":1,"highlight_end":14},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":" $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" stringify!($item)","highlight_start":1,"highlight_end":26},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" Some($expr)","highlight_start":1,"highlight_end":20},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":" { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" None","highlight_start":1,"highlight_end":13},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":" fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":" $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":" [ ]","highlight_start":1,"highlight_end":12},{"text":" { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":" $name::$item","highlight_start":1,"highlight_end":29},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: UNIT [ ]","highlight_start":1,"highlight_end":35},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context)","highlight_start":1,"highlight_end":74},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":" ) => { };","highlight_start":1,"highlight_end":14},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":" [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item","highlight_start":1,"highlight_end":21},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":" // anything else.","highlight_start":1,"highlight_end":22},{"text":" // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":" // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":" (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":" -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":" -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":" // Utility functions","highlight_start":1,"highlight_end":25},{"text":" (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (","highlight_start":1,"highlight_end":6},{"text":" WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":" $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":" fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":" $strname(err)","highlight_start":1,"highlight_end":30},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" self.0.description()","highlight_start":1,"highlight_end":37},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" self.0.cause()","highlight_start":1,"highlight_end":31},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":" (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":" $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":" $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":" buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [ ]);","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":" (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" pub enum $name {","highlight_start":1,"highlight_end":25},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":" (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" enum $name {","highlight_start":1,"highlight_end":21},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Unit variant","highlight_start":1,"highlight_end":20},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Tuple variant","highlight_start":1,"highlight_end":21},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Struct variant","highlight_start":1,"highlight_end":22},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":" $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":" $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":" )*}","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":" fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":" display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":" $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":" write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $expr","highlight_start":1,"highlight_end":14},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":" $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" stringify!($item)","highlight_start":1,"highlight_end":26},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" Some($expr)","highlight_start":1,"highlight_end":20},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":" { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" None","highlight_start":1,"highlight_end":13},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":" fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":" $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":" [ ]","highlight_start":1,"highlight_end":12},{"text":" { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":" $name::$item","highlight_start":1,"highlight_end":29},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: UNIT [ ]","highlight_start":1,"highlight_end":35},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context)","highlight_start":1,"highlight_end":74},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":" ) => { };","highlight_start":1,"highlight_end":14},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":" [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item","highlight_start":1,"highlight_end":21},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":" // anything else.","highlight_start":1,"highlight_end":22},{"text":" // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":" // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":" (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":" -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":" -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":" // Utility functions","highlight_start":1,"highlight_end":25},{"text":" (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (","highlight_start":1,"highlight_end":6},{"text":" WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":" $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":" fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":" $strname(err)","highlight_start":1,"highlight_end":30},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" self.0.description()","highlight_start":1,"highlight_end":37},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" self.0.cause()","highlight_start":1,"highlight_end":31},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":" (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":" $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":" $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":" buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [ ]);","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":" (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" pub enum $name {","highlight_start":1,"highlight_end":25},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":" (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" enum $name {","highlight_start":1,"highlight_end":21},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Unit variant","highlight_start":1,"highlight_end":20},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Tuple variant","highlight_start":1,"highlight_end":21},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Struct variant","highlight_start":1,"highlight_end":22},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":" $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":" $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":" )*}","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":" fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":" display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":" $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":" write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $expr","highlight_start":1,"highlight_end":14},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":" $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" stringify!($item)","highlight_start":1,"highlight_end":26},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" Some($expr)","highlight_start":1,"highlight_end":20},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":" { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" None","highlight_start":1,"highlight_end":13},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":" fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":" $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":" [ ]","highlight_start":1,"highlight_end":12},{"text":" { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":" $name::$item","highlight_start":1,"highlight_end":29},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: UNIT [ ]","highlight_start":1,"highlight_end":35},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context)","highlight_start":1,"highlight_end":74},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":" ) => { };","highlight_start":1,"highlight_end":14},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":" [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item","highlight_start":1,"highlight_end":21},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":" // anything else.","highlight_start":1,"highlight_end":22},{"text":" // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":" // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":" (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":" -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":" -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":" // Utility functions","highlight_start":1,"highlight_end":25},{"text":" (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (","highlight_start":1,"highlight_end":6},{"text":" WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":" $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":" fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":" $strname(err)","highlight_start":1,"highlight_end":30},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" self.0.description()","highlight_start":1,"highlight_end":37},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" self.0.cause()","highlight_start":1,"highlight_end":31},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":" (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":" $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":" $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":" buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [ ]);","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":" (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" pub enum $name {","highlight_start":1,"highlight_end":25},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":" (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" enum $name {","highlight_start":1,"highlight_end":21},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Unit variant","highlight_start":1,"highlight_end":20},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Tuple variant","highlight_start":1,"highlight_end":21},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Struct variant","highlight_start":1,"highlight_end":22},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":" $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":" $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":" )*}","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":" fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":" display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":" $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":" write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $expr","highlight_start":1,"highlight_end":14},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":" $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" stringify!($item)","highlight_start":1,"highlight_end":26},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" Some($expr)","highlight_start":1,"highlight_end":20},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":" { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" None","highlight_start":1,"highlight_end":13},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":" fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":" $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":" [ ]","highlight_start":1,"highlight_end":12},{"text":" { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":" $name::$item","highlight_start":1,"highlight_end":29},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: UNIT [ ]","highlight_start":1,"highlight_end":35},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context)","highlight_start":1,"highlight_end":74},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":" ) => { };","highlight_start":1,"highlight_end":14},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":" [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item","highlight_start":1,"highlight_end":21},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":" // anything else.","highlight_start":1,"highlight_end":22},{"text":" // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":" // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":" (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":" -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":" -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":" // Utility functions","highlight_start":1,"highlight_end":25},{"text":" (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (","highlight_start":1,"highlight_end":6},{"text":" WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":" $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":" fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":" $strname(err)","highlight_start":1,"highlight_end":30},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" self.0.description()","highlight_start":1,"highlight_end":37},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" self.0.cause()","highlight_start":1,"highlight_end":31},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":" (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":" $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":" $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":" buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [ ]);","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":" (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" pub enum $name {","highlight_start":1,"highlight_end":25},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":" (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" enum $name {","highlight_start":1,"highlight_end":21},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Unit variant","highlight_start":1,"highlight_end":20},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Tuple variant","highlight_start":1,"highlight_end":21},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Struct variant","highlight_start":1,"highlight_end":22},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":" $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":" $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":" )*}","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":" fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":" display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":" $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":" write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $expr","highlight_start":1,"highlight_end":14},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":" $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" stringify!($item)","highlight_start":1,"highlight_end":26},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" Some($expr)","highlight_start":1,"highlight_end":20},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":" { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" None","highlight_start":1,"highlight_end":13},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":" fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":" $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":" [ ]","highlight_start":1,"highlight_end":12},{"text":" { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":" $name::$item","highlight_start":1,"highlight_end":29},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: UNIT [ ]","highlight_start":1,"highlight_end":35},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context)","highlight_start":1,"highlight_end":74},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":" ) => { };","highlight_start":1,"highlight_end":14},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":" [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item","highlight_start":1,"highlight_end":21},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":" // anything else.","highlight_start":1,"highlight_end":22},{"text":" // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":" // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":" (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":" -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":" -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":" // Utility functions","highlight_start":1,"highlight_end":25},{"text":" (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (","highlight_start":1,"highlight_end":6},{"text":" WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":" $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":" fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":" $strname(err)","highlight_start":1,"highlight_end":30},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" self.0.description()","highlight_start":1,"highlight_end":37},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" self.0.cause()","highlight_start":1,"highlight_end":31},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":" (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":" $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":" $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":" buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [ ]);","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":" (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" pub enum $name {","highlight_start":1,"highlight_end":25},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":" (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" enum $name {","highlight_start":1,"highlight_end":21},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Unit variant","highlight_start":1,"highlight_end":20},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Tuple variant","highlight_start":1,"highlight_end":21},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Struct variant","highlight_start":1,"highlight_end":22},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":" $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":" $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":" )*}","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":" fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":" display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":" $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":" write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $expr","highlight_start":1,"highlight_end":14},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":" $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" stringify!($item)","highlight_start":1,"highlight_end":26},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" Some($expr)","highlight_start":1,"highlight_end":20},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":" { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" None","highlight_start":1,"highlight_end":13},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":" fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":" $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":" [ ]","highlight_start":1,"highlight_end":12},{"text":" { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":" $name::$item","highlight_start":1,"highlight_end":29},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: UNIT [ ]","highlight_start":1,"highlight_end":35},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context)","highlight_start":1,"highlight_end":74},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":" ) => { };","highlight_start":1,"highlight_end":14},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":" [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item","highlight_start":1,"highlight_end":21},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":" // anything else.","highlight_start":1,"highlight_end":22},{"text":" // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":" // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":" (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":" -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":" -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":" // Utility functions","highlight_start":1,"highlight_end":25},{"text":" (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (","highlight_start":1,"highlight_end":6},{"text":" WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":" $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":" fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":" $strname(err)","highlight_start":1,"highlight_end":30},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" self.0.description()","highlight_start":1,"highlight_end":37},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" self.0.cause()","highlight_start":1,"highlight_end":31},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":" (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":" $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":" $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":" buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [ ]);","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":" (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" pub enum $name {","highlight_start":1,"highlight_end":25},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":" (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" enum $name {","highlight_start":1,"highlight_end":21},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Unit variant","highlight_start":1,"highlight_end":20},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Tuple variant","highlight_start":1,"highlight_end":21},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Struct variant","highlight_start":1,"highlight_end":22},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":" $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":" $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":" )*}","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":" fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":" display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":" $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":" write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $expr","highlight_start":1,"highlight_end":14},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":" $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" stringify!($item)","highlight_start":1,"highlight_end":26},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" Some($expr)","highlight_start":1,"highlight_end":20},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":" { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" None","highlight_start":1,"highlight_end":13},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":" fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":" $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":" [ ]","highlight_start":1,"highlight_end":12},{"text":" { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":" $name::$item","highlight_start":1,"highlight_end":29},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: UNIT [ ]","highlight_start":1,"highlight_end":35},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context)","highlight_start":1,"highlight_end":74},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":" ) => { };","highlight_start":1,"highlight_end":14},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":" [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item","highlight_start":1,"highlight_end":21},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":" // anything else.","highlight_start":1,"highlight_end":22},{"text":" // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":" // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":" (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":" -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":" -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":" // Utility functions","highlight_start":1,"highlight_end":25},{"text":" (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (","highlight_start":1,"highlight_end":6},{"text":" WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":" $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":" fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":" $strname(err)","highlight_start":1,"highlight_end":30},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" self.0.description()","highlight_start":1,"highlight_end":37},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" self.0.cause()","highlight_start":1,"highlight_end":31},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":" (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":" $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":" $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":" buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [ ]);","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":" (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" pub enum $name {","highlight_start":1,"highlight_end":25},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":" (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" enum $name {","highlight_start":1,"highlight_end":21},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Unit variant","highlight_start":1,"highlight_end":20},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Tuple variant","highlight_start":1,"highlight_end":21},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Struct variant","highlight_start":1,"highlight_end":22},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":" $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":" $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":" )*}","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":" fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":" display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":" $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":" write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $expr","highlight_start":1,"highlight_end":14},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":" $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" stringify!($item)","highlight_start":1,"highlight_end":26},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" Some($expr)","highlight_start":1,"highlight_end":20},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":" { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" None","highlight_start":1,"highlight_end":13},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":" fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":" $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":" [ ]","highlight_start":1,"highlight_end":12},{"text":" { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":" $name::$item","highlight_start":1,"highlight_end":29},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: UNIT [ ]","highlight_start":1,"highlight_end":35},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context)","highlight_start":1,"highlight_end":74},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":" ) => { };","highlight_start":1,"highlight_end":14},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":" [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item","highlight_start":1,"highlight_end":21},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":" // anything else.","highlight_start":1,"highlight_end":22},{"text":" // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":" // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":" (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":" -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":" -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":" // Utility functions","highlight_start":1,"highlight_end":25},{"text":" (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (","highlight_start":1,"highlight_end":6},{"text":" WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":" $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":" fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":" $strname(err)","highlight_start":1,"highlight_end":30},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" self.0.description()","highlight_start":1,"highlight_end":37},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" self.0.cause()","highlight_start":1,"highlight_end":31},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":" (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":" $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":" $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":" buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [ ]);","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":" (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" pub enum $name {","highlight_start":1,"highlight_end":25},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":" (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" enum $name {","highlight_start":1,"highlight_end":21},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Unit variant","highlight_start":1,"highlight_end":20},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Tuple variant","highlight_start":1,"highlight_end":21},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Struct variant","highlight_start":1,"highlight_end":22},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":" $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":" $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":" )*}","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":" fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":" display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":" $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":" write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $expr","highlight_start":1,"highlight_end":14},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":" $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" stringify!($item)","highlight_start":1,"highlight_end":26},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" Some($expr)","highlight_start":1,"highlight_end":20},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":" { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" None","highlight_start":1,"highlight_end":13},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":" fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":" $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":" [ ]","highlight_start":1,"highlight_end":12},{"text":" { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":" $name::$item","highlight_start":1,"highlight_end":29},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: UNIT [ ]","highlight_start":1,"highlight_end":35},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context)","highlight_start":1,"highlight_end":74},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":" ) => { };","highlight_start":1,"highlight_end":14},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":" [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item","highlight_start":1,"highlight_end":21},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":" // anything else.","highlight_start":1,"highlight_end":22},{"text":" // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":" // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":" (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":" -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":" -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":" // Utility functions","highlight_start":1,"highlight_end":25},{"text":" (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (","highlight_start":1,"highlight_end":6},{"text":" WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":" $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":" fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":" $strname(err)","highlight_start":1,"highlight_end":30},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" self.0.description()","highlight_start":1,"highlight_end":37},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" self.0.cause()","highlight_start":1,"highlight_end":31},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":" (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":" $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":" $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":" buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [ ]);","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":" (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" pub enum $name {","highlight_start":1,"highlight_end":25},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":" (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" enum $name {","highlight_start":1,"highlight_end":21},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Unit variant","highlight_start":1,"highlight_end":20},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Tuple variant","highlight_start":1,"highlight_end":21},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Struct variant","highlight_start":1,"highlight_end":22},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":" $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":" $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":" )*}","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":" fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":" display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":" $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":" write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $expr","highlight_start":1,"highlight_end":14},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":" $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" stringify!($item)","highlight_start":1,"highlight_end":26},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" Some($expr)","highlight_start":1,"highlight_end":20},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":" { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" None","highlight_start":1,"highlight_end":13},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":" fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":" $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":" [ ]","highlight_start":1,"highlight_end":12},{"text":" { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":" $name::$item","highlight_start":1,"highlight_end":29},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: UNIT [ ]","highlight_start":1,"highlight_end":35},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context)","highlight_start":1,"highlight_end":74},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":" ) => { };","highlight_start":1,"highlight_end":14},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":" [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item","highlight_start":1,"highlight_end":21},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":" // anything else.","highlight_start":1,"highlight_end":22},{"text":" // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":" // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":" (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":" -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":" -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":" // Utility functions","highlight_start":1,"highlight_end":25},{"text":" (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (","highlight_start":1,"highlight_end":6},{"text":" WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":" $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":" fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":" $strname(err)","highlight_start":1,"highlight_end":30},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" self.0.description()","highlight_start":1,"highlight_end":37},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" self.0.cause()","highlight_start":1,"highlight_end":31},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":" (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":" $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":" $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":" buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [ ]);","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":" (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" pub enum $name {","highlight_start":1,"highlight_end":25},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":" (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" enum $name {","highlight_start":1,"highlight_end":21},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Unit variant","highlight_start":1,"highlight_end":20},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Tuple variant","highlight_start":1,"highlight_end":21},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Struct variant","highlight_start":1,"highlight_end":22},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":" $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":" $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":" )*}","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":" fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":" display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":" $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":" write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $expr","highlight_start":1,"highlight_end":14},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":" $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" stringify!($item)","highlight_start":1,"highlight_end":26},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" Some($expr)","highlight_start":1,"highlight_end":20},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":" { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" None","highlight_start":1,"highlight_end":13},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":" fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":" $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":" [ ]","highlight_start":1,"highlight_end":12},{"text":" { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":" $name::$item","highlight_start":1,"highlight_end":29},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: UNIT [ ]","highlight_start":1,"highlight_end":35},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context)","highlight_start":1,"highlight_end":74},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":" ) => { };","highlight_start":1,"highlight_end":14},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":" [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item","highlight_start":1,"highlight_end":21},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":" // anything else.","highlight_start":1,"highlight_end":22},{"text":" // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":" // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":" (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":" -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":" -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":" // Utility functions","highlight_start":1,"highlight_end":25},{"text":" (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (","highlight_start":1,"highlight_end":6},{"text":" WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":" $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":" fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":" $strname(err)","highlight_start":1,"highlight_end":30},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" self.0.description()","highlight_start":1,"highlight_end":37},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" self.0.cause()","highlight_start":1,"highlight_end":31},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":" (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":" $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":" $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":" buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [ ]);","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":" (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" pub enum $name {","highlight_start":1,"highlight_end":25},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":" (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" enum $name {","highlight_start":1,"highlight_end":21},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Unit variant","highlight_start":1,"highlight_end":20},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Tuple variant","highlight_start":1,"highlight_end":21},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Struct variant","highlight_start":1,"highlight_end":22},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":" $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":" $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":" )*}","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":" fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":" display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":" $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":" write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $expr","highlight_start":1,"highlight_end":14},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":" $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" stringify!($item)","highlight_start":1,"highlight_end":26},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" Some($expr)","highlight_start":1,"highlight_end":20},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":" { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" None","highlight_start":1,"highlight_end":13},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":" fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":" $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":" [ ]","highlight_start":1,"highlight_end":12},{"text":" { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":" $name::$item","highlight_start":1,"highlight_end":29},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: UNIT [ ]","highlight_start":1,"highlight_end":35},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context)","highlight_start":1,"highlight_end":74},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":" ) => { };","highlight_start":1,"highlight_end":14},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":" [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item","highlight_start":1,"highlight_end":21},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":" // anything else.","highlight_start":1,"highlight_end":22},{"text":" // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":" // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":" (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":" -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":" -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":" // Utility functions","highlight_start":1,"highlight_end":25},{"text":" (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (","highlight_start":1,"highlight_end":6},{"text":" WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":" $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":" fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":" $strname(err)","highlight_start":1,"highlight_end":30},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" self.0.description()","highlight_start":1,"highlight_end":37},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" self.0.cause()","highlight_start":1,"highlight_end":31},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":" (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":" $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":" $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":" buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [ ]);","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":" (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" pub enum $name {","highlight_start":1,"highlight_end":25},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":" (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" enum $name {","highlight_start":1,"highlight_end":21},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Unit variant","highlight_start":1,"highlight_end":20},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Tuple variant","highlight_start":1,"highlight_end":21},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Struct variant","highlight_start":1,"highlight_end":22},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":" $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":" $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":" )*}","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":" fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":" display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":" $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":" write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $expr","highlight_start":1,"highlight_end":14},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":" $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" stringify!($item)","highlight_start":1,"highlight_end":26},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" Some($expr)","highlight_start":1,"highlight_end":20},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":" { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" None","highlight_start":1,"highlight_end":13},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":" fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":" $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":" [ ]","highlight_start":1,"highlight_end":12},{"text":" { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":" $name::$item","highlight_start":1,"highlight_end":29},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: UNIT [ ]","highlight_start":1,"highlight_end":35},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context)","highlight_start":1,"highlight_end":74},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":" ) => { };","highlight_start":1,"highlight_end":14},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":" [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item","highlight_start":1,"highlight_end":21},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":" // anything else.","highlight_start":1,"highlight_end":22},{"text":" // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":" // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":" (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":" -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":" -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":" // Utility functions","highlight_start":1,"highlight_end":25},{"text":" (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (","highlight_start":1,"highlight_end":6},{"text":" WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":" $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":" fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":" $strname(err)","highlight_start":1,"highlight_end":30},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" self.0.description()","highlight_start":1,"highlight_end":37},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" self.0.cause()","highlight_start":1,"highlight_end":31},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":" (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":" $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":" $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":" buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [ ]);","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":" (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" pub enum $name {","highlight_start":1,"highlight_end":25},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":" (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" enum $name {","highlight_start":1,"highlight_end":21},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Unit variant","highlight_start":1,"highlight_end":20},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Tuple variant","highlight_start":1,"highlight_end":21},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Struct variant","highlight_start":1,"highlight_end":22},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":" $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":" $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":" )*}","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":" fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":" display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":" $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":" write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $expr","highlight_start":1,"highlight_end":14},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":" $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" stringify!($item)","highlight_start":1,"highlight_end":26},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" Some($expr)","highlight_start":1,"highlight_end":20},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":" { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" None","highlight_start":1,"highlight_end":13},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":" fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":" $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":" [ ]","highlight_start":1,"highlight_end":12},{"text":" { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":" $name::$item","highlight_start":1,"highlight_end":29},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: UNIT [ ]","highlight_start":1,"highlight_end":35},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context)","highlight_start":1,"highlight_end":74},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":" ) => { };","highlight_start":1,"highlight_end":14},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":" [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item","highlight_start":1,"highlight_end":21},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":" // anything else.","highlight_start":1,"highlight_end":22},{"text":" // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":" // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":" (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":" -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":" -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":" // Utility functions","highlight_start":1,"highlight_end":25},{"text":" (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (","highlight_start":1,"highlight_end":6},{"text":" WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":" $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":" fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":" $strname(err)","highlight_start":1,"highlight_end":30},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" self.0.description()","highlight_start":1,"highlight_end":37},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" self.0.cause()","highlight_start":1,"highlight_end":31},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":" (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":" $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":" $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":" buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [ ]);","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":" (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" pub enum $name {","highlight_start":1,"highlight_end":25},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":" (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" enum $name {","highlight_start":1,"highlight_end":21},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Unit variant","highlight_start":1,"highlight_end":20},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Tuple variant","highlight_start":1,"highlight_end":21},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Struct variant","highlight_start":1,"highlight_end":22},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":" $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":" $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":" )*}","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":" fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":" display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":" $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":" write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $expr","highlight_start":1,"highlight_end":14},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":" $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" stringify!($item)","highlight_start":1,"highlight_end":26},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" Some($expr)","highlight_start":1,"highlight_end":20},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":" { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" None","highlight_start":1,"highlight_end":13},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":" fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":" $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":" [ ]","highlight_start":1,"highlight_end":12},{"text":" { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":" $name::$item","highlight_start":1,"highlight_end":29},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: UNIT [ ]","highlight_start":1,"highlight_end":35},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context)","highlight_start":1,"highlight_end":74},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":" ) => { };","highlight_start":1,"highlight_end":14},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":" [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item","highlight_start":1,"highlight_end":21},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":" // anything else.","highlight_start":1,"highlight_end":22},{"text":" // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":" // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":" (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":" -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":" -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":" // Utility functions","highlight_start":1,"highlight_end":25},{"text":" (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (","highlight_start":1,"highlight_end":6},{"text":" WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":" $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":" fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":" $strname(err)","highlight_start":1,"highlight_end":30},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" self.0.description()","highlight_start":1,"highlight_end":37},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" self.0.cause()","highlight_start":1,"highlight_end":31},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":" (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":" $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":" $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":" buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [ ]);","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":" (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" pub enum $name {","highlight_start":1,"highlight_end":25},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":" (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" enum $name {","highlight_start":1,"highlight_end":21},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Unit variant","highlight_start":1,"highlight_end":20},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Tuple variant","highlight_start":1,"highlight_end":21},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Struct variant","highlight_start":1,"highlight_end":22},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":" $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":" $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":" )*}","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":" fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":" display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":" $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":" write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $expr","highlight_start":1,"highlight_end":14},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":" $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" stringify!($item)","highlight_start":1,"highlight_end":26},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" Some($expr)","highlight_start":1,"highlight_end":20},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":" { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" None","highlight_start":1,"highlight_end":13},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":" fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":" $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":" [ ]","highlight_start":1,"highlight_end":12},{"text":" { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":" $name::$item","highlight_start":1,"highlight_end":29},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: UNIT [ ]","highlight_start":1,"highlight_end":35},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context)","highlight_start":1,"highlight_end":74},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":" ) => { };","highlight_start":1,"highlight_end":14},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":" [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item","highlight_start":1,"highlight_end":21},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":" // anything else.","highlight_start":1,"highlight_end":22},{"text":" // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":" // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":" (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":" -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":" -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":" // Utility functions","highlight_start":1,"highlight_end":25},{"text":" (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (","highlight_start":1,"highlight_end":6},{"text":" WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":" $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":" fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":" $strname(err)","highlight_start":1,"highlight_end":30},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" self.0.description()","highlight_start":1,"highlight_end":37},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" self.0.cause()","highlight_start":1,"highlight_end":31},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":" (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":" $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":" $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":" buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [ ]);","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":" (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" pub enum $name {","highlight_start":1,"highlight_end":25},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":" (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" enum $name {","highlight_start":1,"highlight_end":21},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Unit variant","highlight_start":1,"highlight_end":20},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Tuple variant","highlight_start":1,"highlight_end":21},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Struct variant","highlight_start":1,"highlight_end":22},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":" $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":" $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":" )*}","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":" fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":" display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":" $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":" write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $expr","highlight_start":1,"highlight_end":14},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":" $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" stringify!($item)","highlight_start":1,"highlight_end":26},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" Some($expr)","highlight_start":1,"highlight_end":20},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":" { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" None","highlight_start":1,"highlight_end":13},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":" fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":" $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":" [ ]","highlight_start":1,"highlight_end":12},{"text":" { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":" $name::$item","highlight_start":1,"highlight_end":29},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: UNIT [ ]","highlight_start":1,"highlight_end":35},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context)","highlight_start":1,"highlight_end":74},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":" ) => { };","highlight_start":1,"highlight_end":14},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":" [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item","highlight_start":1,"highlight_end":21},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":" // anything else.","highlight_start":1,"highlight_end":22},{"text":" // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":" // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":" (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":" -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":" -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":" // Utility functions","highlight_start":1,"highlight_end":25},{"text":" (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (","highlight_start":1,"highlight_end":6},{"text":" WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":" $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":" fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":" $strname(err)","highlight_start":1,"highlight_end":30},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" self.0.description()","highlight_start":1,"highlight_end":37},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" self.0.cause()","highlight_start":1,"highlight_end":31},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":" (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":" $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":" $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":" buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [ ]);","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":" (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" pub enum $name {","highlight_start":1,"highlight_end":25},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":" (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" enum $name {","highlight_start":1,"highlight_end":21},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Unit variant","highlight_start":1,"highlight_end":20},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Tuple variant","highlight_start":1,"highlight_end":21},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Struct variant","highlight_start":1,"highlight_end":22},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":" $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":" $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":" )*}","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":" fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":" display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":" $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":" write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $expr","highlight_start":1,"highlight_end":14},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":" $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" stringify!($item)","highlight_start":1,"highlight_end":26},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" Some($expr)","highlight_start":1,"highlight_end":20},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":" { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" None","highlight_start":1,"highlight_end":13},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":" fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":" $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":" [ ]","highlight_start":1,"highlight_end":12},{"text":" { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":" $name::$item","highlight_start":1,"highlight_end":29},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: UNIT [ ]","highlight_start":1,"highlight_end":35},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context)","highlight_start":1,"highlight_end":74},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":" ) => { };","highlight_start":1,"highlight_end":14},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":" [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item","highlight_start":1,"highlight_end":21},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":" // anything else.","highlight_start":1,"highlight_end":22},{"text":" // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":" // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":" (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":" -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":" -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":" // Utility functions","highlight_start":1,"highlight_end":25},{"text":" (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (","highlight_start":1,"highlight_end":6},{"text":" WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":" $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":" fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":" $strname(err)","highlight_start":1,"highlight_end":30},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" self.0.description()","highlight_start":1,"highlight_end":37},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" self.0.cause()","highlight_start":1,"highlight_end":31},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":" (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":" $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":" $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":" buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [ ]);","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":" (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" pub enum $name {","highlight_start":1,"highlight_end":25},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":" (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" enum $name {","highlight_start":1,"highlight_end":21},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Unit variant","highlight_start":1,"highlight_end":20},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Tuple variant","highlight_start":1,"highlight_end":21},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Struct variant","highlight_start":1,"highlight_end":22},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":" $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":" $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":" )*}","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":" fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":" display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":" $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":" write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $expr","highlight_start":1,"highlight_end":14},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":" $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" stringify!($item)","highlight_start":1,"highlight_end":26},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" Some($expr)","highlight_start":1,"highlight_end":20},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":" { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" None","highlight_start":1,"highlight_end":13},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":" fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":" $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":" [ ]","highlight_start":1,"highlight_end":12},{"text":" { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":" $name::$item","highlight_start":1,"highlight_end":29},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: UNIT [ ]","highlight_start":1,"highlight_end":35},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context)","highlight_start":1,"highlight_end":74},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":" ) => { };","highlight_start":1,"highlight_end":14},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":" [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item","highlight_start":1,"highlight_end":21},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":" // anything else.","highlight_start":1,"highlight_end":22},{"text":" // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":" // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":" (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":" -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":" -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":" // Utility functions","highlight_start":1,"highlight_end":25},{"text":" (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (","highlight_start":1,"highlight_end":6},{"text":" WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":" $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":" fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":" $strname(err)","highlight_start":1,"highlight_end":30},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" self.0.description()","highlight_start":1,"highlight_end":37},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" self.0.cause()","highlight_start":1,"highlight_end":31},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":" (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":" $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":" $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":" buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [ ]);","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":" (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" pub enum $name {","highlight_start":1,"highlight_end":25},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":" (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" enum $name {","highlight_start":1,"highlight_end":21},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Unit variant","highlight_start":1,"highlight_end":20},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Tuple variant","highlight_start":1,"highlight_end":21},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Struct variant","highlight_start":1,"highlight_end":22},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":" $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":" $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":" )*}","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":" fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":" display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":" $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":" write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $expr","highlight_start":1,"highlight_end":14},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":" $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" stringify!($item)","highlight_start":1,"highlight_end":26},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" Some($expr)","highlight_start":1,"highlight_end":20},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":" { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" None","highlight_start":1,"highlight_end":13},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":" fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":" $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":" [ ]","highlight_start":1,"highlight_end":12},{"text":" { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":" $name::$item","highlight_start":1,"highlight_end":29},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: UNIT [ ]","highlight_start":1,"highlight_end":35},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context)","highlight_start":1,"highlight_end":74},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":" ) => { };","highlight_start":1,"highlight_end":14},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":" [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item","highlight_start":1,"highlight_end":21},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":" // anything else.","highlight_start":1,"highlight_end":22},{"text":" // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":" // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":" (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":" -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":" -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":" // Utility functions","highlight_start":1,"highlight_end":25},{"text":" (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (","highlight_start":1,"highlight_end":6},{"text":" WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":" $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":" fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":" $strname(err)","highlight_start":1,"highlight_end":30},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" self.0.description()","highlight_start":1,"highlight_end":37},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" self.0.cause()","highlight_start":1,"highlight_end":31},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":" (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":" $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":" $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":" buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [ ]);","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":" (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" pub enum $name {","highlight_start":1,"highlight_end":25},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":" (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" enum $name {","highlight_start":1,"highlight_end":21},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Unit variant","highlight_start":1,"highlight_end":20},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Tuple variant","highlight_start":1,"highlight_end":21},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Struct variant","highlight_start":1,"highlight_end":22},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":" $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":" $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":" )*}","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":" fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":" display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":" $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":" write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $expr","highlight_start":1,"highlight_end":14},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":" $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" stringify!($item)","highlight_start":1,"highlight_end":26},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" Some($expr)","highlight_start":1,"highlight_end":20},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":" { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" None","highlight_start":1,"highlight_end":13},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":" fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":" $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":" [ ]","highlight_start":1,"highlight_end":12},{"text":" { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":" $name::$item","highlight_start":1,"highlight_end":29},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: UNIT [ ]","highlight_start":1,"highlight_end":35},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context)","highlight_start":1,"highlight_end":74},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":" ) => { };","highlight_start":1,"highlight_end":14},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":" [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item","highlight_start":1,"highlight_end":21},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":" // anything else.","highlight_start":1,"highlight_end":22},{"text":" // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":" // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":" (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":" -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":" -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":" // Utility functions","highlight_start":1,"highlight_end":25},{"text":" (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (","highlight_start":1,"highlight_end":6},{"text":" WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":" $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":" fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":" $strname(err)","highlight_start":1,"highlight_end":30},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" self.0.description()","highlight_start":1,"highlight_end":37},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" self.0.cause()","highlight_start":1,"highlight_end":31},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":" (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":" $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":" $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":" buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [ ]);","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":" (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" pub enum $name {","highlight_start":1,"highlight_end":25},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":" (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" enum $name {","highlight_start":1,"highlight_end":21},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Unit variant","highlight_start":1,"highlight_end":20},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Tuple variant","highlight_start":1,"highlight_end":21},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Struct variant","highlight_start":1,"highlight_end":22},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":" $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":" $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":" )*}","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":" fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":" display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":" $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":" write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $expr","highlight_start":1,"highlight_end":14},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":" $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" stringify!($item)","highlight_start":1,"highlight_end":26},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" Some($expr)","highlight_start":1,"highlight_end":20},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":" { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" None","highlight_start":1,"highlight_end":13},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":" fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":" $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":" [ ]","highlight_start":1,"highlight_end":12},{"text":" { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":" $name::$item","highlight_start":1,"highlight_end":29},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: UNIT [ ]","highlight_start":1,"highlight_end":35},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context)","highlight_start":1,"highlight_end":74},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":" ) => { };","highlight_start":1,"highlight_end":14},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":" [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item","highlight_start":1,"highlight_end":21},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":" // anything else.","highlight_start":1,"highlight_end":22},{"text":" // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":" // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":" (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":" -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":" -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":" // Utility functions","highlight_start":1,"highlight_end":25},{"text":" (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}},"macro_decl_name":"quick_error!","def_site_span":{"file_name":"/opt/rustwide/cargo-home/registry/src/github.com-1ecc6299db9ec823/quick-error-1.2.2/src/lib.rs","byte_start":8828,"byte_end":34522,"line_start":307,"line_end":998,"column_start":1,"column_end":2,"is_primary":false,"text":[{"text":"macro_rules! quick_error {","highlight_start":1,"highlight_end":27},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":48},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [pub enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":57},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [enum $name $(#[$meta])* ]","highlight_start":1,"highlight_end":53},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" pub enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":75},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ pub struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":76},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":67},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":58},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" ( $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" enum $name:ident wraps pub $enum_name:ident { $($chunks:tt)* }","highlight_start":1,"highlight_end":71},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(WRAPPER $enum_name [ struct ] $name $(#[$meta])*);","highlight_start":1,"highlight_end":72},{"text":" quick_error!(SORT [pub enum $enum_name $(#[$meta])* ]","highlight_start":1,"highlight_end":62},{"text":" items [] buf []","highlight_start":1,"highlight_end":28},{"text":" queue [ $($chunks)* ]);","highlight_start":1,"highlight_end":36},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (","highlight_start":1,"highlight_end":6},{"text":" WRAPPER $internal:ident [ $($strdef:tt)* ] $strname:ident","highlight_start":1,"highlight_end":66},{"text":" $(#[$meta:meta])*","highlight_start":1,"highlight_end":26},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" $($strdef)* $strname ( $internal );","highlight_start":1,"highlight_end":44},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::fmt::Display for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn fmt(&self, f: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":57},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" ::std::fmt::Display::fmt(&self.0, f)","highlight_start":1,"highlight_end":53},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl From<$internal> for $strname {","highlight_start":1,"highlight_end":44},{"text":" fn from(err: $internal) -> Self {","highlight_start":1,"highlight_end":46},{"text":" $strname(err)","highlight_start":1,"highlight_end":30},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":"","highlight_start":1,"highlight_end":1},{"text":" impl ::std::error::Error for $strname {","highlight_start":1,"highlight_end":48},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" self.0.description()","highlight_start":1,"highlight_end":37},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" self.0.cause()","highlight_start":1,"highlight_end":31},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":"","highlight_start":1,"highlight_end":1},{"text":" // Queue is empty, can do the work","highlight_start":1,"highlight_end":39},{"text":" (SORT [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":49},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":65},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (SORT [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":53},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [ ]","highlight_start":1,"highlight_end":16},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [pub enum $name $( #[$meta] )*]","highlight_start":1,"highlight_end":69},{"text":" body []","highlight_start":1,"highlight_end":20},{"text":" queue [$($( #[$imeta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem: $imode [$( $ivar: $ityp ),*] )*]","highlight_start":1,"highlight_end":66},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" quick_error!(IMPLEMENTATIONS $name {$(","highlight_start":1,"highlight_end":47},{"text":" $iitem: $imode [$(#[$imeta])*] [$( $ivar: $ityp ),*] {$( $ifuncs )*}","highlight_start":1,"highlight_end":80},{"text":" )*});","highlight_start":1,"highlight_end":17},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ERROR_CHECK $imode $($ifuncs)*);","highlight_start":1,"highlight_end":58},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add meta to buffer","highlight_start":1,"highlight_end":26},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* #[$qmeta] ]","highlight_start":1,"highlight_end":45},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add ident to buffer","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*]","highlight_start":1,"highlight_end":35},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])*","highlight_start":1,"highlight_end":36},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":81},{"text":" buf [$(#[$bmeta])* => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":54},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on meta after ident","highlight_start":1,"highlight_end":40},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ #[$qmeta:meta] $( $tail:tt )*]","highlight_start":1,"highlight_end":47},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" enum [$( $(#[$emeta])* => $eitem $(( $($etyp),* ))* )*","highlight_start":1,"highlight_end":67},{"text":" $(#[$bmeta])* => $bitem: $bmode $(( $($btyp),* ))*]","highlight_start":1,"highlight_end":73},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":42},{"text":" => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":80},{"text":" $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":62},{"text":" buf [ #[$qmeta] ]","highlight_start":1,"highlight_end":30},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add tuple enum-variant","highlight_start":1,"highlight_end":30},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [($( $qvar:ident: $qtyp:ty ),+) $( $tail:tt )*]","highlight_start":1,"highlight_end":62},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: TUPLE [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":73},{"text":" queue [$( $tail )*]","highlight_start":1,"highlight_end":32},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant - e.g. { descr: &'static str }","highlight_start":1,"highlight_end":62},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{ $( $qvar:ident: $qtyp:ty ),+} $( $tail:tt )*]","highlight_start":1,"highlight_end":63},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add struct enum-variant, with excess comma - e.g. { descr: &'static str, }","highlight_start":1,"highlight_end":82},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )* => $bitem:ident: UNIT [ ] ]","highlight_start":1,"highlight_end":62},{"text":" queue [{$( $qvar:ident: $qtyp:ty ),+ ,} $( $tail:tt )*]","highlight_start":1,"highlight_end":64},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*]","highlight_start":1,"highlight_end":95},{"text":" buf [$( #[$bmeta] )* => $bitem: STRUCT [$( $qvar:$qtyp ),*] ]","highlight_start":1,"highlight_end":74},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Add braces and flush always on braces","highlight_start":1,"highlight_end":45},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ {$( $qfuncs:tt )*} $( $tail:tt )*]","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {$( $qfuncs )*} ]","highlight_start":1,"highlight_end":93},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on double ident","highlight_start":1,"highlight_end":36},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":77},{"text":" queue [ $qitem:ident $( $tail:tt )*]","highlight_start":1,"highlight_end":45},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ => $qitem : UNIT [ ] ]","highlight_start":1,"highlight_end":41},{"text":" queue [$( $tail )*]);","highlight_start":1,"highlight_end":34},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Flush buffer on end","highlight_start":1,"highlight_end":27},{"text":" (SORT [$( $def:tt )*]","highlight_start":1,"highlight_end":26},{"text":" items [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":38},{"text":" => $iitem:ident: $imode:tt [$( $ivar:ident: $ityp:ty ),*]","highlight_start":1,"highlight_end":76},{"text":" {$( $ifuncs:tt )*} )* ]","highlight_start":1,"highlight_end":56},{"text":" buf [$( #[$bmeta:meta] )*","highlight_start":1,"highlight_end":34},{"text":" => $bitem:ident: $bmode:tt [$( $bvar:ident: $btyp:ty ),*] ]","highlight_start":1,"highlight_end":72},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(SORT [$( $def )*]","highlight_start":1,"highlight_end":39},{"text":" items [$( $(#[$imeta])* => $iitem: $imode [$( $ivar:$ityp ),*] {$( $ifuncs )*} )*","highlight_start":1,"highlight_end":94},{"text":" $(#[$bmeta])* => $bitem: $bmode [$( $bvar:$btyp ),*] {} ]","highlight_start":1,"highlight_end":79},{"text":" buf [ ]","highlight_start":1,"highlight_end":20},{"text":" queue [ ]);","highlight_start":1,"highlight_end":24},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Public enum (Queue Empty)","highlight_start":1,"highlight_end":33},{"text":" (ENUM_DEFINITION [pub enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":64},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" pub enum $name {","highlight_start":1,"highlight_end":25},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Private enum (Queue Empty)","highlight_start":1,"highlight_end":34},{"text":" (ENUM_DEFINITION [enum $name:ident $( #[$meta:meta] )*]","highlight_start":1,"highlight_end":60},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [ ]","highlight_start":1,"highlight_end":18},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" $(#[$meta])*","highlight_start":1,"highlight_end":21},{"text":" enum $name {","highlight_start":1,"highlight_end":21},{"text":" $(","highlight_start":1,"highlight_end":15},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":30},{"text":" $iitem $(($( $ttyp ),*))* $({$( $svar: $styp ),*})*,","highlight_start":1,"highlight_end":69},{"text":" )*","highlight_start":1,"highlight_end":15},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Unit variant","highlight_start":1,"highlight_end":20},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: UNIT [ ] $( $queue:tt )*]","highlight_start":1,"highlight_end":55},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {} ]","highlight_start":1,"highlight_end":54},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Tuple variant","highlight_start":1,"highlight_end":21},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: TUPLE [$( $qvar:ident: $qtyp:ty ),+] $( $queue:tt )*]","highlight_start":1,"highlight_end":83},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem (($( $qtyp ),*)) {} ]","highlight_start":1,"highlight_end":68},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // Struct variant","highlight_start":1,"highlight_end":22},{"text":" (ENUM_DEFINITION [$( $def:tt )*]","highlight_start":1,"highlight_end":37},{"text":" body [$($( #[$imeta:meta] )*","highlight_start":1,"highlight_end":37},{"text":" => $iitem:ident ($(($( $ttyp:ty ),+))*) {$({$( $svar:ident: $styp:ty ),*})*} )* ]","highlight_start":1,"highlight_end":94},{"text":" queue [$( #[$qmeta:meta] )*","highlight_start":1,"highlight_end":36},{"text":" => $qitem:ident: STRUCT [$( $qvar:ident: $qtyp:ty ),*] $( $queue:tt )*]","highlight_start":1,"highlight_end":84},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(ENUM_DEFINITION [ $($def)* ]","highlight_start":1,"highlight_end":50},{"text":" body [$($( #[$imeta] )* => $iitem ($(($( $ttyp ),+))*) {$({$( $svar: $styp ),*})*} )*","highlight_start":1,"highlight_end":98},{"text":" $( #[$qmeta] )* => $qitem () {{$( $qvar: $qtyp ),*}} ]","highlight_start":1,"highlight_end":75},{"text":" queue [ $($queue)* ]","highlight_start":1,"highlight_end":33},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (IMPLEMENTATIONS","highlight_start":1,"highlight_end":21},{"text":" $name:ident {$(","highlight_start":1,"highlight_end":24},{"text":" $item:ident: $imode:tt [$(#[$imeta:meta])*] [$( $var:ident: $typ:ty ),*] {$( $funcs:tt )*}","highlight_start":1,"highlight_end":103},{"text":" )*}","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::fmt::Display for $name {","highlight_start":1,"highlight_end":45},{"text":" fn fmt(&self, fmt: &mut ::std::fmt::Formatter)","highlight_start":1,"highlight_end":59},{"text":" -> ::std::fmt::Result","highlight_start":1,"highlight_end":38},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" let display_fn = quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":76},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":52},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":49},{"text":"","highlight_start":1,"highlight_end":1},{"text":" display_fn(self, fmt)","highlight_start":1,"highlight_end":50},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" #[allow(unused)]","highlight_start":1,"highlight_end":25},{"text":" #[allow(unknown_lints)] // no unused_doc_comments in older rust","highlight_start":1,"highlight_end":73},{"text":" #[allow(renamed_and_removed_lints)]","highlight_start":1,"highlight_end":44},{"text":" #[allow(unused_doc_comment)]","highlight_start":1,"highlight_end":37},{"text":" #[allow(unused_doc_comments)]","highlight_start":1,"highlight_end":38},{"text":" impl ::std::error::Error for $name {","highlight_start":1,"highlight_end":45},{"text":" fn description(&self) -> &str {","highlight_start":1,"highlight_end":44},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":63},{"text":" $item: $imode self fmt [$( $var ),*]","highlight_start":1,"highlight_end":69},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" fn cause(&self) -> Option<&::std::error::Error> {","highlight_start":1,"highlight_end":62},{"text":" match *self {","highlight_start":1,"highlight_end":30},{"text":" $(","highlight_start":1,"highlight_end":23},{"text":" $(#[$imeta])*","highlight_start":1,"highlight_end":38},{"text":" quick_error!(ITEM_PATTERN","highlight_start":1,"highlight_end":50},{"text":" $name $item: $imode [$( ref $var ),*]","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":31},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":57},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":60},{"text":" {$( $funcs )*})","highlight_start":1,"highlight_end":48},{"text":" }","highlight_start":1,"highlight_end":26},{"text":" )*","highlight_start":1,"highlight_end":23},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":40},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":43},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":55},{"text":" {$( $funcs )*});","highlight_start":1,"highlight_end":33},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |quick_error!(IDENT $self_): &$name, f: &mut ::std::fmt::Formatter| { write!(f, $( $exprs )*) }","highlight_start":1,"highlight_end":104},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":49},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern) }","highlight_start":1,"highlight_end":67},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { display($pattern:expr, $( $exprs:tt )*) $( $tail:tt )*}","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |_, f: &mut ::std::fmt::Formatter| { write!(f, $pattern, $( $exprs )*) }","highlight_start":1,"highlight_end":81},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DISPLAY_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode","highlight_start":1,"highlight_end":32},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DISPLAY_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" |self_: &$name, f: &mut ::std::fmt::Formatter| {","highlight_start":1,"highlight_end":57},{"text":" write!(f, \"{}\", ::std::error::Error::description(self_))","highlight_start":1,"highlight_end":69},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { description($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":50},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $expr","highlight_start":1,"highlight_end":14},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_DESCRIPTION_IMPL","highlight_start":1,"highlight_end":43},{"text":" $item: $imode $me $fmt [$( $var ),*]","highlight_start":1,"highlight_end":49},{"text":" {$( $tail )*})","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_DESCRIPTION_IMPL $item:ident: $imode:tt $me:ident $fmt:ident","highlight_start":1,"highlight_end":71},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" stringify!($item)","highlight_start":1,"highlight_end":26},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { cause($expr:expr) $( $tail:tt )*}","highlight_start":1,"highlight_end":44},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" Some($expr)","highlight_start":1,"highlight_end":20},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CAUSE_IMPL","highlight_start":1,"highlight_end":37},{"text":" $item: $imode [$( $var ),*]","highlight_start":1,"highlight_end":40},{"text":" { $($tail)* })","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CAUSE_IMPL $item:ident: $imode:tt","highlight_start":1,"highlight_end":44},{"text":" [$( $var:ident ),*]","highlight_start":1,"highlight_end":28},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" None","highlight_start":1,"highlight_end":13},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- FROM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from() $( $tail:tt )*}","highlight_start":1,"highlight_end":33},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $(","highlight_start":1,"highlight_end":11},{"text":" impl From<$typ> for $name {","highlight_start":1,"highlight_end":40},{"text":" fn from($var: $typ) -> $name {","highlight_start":1,"highlight_end":47},{"text":" $name::$item($var)","highlight_start":1,"highlight_end":39},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" )*","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: UNIT","highlight_start":1,"highlight_end":50},{"text":" [ ]","highlight_start":1,"highlight_end":12},{"text":" { from($ftyp:ty) $( $tail:tt )*}","highlight_start":1,"highlight_end":41},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from(_discarded_error: $ftyp) -> $name {","highlight_start":1,"highlight_end":56},{"text":" $name::$item","highlight_start":1,"highlight_end":29},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: UNIT [ ]","highlight_start":1,"highlight_end":35},{"text":" {$( $tail )*});","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":51},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> ($( $texpr:expr ),*) $( $tail:tt )*}","highlight_start":1,"highlight_end":78},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":52},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { from($fvar:ident: $ftyp:ty) -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )*}","highlight_start":1,"highlight_end":91},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl From<$ftyp> for $name {","highlight_start":1,"highlight_end":37},{"text":" fn from($fvar: $ftyp) -> $name {","highlight_start":1,"highlight_end":45},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_FROM_IMPL","highlight_start":1,"highlight_end":36},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_FROM_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- CONTEXT IMPL --------------------------","highlight_start":1,"highlight_end":77},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context)","highlight_start":1,"highlight_end":74},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> ($( $texpr:expr ),*) $( $tail:tt )* }","highlight_start":1,"highlight_end":53},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item($( $texpr ),*)","highlight_start":1,"highlight_end":44},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: TUPLE [$( $var:$typ ),*]","highlight_start":1,"highlight_end":50},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: AsRef<$ctyp:ty>, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":71},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl> From<$crate::Context> for $name {","highlight_start":1,"highlight_end":74},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":55},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":64},{"text":" -> {$( $tvar:ident: $texpr:expr ),*} $( $tail:tt )* }","highlight_start":1,"highlight_end":66},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" impl<'a> From<$crate::Context<$ctyp, $ftyp>> for $name {","highlight_start":1,"highlight_end":65},{"text":" fn from(","highlight_start":1,"highlight_end":21},{"text":" $crate::Context($cvar, $fvar): $crate::Context<$ctyp, $ftyp>)","highlight_start":1,"highlight_end":78},{"text":" -> $name","highlight_start":1,"highlight_end":25},{"text":" {","highlight_start":1,"highlight_end":14},{"text":" $name::$item {","highlight_start":1,"highlight_end":31},{"text":" $( $tvar: $texpr ),*","highlight_start":1,"highlight_end":41},{"text":" }","highlight_start":1,"highlight_end":18},{"text":" }","highlight_start":1,"highlight_end":14},{"text":" }","highlight_start":1,"highlight_end":10},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: STRUCT [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" { $($tail)* });","highlight_start":1,"highlight_end":28},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { $t:tt $( $tail:tt )*}","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" quick_error!(FIND_CONTEXT_IMPL","highlight_start":1,"highlight_end":39},{"text":" $name $item: $imode [$( $var:$typ ),*]","highlight_start":1,"highlight_end":51},{"text":" {$( $tail )*}","highlight_start":1,"highlight_end":26},{"text":" );","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (FIND_CONTEXT_IMPL $name:ident $item:ident: $imode:tt","highlight_start":1,"highlight_end":58},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" { }","highlight_start":1,"highlight_end":12},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // ----------------------------- ITEM IMPL --------------------------","highlight_start":1,"highlight_end":74},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: UNIT","highlight_start":1,"highlight_end":52},{"text":" ) => { };","highlight_start":1,"highlight_end":14},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: TUPLE","highlight_start":1,"highlight_end":53},{"text":" [$( $typ:ty ),*]","highlight_start":1,"highlight_end":25},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" ($( $typ ),*)","highlight_start":1,"highlight_end":22},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_BODY $(#[$imeta:meta])* $item:ident: STRUCT","highlight_start":1,"highlight_end":54},{"text":" [$( $var:ident: $typ:ty ),*]","highlight_start":1,"highlight_end":37},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" {$( $var:$typ ),*}","highlight_start":1,"highlight_end":27},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: UNIT []","highlight_start":1,"highlight_end":51},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item","highlight_start":1,"highlight_end":21},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: TUPLE","highlight_start":1,"highlight_end":49},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item ($( ref $var ),*)","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" (ITEM_PATTERN $name:ident $item:ident: STRUCT","highlight_start":1,"highlight_end":50},{"text":" [$( ref $var:ident ),*]","highlight_start":1,"highlight_end":32},{"text":" ) => {","highlight_start":1,"highlight_end":11},{"text":" $name::$item {$( ref $var ),*}","highlight_start":1,"highlight_end":39},{"text":" };","highlight_start":1,"highlight_end":7},{"text":" // This one should match all allowed sequences in \"funcs\" but not match","highlight_start":1,"highlight_end":76},{"text":" // anything else.","highlight_start":1,"highlight_end":22},{"text":" // This is to contrast FIND_* clauses which just find stuff they need and","highlight_start":1,"highlight_end":78},{"text":" // skip everything else completely","highlight_start":1,"highlight_end":39},{"text":" (ERROR_CHECK $imode:tt display($self_:tt) -> ($( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":83},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt display($pattern: expr, $( $exprs:tt )*) $( $tail:tt )*)","highlight_start":1,"highlight_end":84},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt description($expr:expr) $( $tail:tt )*)","highlight_start":1,"highlight_end":67},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt cause($expr:expr) $($tail:tt)*)","highlight_start":1,"highlight_end":59},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from() $($tail:tt)*)","highlight_start":1,"highlight_end":48},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK $imode:tt from($ftyp:ty) $($tail:tt)*)","highlight_start":1,"highlight_end":56},{"text":" => { quick_error!(ERROR_CHECK $imode $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":" (ERROR_CHECK TUPLE from($fvar:ident: $ftyp:ty) -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":87},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT from($fvar:ident: $ftyp:ty) -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":98},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK TUPLE context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":77},{"text":" -> ($( $e:expr ),*) $( $tail:tt )*)","highlight_start":1,"highlight_end":44},{"text":" => { quick_error!(ERROR_CHECK TUPLE $($tail)*); };","highlight_start":1,"highlight_end":55},{"text":" (ERROR_CHECK STRUCT context($cvar:ident: $ctyp:ty, $fvar:ident: $ftyp:ty)","highlight_start":1,"highlight_end":78},{"text":" -> {$( $v:ident: $e:expr ),*} $( $tail:tt )*)","highlight_start":1,"highlight_end":54},{"text":" => { quick_error!(ERROR_CHECK STRUCT $($tail)*); };","highlight_start":1,"highlight_end":56},{"text":"","highlight_start":1,"highlight_end":1},{"text":" (ERROR_CHECK $imode:tt ) => {};","highlight_start":1,"highlight_end":36},{"text":" // Utility functions","highlight_start":1,"highlight_end":25},{"text":" (IDENT $ident:ident) => { $ident }","highlight_start":1,"highlight_end":39},{"text":"}","highlight_start":1,"highlight_end":2}],"label":null,"suggested_replacement":null,"suggestion_applicability":null,"expansion":null}}}],"children":[],"rendered":"\u001b[0m\u001b[1m\u001b[33mwarning\u001b[0m\u001b[0m\u001b[1m: use of deprecated item 'std::error::Error::description': use the Display impl or to_string()\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m--> \u001b[0m\u001b[0msrc/error.rs:5:1\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m5\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m\u001b[1m\u001b[33m/\u001b[0m\u001b[0m \u001b[0m\u001b[0mquick_error! {\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m6\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m\u001b[1m\u001b[33m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m /// Crate-specific error enum.\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m7\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m\u001b[1m\u001b[33m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m #[derive(Debug)]\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m8\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m\u001b[1m\u001b[33m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m pub enum Error {\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m...\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[33m|\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m103\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m\u001b[1m\u001b[33m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m }\u001b[0m\n\u001b[0m\u001b[1m\u001b[38;5;12m104\u001b[0m\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m\u001b[1m\u001b[33m|\u001b[0m\u001b[0m \u001b[0m\u001b[0m}\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m| \u001b[0m\u001b[0m\u001b[1m\u001b[33m|_^\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m|\u001b[0m\n\u001b[0m \u001b[0m\u001b[0m\u001b[1m\u001b[38;5;12m= \u001b[0m\u001b[0m\u001b[1mnote\u001b[0m\u001b[0m: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)\u001b[0m\n\n"}} [INFO] [stdout] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string() [INFO] [stdout] --> src/writer.rs:62:29 [INFO] [stdout] | [INFO] [stdout] 62 | description(err.description()) [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string() [INFO] [stdout] --> src/error.rs:30:29 [INFO] [stdout] | [INFO] [stdout] 30 | description(err.description()) [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string() [INFO] [stdout] --> src/error.rs:70:29 [INFO] [stdout] | [INFO] [stdout] 70 | description(err.description()) [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 7 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 5.20s [INFO] running `Command { std: "docker" "inspect" "cba4d652139f72aca5e14e8209b1ae4566e6566463040d1dfe744e258abbe506", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "cba4d652139f72aca5e14e8209b1ae4566e6566463040d1dfe744e258abbe506", kill_on_drop: false }` [INFO] [stdout] cba4d652139f72aca5e14e8209b1ae4566e6566463040d1dfe744e258abbe506 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-14/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-14/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env@sha256:a636fd89d022f18117e1dc8fb37a0a009933cdbbe082814857f0e2024962d47c" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2020-07-24" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 3beb0af191402b782d2510cc62298a1857c2ede585c46a1e9160932a53147a6a [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "3beb0af191402b782d2510cc62298a1857c2ede585c46a1e9160932a53147a6a", kill_on_drop: false }` [INFO] [stderr] Compiling las v0.7.1 (/opt/rustwide/workdir) [INFO] [stdout] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string() [INFO] [stdout] --> src/header/mod.rs:64:1 [INFO] [stdout] | [INFO] [stdout] 64 | / quick_error! { [INFO] [stdout] 65 | | /// Header-specific errors. [INFO] [stdout] 66 | | #[derive(Clone, Copy, Debug)] [INFO] [stdout] 67 | | pub enum Error { [INFO] [stdout] ... | [INFO] [stdout] 122 | | } [INFO] [stdout] 123 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string() [INFO] [stdout] --> src/point/mod.rs:27:1 [INFO] [stdout] | [INFO] [stdout] 27 | / quick_error! { [INFO] [stdout] 28 | | /// Point-specific errors [INFO] [stdout] 29 | | #[derive(Debug, Clone, Copy)] [INFO] [stdout] 30 | | pub enum Error { [INFO] [stdout] ... | [INFO] [stdout] 62 | | } [INFO] [stdout] 63 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string() [INFO] [stdout] --> src/writer.rs:45:1 [INFO] [stdout] | [INFO] [stdout] 45 | / quick_error! { [INFO] [stdout] 46 | | /// Writer errors. [INFO] [stdout] 47 | | #[derive(Debug)] [INFO] [stdout] 48 | | pub enum Error { [INFO] [stdout] ... | [INFO] [stdout] 65 | | } [INFO] [stdout] 66 | | } [INFO] [stdout] | |_^ [INFO] [stdout] | [INFO] [stdout] = note: this warning originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) [INFO] [stdout] [INFO] [stdout] [WARN] too much data in the log, truncating it