[INFO] fetching crate typ-p 0.0.1... [INFO] checking typ-p-0.0.1 against master#ab869e094a907cc5d19b4080f22eccaf347f1f95 for pr-129604 [INFO] extracting crate typ-p 0.0.1 into /workspace/builds/worker-2-tc1/source [INFO] validating manifest of crates.io crate typ-p 0.0.1 on toolchain ab869e094a907cc5d19b4080f22eccaf347f1f95 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ab869e094a907cc5d19b4080f22eccaf347f1f95" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking crates.io crate typ-p 0.0.1 [INFO] finished tweaking crates.io crate typ-p 0.0.1 [INFO] tweaked toml for crates.io crate typ-p 0.0.1 written to /workspace/builds/worker-2-tc1/source/Cargo.toml [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ab869e094a907cc5d19b4080f22eccaf347f1f95" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Locking 233 packages to latest compatible versions [INFO] [stderr] Adding addr2line v0.22.0 (latest: v0.24.1) [INFO] [stderr] Adding base64 v0.21.7 (latest: v0.22.1) [INFO] [stderr] Adding core-foundation v0.9.4 (latest: v0.10.0) [INFO] [stderr] Adding fixedbitset v0.4.2 (latest: v0.5.7) [INFO] [stderr] Adding gimli v0.29.0 (latest: v0.31.0) [INFO] [stderr] Adding hashbrown v0.12.3 (latest: v0.14.5) [INFO] [stderr] Adding hermit-abi v0.3.9 (latest: v0.4.0) [INFO] [stderr] Adding idna v0.5.0 (latest: v1.0.2) [INFO] [stderr] Adding indexmap v1.9.3 (latest: v2.5.0) [INFO] [stderr] Adding linux-raw-sys v0.4.14 (latest: v0.6.5) [INFO] [stderr] Adding matchit v0.7.3 (latest: v0.8.4) [INFO] [stderr] Adding miniz_oxide v0.7.4 (latest: v0.8.0) [INFO] [stderr] Adding pin-project v0.4.30 (latest: v1.1.5) [INFO] [stderr] Adding pin-project-internal v0.4.30 (latest: v1.1.5) [INFO] [stderr] Adding rustls-native-certs v0.7.3 (latest: v0.8.0) [INFO] [stderr] Adding syn v1.0.109 (latest: v2.0.77) [INFO] [stderr] Adding sync_wrapper v0.1.2 (latest: v1.0.1) [INFO] [stderr] Adding synstructure v0.12.6 (latest: v0.13.1) [INFO] [stderr] Adding tower v0.4.13 (latest: v0.5.0) [INFO] [stderr] Adding wasi v0.11.0+wasi-snapshot-preview1 (latest: v0.13.2+wasi-0.2.1) [INFO] [stderr] Adding windows-core v0.52.0 (latest: v0.58.0) [INFO] [stderr] Adding windows-sys v0.52.0 (latest: v0.59.0) [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ab869e094a907cc5d19b4080f22eccaf347f1f95" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded tonic-build v0.12.2 [INFO] [stderr] Downloaded secret-vault-value v0.3.9 [INFO] [stderr] Downloaded m-helper v0.0.1 [INFO] [stderr] Downloaded hyper-timeout v0.5.1 [INFO] [stderr] Downloaded chronoutil v0.2.7 [INFO] [stderr] Downloaded derive_pb v0.0.2 [INFO] [stderr] Downloaded tower-util v0.3.1 [INFO] [stderr] Downloaded gcloud-sdk v0.25.5 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/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" "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" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+ab869e094a907cc5d19b4080f22eccaf347f1f95" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 6b48242741cdf8829a0d0c0598ecbb83fbf8c5b1dcbcd8ddcc8706222999302e [INFO] running `Command { std: "docker" "start" "-a" "6b48242741cdf8829a0d0c0598ecbb83fbf8c5b1dcbcd8ddcc8706222999302e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "6b48242741cdf8829a0d0c0598ecbb83fbf8c5b1dcbcd8ddcc8706222999302e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "6b48242741cdf8829a0d0c0598ecbb83fbf8c5b1dcbcd8ddcc8706222999302e", kill_on_drop: false }` [INFO] [stdout] 6b48242741cdf8829a0d0c0598ecbb83fbf8c5b1dcbcd8ddcc8706222999302e [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/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" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:923055f121b5182466d55868a8b05e67af8ba4a3a3f6bad814e953ca3cd3ac2a" "/opt/rustwide/cargo-home/bin/cargo" "+ab869e094a907cc5d19b4080f22eccaf347f1f95" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 17c7b34c55688542d7508b08923a5d0482e17c0a9e764c67ba1ff362825e2248 [INFO] running `Command { std: "docker" "start" "-a" "17c7b34c55688542d7508b08923a5d0482e17c0a9e764c67ba1ff362825e2248", kill_on_drop: false }` [INFO] [stderr] Compiling proc-macro2 v1.0.86 [INFO] [stderr] Compiling unicode-ident v1.0.12 [INFO] [stderr] Compiling autocfg v1.3.0 [INFO] [stderr] Compiling libc v0.2.158 [INFO] [stderr] Checking memchr v2.7.4 [INFO] [stderr] Checking pin-project-lite v0.2.14 [INFO] [stderr] Checking bytes v1.7.1 [INFO] [stderr] Checking futures-core v0.3.30 [INFO] [stderr] Checking itoa v1.0.11 [INFO] [stderr] Checking futures-sink v0.3.30 [INFO] [stderr] Compiling version_check v0.9.5 [INFO] [stderr] Compiling serde v1.0.209 [INFO] [stderr] Checking futures-task v0.3.30 [INFO] [stderr] Checking log v0.4.22 [INFO] [stderr] Checking futures-io v0.3.30 [INFO] [stderr] Checking pin-utils v0.1.0 [INFO] [stderr] Checking once_cell v1.19.0 [INFO] [stderr] Compiling rustversion v1.0.17 [INFO] [stderr] Checking fnv v1.0.7 [INFO] [stderr] Compiling shlex v1.3.0 [INFO] [stderr] Checking byteorder v1.5.0 [INFO] [stderr] Checking futures-channel v0.3.30 [INFO] [stderr] Checking tower-service v0.3.3 [INFO] [stderr] Compiling httparse v1.9.4 [INFO] [stderr] Checking hashbrown v0.14.5 [INFO] [stderr] Checking untrusted v0.9.0 [INFO] [stderr] Checking tracing-core v0.1.32 [INFO] [stderr] Checking rustls-pki-types v1.8.0 [INFO] [stderr] Checking tower-layer v0.3.3 [INFO] [stderr] Compiling syn v1.0.109 [INFO] [stderr] Checking spin v0.9.8 [INFO] [stderr] Compiling cc v1.1.15 [INFO] [stderr] Checking equivalent v1.0.1 [INFO] [stderr] Checking try-lock v0.2.5 [INFO] [stderr] Compiling anyhow v1.0.86 [INFO] [stderr] Checking atomic-waker v1.1.2 [INFO] [stderr] Checking base64 v0.22.1 [INFO] [stderr] Compiling slab v0.4.9 [INFO] [stderr] Compiling indexmap v1.9.3 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling unicase v2.7.0 [INFO] [stderr] Checking want v0.3.1 [INFO] [stderr] Compiling either v1.13.0 [INFO] [stderr] Compiling rustls v0.23.12 [INFO] [stderr] Checking percent-encoding v2.3.1 [INFO] [stderr] Checking http v1.1.0 [INFO] [stderr] Checking smallvec v1.13.2 [INFO] [stderr] Checking getrandom v0.2.15 [INFO] [stderr] Checking socket2 v0.5.7 [INFO] [stderr] Checking mio v1.0.2 [INFO] [stderr] Checking httpdate v1.0.3 [INFO] [stderr] Compiling itertools v0.13.0 [INFO] [stderr] Checking rand_core v0.6.4 [INFO] [stderr] Checking mime v0.3.17 [INFO] [stderr] Checking subtle v2.6.1 [INFO] [stderr] Checking ryu v1.0.18 [INFO] [stderr] Checking tinyvec_macros v0.1.1 [INFO] [stderr] Checking adler2 v2.0.0 [INFO] [stderr] Compiling serde_json v1.0.127 [INFO] [stderr] Checking tinyvec v1.8.0 [INFO] [stderr] Compiling axum-core v0.4.3 [INFO] [stderr] Checking rustls-pemfile v2.1.3 [INFO] [stderr] Checking miniz_oxide v0.8.0 [INFO] [stderr] Checking crc32fast v1.4.2 [INFO] [stderr] Compiling time-core v0.1.2 [INFO] [stderr] Compiling pin-project-internal v0.4.30 [INFO] [stderr] Checking openssl-probe v0.1.5 [INFO] [stderr] Compiling thiserror v1.0.63 [INFO] [stderr] Compiling quote v1.0.37 [INFO] [stderr] Checking powerfmt v0.2.0 [INFO] [stderr] Compiling num-conv v0.1.0 [INFO] [stderr] Checking rustls-native-certs v0.7.3 [INFO] [stderr] Checking indexmap v2.5.0 [INFO] [stderr] Compiling mime_guess v2.0.5 [INFO] [stderr] Checking deranged v0.3.11 [INFO] [stderr] Compiling axum v0.7.5 [INFO] [stderr] Checking form_urlencoded v1.2.1 [INFO] [stderr] Compiling time-macros v0.2.18 [INFO] [stderr] Checking aho-corasick v1.1.3 [INFO] [stderr] Compiling syn v2.0.77 [INFO] [stderr] Compiling proc-macro-error-attr v1.0.4 [INFO] [stderr] Checking sync_wrapper v1.0.1 [INFO] [stderr] Checking unicode-bidi v0.3.15 [INFO] [stderr] Checking sync_wrapper v0.1.2 [INFO] [stderr] Checking regex-syntax v0.8.4 [INFO] [stderr] Checking flate2 v1.0.33 [INFO] [stderr] Checking num-integer v0.1.46 [INFO] [stderr] Compiling proc-macro-error v1.0.4 [INFO] [stderr] Checking matchit v0.7.3 [INFO] [stderr] Checking iana-time-zone v0.1.60 [INFO] [stderr] Checking utf8parse v0.2.2 [INFO] [stderr] Checking http-body v1.0.1 [INFO] [stderr] Compiling same-file v1.0.6 [INFO] [stderr] Checking anstyle-parse v0.2.5 [INFO] [stderr] Compiling err-derive v0.3.1 [INFO] [stderr] Checking num-bigint v0.4.6 [INFO] [stderr] Compiling walkdir v2.5.0 [INFO] [stderr] Checking pem v3.0.4 [INFO] [stderr] Checking ipnet v2.9.0 [INFO] [stderr] Checking is_terminal_polyfill v1.70.1 [INFO] [stderr] Compiling uuid v1.10.0 [INFO] [stderr] Compiling unicode-xid v0.2.5 [INFO] [stderr] Checking anstyle-query v1.1.1 [INFO] [stderr] Checking colorchoice v1.0.2 [INFO] [stderr] Checking base64 v0.21.7 [INFO] [stderr] Checking unicode-normalization v0.1.23 [INFO] [stderr] Checking anstyle v1.0.8 [INFO] [stderr] Compiling ring v0.17.8 [INFO] [stderr] Compiling m-helper v0.0.1 [INFO] [stderr] Checking humantime v2.1.0 [INFO] [stderr] Checking anstream v0.6.15 [INFO] [stderr] Checking time v0.3.36 [INFO] [stderr] Checking idna v0.5.0 [INFO] [stderr] Checking url v2.5.2 [INFO] [stderr] Checking regex-automata v0.4.7 [INFO] [stderr] Compiling synstructure v0.12.6 [INFO] [stderr] Checking regex v1.10.6 [INFO] [stderr] Checking env_filter v0.1.2 [INFO] [stderr] Checking env_logger v0.11.5 [INFO] [stderr] Checking rustls-webpki v0.102.7 [INFO] [stderr] Compiling tokio-macros v2.4.0 [INFO] [stderr] Compiling futures-macro v0.3.30 [INFO] [stderr] Compiling serde_derive v1.0.209 [INFO] [stderr] Compiling zerocopy-derive v0.7.35 [INFO] [stderr] Compiling tracing-attributes v0.1.27 [INFO] [stderr] Compiling pin-project-internal v1.1.5 [INFO] [stderr] Compiling zeroize_derive v1.4.2 [INFO] [stderr] Compiling prost-derive v0.13.2 [INFO] [stderr] Compiling thiserror-impl v1.0.63 [INFO] [stderr] Compiling async-trait v0.1.81 [INFO] [stderr] Compiling async-stream-impl v0.3.5 [INFO] [stderr] Compiling derive_pb v0.0.2 [INFO] [stderr] Checking pin-project v0.4.30 [INFO] [stderr] Checking async-stream v0.3.5 [INFO] [stderr] Checking futures-util v0.3.30 [INFO] [stderr] Checking zeroize v1.8.1 [INFO] [stderr] Checking tokio v1.40.0 [INFO] [stderr] Checking zerocopy v0.7.35 [INFO] [stderr] Checking tracing v0.1.40 [INFO] [stderr] Checking pin-project v1.1.5 [INFO] [stderr] Checking simple_asn1 v0.6.2 [INFO] [stderr] Checking ppv-lite86 v0.2.20 [INFO] [stderr] Checking prost v0.13.2 [INFO] [stderr] Checking rand_chacha v0.3.1 [INFO] [stderr] Checking rand v0.8.5 [INFO] [stderr] Checking prost-types v0.13.2 [INFO] [stderr] Checking http-body-util v0.1.2 [INFO] [stderr] Checking futures-executor v0.3.30 [INFO] [stderr] Checking tower-util v0.3.1 [INFO] [stderr] Checking futures v0.3.30 [INFO] [stderr] Checking tokio-util v0.7.11 [INFO] [stderr] Checking tokio-rustls v0.26.0 [INFO] [stderr] Checking tokio-stream v0.1.15 [INFO] [stderr] Checking async-compression v0.4.12 [INFO] [stderr] Checking h2 v0.4.6 [INFO] [stderr] Checking tower v0.4.13 [INFO] [stderr] Checking chrono v0.4.38 [INFO] [stderr] Checking serde_urlencoded v0.7.1 [INFO] [stderr] Checking envy v0.4.2 [INFO] [stderr] Checking jsonwebtoken v9.3.0 [INFO] [stderr] Checking secret-vault-value v0.3.9 [INFO] [stderr] Checking chronoutil v0.2.7 [INFO] [stderr] Checking hyper v1.4.1 [INFO] [stderr] Checking hyper-util v0.1.7 [INFO] [stderr] Checking hyper-timeout v0.5.1 [INFO] [stderr] Checking hyper-rustls v0.27.2 [INFO] [stderr] Checking tonic v0.12.2 [INFO] [stderr] Checking reqwest v0.12.7 [INFO] [stderr] Checking gcloud-sdk v0.25.5 [INFO] [stderr] Checking typ-p v0.0.1 (/opt/rustwide/workdir) [INFO] [stdout] struct [INFO] [stdout] 1 [INFO] [stderr] key: "pb_name" [INFO] [stdout] attr: Attribute { pound_token: Pound, style: AttrStyle::Outer, bracket_token: Bracket, meta: Meta::List { path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "pb", span: #0 bytes(5268..5270) }, arguments: PathArguments::None }] }, delimiter: MacroDelimiter::Paren(Paren), tokens: TokenStream [Ident { ident: "pb_name", span: #0 bytes(5271..5278) }, Punct { ch: '=', spacing: Alone, span: #0 bytes(5279..5280) }, Literal { kind: Str, symbol: "pb_Date", suffix: None, span: #0 bytes(5281..5290) }] } } [INFO] [stderr] value: "pb_Date" [INFO] [stdout] attr: Attribute { pound_token: Pound, style: AttrStyle::Outer, bracket_token: Bracket, meta: Meta::List { path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "pb", span: #0 bytes(5268..5270) }, arguments: PathArguments::None }] }, delimiter: MacroDelimiter::Paren(Paren), tokens: TokenStream [Ident { ident: "pb_name", span: #0 bytes(5271..5278) }, Punct { ch: '=', spacing: Alone, span: #0 bytes(5279..5280) }, Literal { kind: Str, symbol: "pb_Date", suffix: None, span: #0 bytes(5281..5290) }] } } [INFO] [stderr] hashmap: {"pb_name": "pb_Date"} [INFO] [stdout] A [INFO] [stderr] key: "pb_name" [INFO] [stdout] B [INFO] [stderr] value: "pb_DateDelta" [INFO] [stdout] AAA [INFO] [stderr] hashmap: {"pb_name": "pb_DateDelta"} [INFO] [stdout] BBB [INFO] [stdout] field_meta_map: FieldMetaMap { field_meta_map: {} } [INFO] [stdout] FieldAttr: Field { attrs: [], vis: Visibility::Inherited, mutability: FieldMutability::None, ident: Some(Ident { ident: "value", span: #0 bytes(5315..5320) }), colon_token: Some(Colon), ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "u32", span: #0 bytes(5322..5325) }, arguments: PathArguments::None }] } } } [INFO] [stdout] get_from_pb_fields: FieldAttr { is_skip: false, type_vec: [Ident { ident: "u32", span: #0 bytes(5322..5325) }], from_pb_func_name: None, to_pb_func_name: None, field: Field { attrs: [], vis: Visibility::Inherited, mutability: FieldMutability::None, ident: Some(Ident { ident: "value", span: #0 bytes(5315..5320) }), colon_token: Some(Colon), ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "u32", span: #0 bytes(5322..5325) }, arguments: PathArguments::None }] } } } } [INFO] [stdout] get_field_name: Some(Ident { ident: "value", span: #0 bytes(5315..5320) }) [INFO] [stdout] get_from_field_quote: Ident { ident: "value", span: #0 bytes(5315..5320) } "m_helper" [Ident { ident: "u32", span: #0 bytes(5322..5325) }] None None [INFO] [stdout] get_field_name: Some(Ident { ident: "value", span: #0 bytes(5315..5320) }) [INFO] [stdout] struct [INFO] [stdout] 4 [INFO] [stdout] attr: Attribute { pound_token: Pound, style: AttrStyle::Outer, bracket_token: Bracket, meta: Meta::List { path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "pb", span: #0 bytes(11825..11827) }, arguments: PathArguments::None }] }, delimiter: MacroDelimiter::Paren(Paren), tokens: TokenStream [Ident { ident: "pb_name", span: #0 bytes(11828..11835) }, Punct { ch: '=', spacing: Alone, span: #0 bytes(11836..11837) }, Literal { kind: Str, symbol: "pb_DateDelta", suffix: None, span: #0 bytes(11838..11852) }] } } [INFO] [stdout] attr: Attribute { pound_token: Pound, style: AttrStyle::Outer, bracket_token: Bracket, meta: Meta::List { path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "pb", span: #0 bytes(11825..11827) }, arguments: PathArguments::None }] }, delimiter: MacroDelimiter::Paren(Paren), tokens: TokenStream [Ident { ident: "pb_name", span: #0 bytes(11828..11835) }, Punct { ch: '=', spacing: Alone, span: #0 bytes(11836..11837) }, Literal { kind: Str, symbol: "pb_DateDelta", suffix: None, span: #0 bytes(11838..11852) }] } } [INFO] [stdout] A [INFO] [stdout] B [INFO] [stdout] AAA [INFO] [stdout] BBB [INFO] [stdout] field_meta_map: FieldMetaMap { field_meta_map: {} } [INFO] [stdout] FieldAttr: Field { attrs: [], vis: Visibility::Public(Pub), mutability: FieldMutability::None, ident: Some(Ident { ident: "year", span: #0 bytes(11886..11890) }), colon_token: Some(Colon), ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "i32", span: #0 bytes(11892..11895) }, arguments: PathArguments::None }] } } } [INFO] [stdout] FieldAttr: Field { attrs: [], vis: Visibility::Public(Pub), mutability: FieldMutability::None, ident: Some(Ident { ident: "month", span: #0 bytes(11905..11910) }), colon_token: Some(Colon), ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "i32", span: #0 bytes(11912..11915) }, arguments: PathArguments::None }] } } } [INFO] [stdout] FieldAttr: Field { attrs: [], vis: Visibility::Public(Pub), mutability: FieldMutability::None, ident: Some(Ident { ident: "week", span: #0 bytes(11925..11929) }), colon_token: Some(Colon), ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "i32", span: #0 bytes(11931..11934) }, arguments: PathArguments::None }] } } } [INFO] [stdout] FieldAttr: Field { attrs: [], vis: Visibility::Public(Pub), mutability: FieldMutability::None, ident: Some(Ident { ident: "day", span: #0 bytes(11944..11947) }), colon_token: Some(Colon), ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "i32", span: #0 bytes(11949..11952) }, arguments: PathArguments::None }] } } } [INFO] [stdout] get_from_pb_fields: FieldAttr { is_skip: false, type_vec: [Ident { ident: "i32", span: #0 bytes(11892..11895) }], from_pb_func_name: None, to_pb_func_name: None, field: Field { attrs: [], vis: Visibility::Public(Pub), mutability: FieldMutability::None, ident: Some(Ident { ident: "year", span: #0 bytes(11886..11890) }), colon_token: Some(Colon), ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "i32", span: #0 bytes(11892..11895) }, arguments: PathArguments::None }] } } } } [INFO] [stdout] get_field_name: Some(Ident { ident: "year", span: #0 bytes(11886..11890) }) [INFO] [stdout] get_from_field_quote: Ident { ident: "year", span: #0 bytes(11886..11890) } "m_helper" [Ident { ident: "i32", span: #0 bytes(11892..11895) }] None None [INFO] [stdout] get_from_pb_fields: FieldAttr { is_skip: false, type_vec: [Ident { ident: "i32", span: #0 bytes(11912..11915) }], from_pb_func_name: None, to_pb_func_name: None, field: Field { attrs: [], vis: Visibility::Public(Pub), mutability: FieldMutability::None, ident: Some(Ident { ident: "month", span: #0 bytes(11905..11910) }), colon_token: Some(Colon), ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "i32", span: #0 bytes(11912..11915) }, arguments: PathArguments::None }] } } } } [INFO] [stdout] get_field_name: Some(Ident { ident: "month", span: #0 bytes(11905..11910) }) [INFO] [stdout] get_from_field_quote: Ident { ident: "month", span: #0 bytes(11905..11910) } "m_helper" [Ident { ident: "i32", span: #0 bytes(11912..11915) }] None None [INFO] [stdout] get_from_pb_fields: FieldAttr { is_skip: false, type_vec: [Ident { ident: "i32", span: #0 bytes(11931..11934) }], from_pb_func_name: None, to_pb_func_name: None, field: Field { attrs: [], vis: Visibility::Public(Pub), mutability: FieldMutability::None, ident: Some(Ident { ident: "week", span: #0 bytes(11925..11929) }), colon_token: Some(Colon), ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "i32", span: #0 bytes(11931..11934) }, arguments: PathArguments::None }] } } } } [INFO] [stdout] get_field_name: Some(Ident { ident: "week", span: #0 bytes(11925..11929) }) [INFO] [stdout] get_from_field_quote: Ident { ident: "week", span: #0 bytes(11925..11929) } "m_helper" [Ident { ident: "i32", span: #0 bytes(11931..11934) }] None None [INFO] [stdout] get_from_pb_fields: FieldAttr { is_skip: false, type_vec: [Ident { ident: "i32", span: #0 bytes(11949..11952) }], from_pb_func_name: None, to_pb_func_name: None, field: Field { attrs: [], vis: Visibility::Public(Pub), mutability: FieldMutability::None, ident: Some(Ident { ident: "day", span: #0 bytes(11944..11947) }), colon_token: Some(Colon), ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "i32", span: #0 bytes(11949..11952) }, arguments: PathArguments::None }] } } } } [INFO] [stdout] get_field_name: Some(Ident { ident: "day", span: #0 bytes(11944..11947) }) [INFO] [stdout] get_from_field_quote: Ident { ident: "day", span: #0 bytes(11944..11947) } "m_helper" [Ident { ident: "i32", span: #0 bytes(11949..11952) }] None None [INFO] [stdout] get_field_name: Some(Ident { ident: "year", span: #0 bytes(11886..11890) }) [INFO] [stdout] get_field_name: Some(Ident { ident: "month", span: #0 bytes(11905..11910) }) [INFO] [stdout] get_field_name: Some(Ident { ident: "week", span: #0 bytes(11925..11929) }) [INFO] [stdout] get_field_name: Some(Ident { ident: "day", span: #0 bytes(11944..11947) }) [INFO] [stderr] key: "pb_name" [INFO] [stdout] struct [INFO] [stderr] value: "pb_DateRange" [INFO] [stdout] 2 [INFO] [stderr] hashmap: {"pb_name": "pb_DateRange"} [INFO] [stdout] attr: Attribute { pound_token: Pound, style: AttrStyle::Outer, bracket_token: Bracket, meta: Meta::List { path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "pb", span: #0 bytes(13168..13170) }, arguments: PathArguments::None }] }, delimiter: MacroDelimiter::Paren(Paren), tokens: TokenStream [Ident { ident: "pb_name", span: #0 bytes(13171..13178) }, Punct { ch: '=', spacing: Alone, span: #0 bytes(13179..13180) }, Literal { kind: Str, symbol: "pb_DateRange", suffix: None, span: #0 bytes(13181..13195) }] } } [INFO] [stdout] attr: Attribute { pound_token: Pound, style: AttrStyle::Outer, bracket_token: Bracket, meta: Meta::List { path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "pb", span: #0 bytes(13168..13170) }, arguments: PathArguments::None }] }, delimiter: MacroDelimiter::Paren(Paren), tokens: TokenStream [Ident { ident: "pb_name", span: #0 bytes(13171..13178) }, Punct { ch: '=', spacing: Alone, span: #0 bytes(13179..13180) }, Literal { kind: Str, symbol: "pb_DateRange", suffix: None, span: #0 bytes(13181..13195) }] } } [INFO] [stdout] A [INFO] [stdout] B [INFO] [stdout] AAA [INFO] [stdout] BBB [INFO] [stdout] field_meta_map: FieldMetaMap { field_meta_map: {} } [INFO] [stdout] FieldAttr: Field { attrs: [], vis: Visibility::Inherited, mutability: FieldMutability::None, ident: Some(Ident { ident: "date_from", span: #0 bytes(13225..13234) }), colon_token: Some(Colon), ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "Option", span: #0 bytes(13236..13242) }, arguments: PathArguments::AngleBracketed { colon2_token: None, lt_token: Lt, args: [GenericArgument::Type(Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "Date", span: #0 bytes(13243..13247) }, arguments: PathArguments::None }] } })], gt_token: Gt } }] } } } [INFO] [stdout] FieldAttr: Field { attrs: [], vis: Visibility::Inherited, mutability: FieldMutability::None, ident: Some(Ident { ident: "date_to", span: #0 bytes(13254..13261) }), colon_token: Some(Colon), ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "Option", span: #0 bytes(13263..13269) }, arguments: PathArguments::AngleBracketed { colon2_token: None, lt_token: Lt, args: [GenericArgument::Type(Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "Date", span: #0 bytes(13270..13274) }, arguments: PathArguments::None }] } })], gt_token: Gt } }] } } } [INFO] [stdout] get_from_pb_fields: FieldAttr { is_skip: false, type_vec: [Ident { ident: "Option", span: #0 bytes(13236..13242) }, Ident { ident: "Date", span: #0 bytes(13243..13247) }], from_pb_func_name: None, to_pb_func_name: None, field: Field { attrs: [], vis: Visibility::Inherited, mutability: FieldMutability::None, ident: Some(Ident { ident: "date_from", span: #0 bytes(13225..13234) }), colon_token: Some(Colon), ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "Option", span: #0 bytes(13236..13242) }, arguments: PathArguments::AngleBracketed { colon2_token: None, lt_token: Lt, args: [GenericArgument::Type(Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "Date", span: #0 bytes(13243..13247) }, arguments: PathArguments::None }] } })], gt_token: Gt } }] } } } } [INFO] [stdout] get_field_name: Some(Ident { ident: "date_from", span: #0 bytes(13225..13234) }) [INFO] [stdout] get_from_field_quote: Ident { ident: "date_from", span: #0 bytes(13225..13234) } "m_helper" [Ident { ident: "Option", span: #0 bytes(13236..13242) }, Ident { ident: "Date", span: #0 bytes(13243..13247) }] None None [INFO] [stdout] get_from_field_quote: Ident { ident: "date_from", span: #0 bytes(13225..13234) } "m_helper" [Ident { ident: "Date", span: #0 bytes(13243..13247) }] Some(Ident { ident: "Option", span: #0 bytes(13236..13242) }) None [INFO] [stdout] get_custom_func_ident: "m_helper::conv_option_pb_to_option_one" [INFO] [stdout] get_from_pb_fields: FieldAttr { is_skip: false, type_vec: [Ident { ident: "Option", span: #0 bytes(13263..13269) }, Ident { ident: "Date", span: #0 bytes(13270..13274) }], from_pb_func_name: None, to_pb_func_name: None, field: Field { attrs: [], vis: Visibility::Inherited, mutability: FieldMutability::None, ident: Some(Ident { ident: "date_to", span: #0 bytes(13254..13261) }), colon_token: Some(Colon), ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "Option", span: #0 bytes(13263..13269) }, arguments: PathArguments::AngleBracketed { colon2_token: None, lt_token: Lt, args: [GenericArgument::Type(Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "Date", span: #0 bytes(13270..13274) }, arguments: PathArguments::None }] } })], gt_token: Gt } }] } } } } [INFO] [stdout] get_field_name: Some(Ident { ident: "date_to", span: #0 bytes(13254..13261) }) [INFO] [stdout] get_from_field_quote: Ident { ident: "date_to", span: #0 bytes(13254..13261) } "m_helper" [Ident { ident: "Option", span: #0 bytes(13263..13269) }, Ident { ident: "Date", span: #0 bytes(13270..13274) }] None None [INFO] [stdout] get_from_field_quote: Ident { ident: "date_to", span: #0 bytes(13254..13261) } "m_helper" [Ident { ident: "Date", span: #0 bytes(13270..13274) }] Some(Ident { ident: "Option", span: #0 bytes(13263..13269) }) None [INFO] [stdout] get_custom_func_ident: "m_helper::conv_option_pb_to_option_one" [INFO] [stdout] get_field_name: Some(Ident { ident: "date_from", span: #0 bytes(13225..13234) }) [INFO] [stdout] get_custom_func_ident: "m_helper::conv_option_one_to_option_pb" [INFO] [stdout] get_field_name: Some(Ident { ident: "date_to", span: #0 bytes(13254..13261) }) [INFO] [stdout] get_custom_func_ident: "m_helper::conv_option_one_to_option_pb" [INFO] [stdout] struct [INFO] [stdout] 6 [INFO] [stdout] attr: Attribute { pound_token: Pound, style: AttrStyle::Outer, bracket_token: Bracket, meta: Meta::List { path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "pb", span: #0 bytes(16027..16029) }, arguments: PathArguments::None }] }, delimiter: MacroDelimiter::Paren(Paren), tokens: TokenStream [Ident { ident: "pb_name", span: #0 bytes(16035..16042) }, Punct { ch: '=', spacing: Alone, span: #0 bytes(16043..16044) }, Literal { kind: Str, symbol: "pb_DateTime", suffix: None, span: #0 bytes(16045..16058) }, Punct { ch: ',', spacing: Alone, span: #0 bytes(16058..16059) }, Ident { ident: "module_path", span: #0 bytes(16064..16075) }, Punct { ch: '=', spacing: Alone, span: #0 bytes(16076..16077) }, Literal { kind: Str, symbol: "super::super::pb", suffix: None, span: #0 bytes(16078..16096) }, Punct { ch: ',', spacing: Alone, span: #0 bytes(16096..16097) }, Ident { ident: "trait_path", span: #0 bytes(16102..16112) }, Punct { ch: '=', spacing: Alone, span: #0 bytes(16113..16114) }, Literal { kind: Str, symbol: "super::super::pb", suffix: None, span: #0 bytes(16115..16133) }] } } [INFO] [stdout] attr: Attribute { pound_token: Pound, style: AttrStyle::Outer, bracket_token: Bracket, meta: Meta::List { path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "pb", span: #0 bytes(16027..16029) }, arguments: PathArguments::None }] }, delimiter: MacroDelimiter::Paren(Paren), tokens: TokenStream [Ident { ident: "pb_name", span: #0 bytes(16035..16042) }, Punct { ch: '=', spacing: Alone, span: #0 bytes(16043..16044) }, Literal { kind: Str, symbol: "pb_DateTime", suffix: None, span: #0 bytes(16045..16058) }, Punct { ch: ',', spacing: Alone, span: #0 bytes(16058..16059) }, Ident { ident: "module_path", span: #0 bytes(16064..16075) }, Punct { ch: '=', spacing: Alone, span: #0 bytes(16076..16077) }, Literal { kind: Str, symbol: "super::super::pb", suffix: None, span: #0 bytes(16078..16096) }, Punct { ch: ',', spacing: Alone, span: #0 bytes(16096..16097) }, Ident { ident: "trait_path", span: #0 bytes(16102..16112) }, Punct { ch: '=', spacing: Alone, span: #0 bytes(16113..16114) }, Literal { kind: Str, symbol: "super::super::pb", suffix: None, span: #0 bytes(16115..16133) }] } } [INFO] [stdout] A [INFO] [stdout] B [INFO] [stdout] AAA [INFO] [stdout] BBB [INFO] [stdout] field_meta_map: FieldMetaMap { field_meta_map: {} } [INFO] [stdout] FieldAttr: Field { attrs: [], vis: Visibility::Inherited, mutability: FieldMutability::None, ident: Some(Ident { ident: "year", span: #0 bytes(16163..16167) }), colon_token: Some(Colon), ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "i32", span: #0 bytes(16169..16172) }, arguments: PathArguments::None }] } } } [INFO] [stdout] FieldAttr: Field { attrs: [], vis: Visibility::Inherited, mutability: FieldMutability::None, ident: Some(Ident { ident: "month", span: #0 bytes(16178..16183) }), colon_token: Some(Colon), ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "i32", span: #0 bytes(16185..16188) }, arguments: PathArguments::None }] } } } [INFO] [stdout] FieldAttr: Field { attrs: [], vis: Visibility::Inherited, mutability: FieldMutability::None, ident: Some(Ident { ident: "day", span: #0 bytes(16194..16197) }), colon_token: Some(Colon), ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "i32", span: #0 bytes(16199..16202) }, arguments: PathArguments::None }] } } } [INFO] [stdout] FieldAttr: Field { attrs: [], vis: Visibility::Inherited, mutability: FieldMutability::None, ident: Some(Ident { ident: "hour", span: #0 bytes(16209..16213) }), colon_token: Some(Colon), ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "i32", span: #0 bytes(16215..16218) }, arguments: PathArguments::None }] } } } [INFO] [stderr] key: "pb_name" [INFO] [stdout] FieldAttr: Field { attrs: [], vis: Visibility::Inherited, mutability: FieldMutability::None, ident: Some(Ident { ident: "minute", span: #0 bytes(16224..16230) }), colon_token: Some(Colon), ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "i32", span: #0 bytes(16232..16235) }, arguments: PathArguments::None }] } } } [INFO] [stderr] value: "pb_DateTime" [INFO] [stdout] FieldAttr: Field { attrs: [], vis: Visibility::Inherited, mutability: FieldMutability::None, ident: Some(Ident { ident: "second", span: #0 bytes(16241..16247) }), colon_token: Some(Colon), ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "i32", span: #0 bytes(16249..16252) }, arguments: PathArguments::None }] } } } [INFO] [stderr] key: "module_path" [INFO] [stdout] get_from_pb_fields: FieldAttr { is_skip: false, type_vec: [Ident { ident: "i32", span: #0 bytes(16169..16172) }], from_pb_func_name: None, to_pb_func_name: None, field: Field { attrs: [], vis: Visibility::Inherited, mutability: FieldMutability::None, ident: Some(Ident { ident: "year", span: #0 bytes(16163..16167) }), colon_token: Some(Colon), ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "i32", span: #0 bytes(16169..16172) }, arguments: PathArguments::None }] } } } } [INFO] [stderr] value: "super::super::pb" [INFO] [stdout] get_field_name: Some(Ident { ident: "year", span: #0 bytes(16163..16167) }) [INFO] [stderr] key: "trait_path" [INFO] [stdout] get_from_field_quote: Ident { ident: "year", span: #0 bytes(16163..16167) } "super::super::pb" [Ident { ident: "i32", span: #0 bytes(16169..16172) }] None None [INFO] [stderr] value: "super::super::pb" [INFO] [stdout] get_from_pb_fields: FieldAttr { is_skip: false, type_vec: [Ident { ident: "i32", span: #0 bytes(16185..16188) }], from_pb_func_name: None, to_pb_func_name: None, field: Field { attrs: [], vis: Visibility::Inherited, mutability: FieldMutability::None, ident: Some(Ident { ident: "month", span: #0 bytes(16178..16183) }), colon_token: Some(Colon), ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "i32", span: #0 bytes(16185..16188) }, arguments: PathArguments::None }] } } } } [INFO] [stderr] hashmap: {"pb_name": "pb_DateTime", "module_path": "super::super::pb", "trait_path": "super::super::pb"} [INFO] [stdout] get_field_name: Some(Ident { ident: "month", span: #0 bytes(16178..16183) }) [INFO] [stdout] get_from_field_quote: Ident { ident: "month", span: #0 bytes(16178..16183) } "super::super::pb" [Ident { ident: "i32", span: #0 bytes(16185..16188) }] None None [INFO] [stdout] get_from_pb_fields: FieldAttr { is_skip: false, type_vec: [Ident { ident: "i32", span: #0 bytes(16199..16202) }], from_pb_func_name: None, to_pb_func_name: None, field: Field { attrs: [], vis: Visibility::Inherited, mutability: FieldMutability::None, ident: Some(Ident { ident: "day", span: #0 bytes(16194..16197) }), colon_token: Some(Colon), ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "i32", span: #0 bytes(16199..16202) }, arguments: PathArguments::None }] } } } } [INFO] [stdout] get_field_name: Some(Ident { ident: "day", span: #0 bytes(16194..16197) }) [INFO] [stdout] get_from_field_quote: Ident { ident: "day", span: #0 bytes(16194..16197) } "super::super::pb" [Ident { ident: "i32", span: #0 bytes(16199..16202) }] None None [INFO] [stdout] get_from_pb_fields: FieldAttr { is_skip: false, type_vec: [Ident { ident: "i32", span: #0 bytes(16215..16218) }], from_pb_func_name: None, to_pb_func_name: None, field: Field { attrs: [], vis: Visibility::Inherited, mutability: FieldMutability::None, ident: Some(Ident { ident: "hour", span: #0 bytes(16209..16213) }), colon_token: Some(Colon), ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "i32", span: #0 bytes(16215..16218) }, arguments: PathArguments::None }] } } } } [INFO] [stdout] get_field_name: Some(Ident { ident: "hour", span: #0 bytes(16209..16213) }) [INFO] [stdout] get_from_field_quote: Ident { ident: "hour", span: #0 bytes(16209..16213) } "super::super::pb" [Ident { ident: "i32", span: #0 bytes(16215..16218) }] None None [INFO] [stdout] get_from_pb_fields: FieldAttr { is_skip: false, type_vec: [Ident { ident: "i32", span: #0 bytes(16232..16235) }], from_pb_func_name: None, to_pb_func_name: None, field: Field { attrs: [], vis: Visibility::Inherited, mutability: FieldMutability::None, ident: Some(Ident { ident: "minute", span: #0 bytes(16224..16230) }), colon_token: Some(Colon), ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "i32", span: #0 bytes(16232..16235) }, arguments: PathArguments::None }] } } } } [INFO] [stdout] get_field_name: Some(Ident { ident: "minute", span: #0 bytes(16224..16230) }) [INFO] [stdout] get_from_field_quote: Ident { ident: "minute", span: #0 bytes(16224..16230) } "super::super::pb" [Ident { ident: "i32", span: #0 bytes(16232..16235) }] None None [INFO] [stdout] get_from_pb_fields: FieldAttr { is_skip: false, type_vec: [Ident { ident: "i32", span: #0 bytes(16249..16252) }], from_pb_func_name: None, to_pb_func_name: None, field: Field { attrs: [], vis: Visibility::Inherited, mutability: FieldMutability::None, ident: Some(Ident { ident: "second", span: #0 bytes(16241..16247) }), colon_token: Some(Colon), ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "i32", span: #0 bytes(16249..16252) }, arguments: PathArguments::None }] } } } } [INFO] [stdout] get_field_name: Some(Ident { ident: "second", span: #0 bytes(16241..16247) }) [INFO] [stdout] get_from_field_quote: Ident { ident: "second", span: #0 bytes(16241..16247) } "super::super::pb" [Ident { ident: "i32", span: #0 bytes(16249..16252) }] None None [INFO] [stdout] get_field_name: Some(Ident { ident: "year", span: #0 bytes(16163..16167) }) [INFO] [stdout] get_field_name: Some(Ident { ident: "month", span: #0 bytes(16178..16183) }) [INFO] [stdout] get_field_name: Some(Ident { ident: "day", span: #0 bytes(16194..16197) }) [INFO] [stdout] get_field_name: Some(Ident { ident: "hour", span: #0 bytes(16209..16213) }) [INFO] [stdout] get_field_name: Some(Ident { ident: "minute", span: #0 bytes(16224..16230) }) [INFO] [stdout] get_field_name: Some(Ident { ident: "second", span: #0 bytes(16241..16247) }) [INFO] [stderr] key: "pb_name" [INFO] [stdout] struct [INFO] [stderr] value: "pb_Number" [INFO] [stdout] 1 [INFO] [stderr] hashmap: {"pb_name": "pb_Number"} [INFO] [stdout] attr: Attribute { pound_token: Pound, style: AttrStyle::Outer, bracket_token: Bracket, meta: Meta::List { path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "pb", span: #0 bytes(18732..18734) }, arguments: PathArguments::None }] }, delimiter: MacroDelimiter::Paren(Paren), tokens: TokenStream [Ident { ident: "pb_name", span: #0 bytes(18735..18742) }, Punct { ch: '=', spacing: Alone, span: #0 bytes(18743..18744) }, Literal { kind: Str, symbol: "pb_Number", suffix: None, span: #0 bytes(18745..18756) }] } } [INFO] [stdout] attr: Attribute { pound_token: Pound, style: AttrStyle::Outer, bracket_token: Bracket, meta: Meta::List { path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "pb", span: #0 bytes(18732..18734) }, arguments: PathArguments::None }] }, delimiter: MacroDelimiter::Paren(Paren), tokens: TokenStream [Ident { ident: "pb_name", span: #0 bytes(18735..18742) }, Punct { ch: '=', spacing: Alone, span: #0 bytes(18743..18744) }, Literal { kind: Str, symbol: "pb_Number", suffix: None, span: #0 bytes(18745..18756) }] } } [INFO] [stdout] A [INFO] [stdout] B [INFO] [stdout] AAA [INFO] [stdout] BBB [INFO] [stdout] field_meta_map: FieldMetaMap { field_meta_map: {} } [INFO] [stdout] FieldAttr: Field { attrs: [], vis: Visibility::Public(Pub), mutability: FieldMutability::None, ident: Some(Ident { ident: "value_of", span: #0 bytes(18787..18795) }), colon_token: Some(Colon), ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "Option", span: #0 bytes(18797..18803) }, arguments: PathArguments::AngleBracketed { colon2_token: None, lt_token: Lt, args: [GenericArgument::Type(Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "ValueOf", span: #0 bytes(18804..18811) }, arguments: PathArguments::None }] } })], gt_token: Gt } }] } } } [INFO] [stdout] get_from_pb_fields: FieldAttr { is_skip: false, type_vec: [Ident { ident: "Option", span: #0 bytes(18797..18803) }, Ident { ident: "ValueOf", span: #0 bytes(18804..18811) }], from_pb_func_name: None, to_pb_func_name: None, field: Field { attrs: [], vis: Visibility::Public(Pub), mutability: FieldMutability::None, ident: Some(Ident { ident: "value_of", span: #0 bytes(18787..18795) }), colon_token: Some(Colon), ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "Option", span: #0 bytes(18797..18803) }, arguments: PathArguments::AngleBracketed { colon2_token: None, lt_token: Lt, args: [GenericArgument::Type(Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "ValueOf", span: #0 bytes(18804..18811) }, arguments: PathArguments::None }] } })], gt_token: Gt } }] } } } } [INFO] [stdout] get_field_name: Some(Ident { ident: "value_of", span: #0 bytes(18787..18795) }) [INFO] [stdout] get_from_field_quote: Ident { ident: "value_of", span: #0 bytes(18787..18795) } "m_helper" [Ident { ident: "Option", span: #0 bytes(18797..18803) }, Ident { ident: "ValueOf", span: #0 bytes(18804..18811) }] None None [INFO] [stdout] get_from_field_quote: Ident { ident: "value_of", span: #0 bytes(18787..18795) } "m_helper" [Ident { ident: "ValueOf", span: #0 bytes(18804..18811) }] Some(Ident { ident: "Option", span: #0 bytes(18797..18803) }) None [INFO] [stdout] get_custom_func_ident: "m_helper::conv_option_pb_to_option_one" [INFO] [stdout] get_field_name: Some(Ident { ident: "value_of", span: #0 bytes(18787..18795) }) [INFO] [stdout] get_custom_func_ident: "m_helper::conv_option_one_to_option_pb" [INFO] [stderr] key: "pb_name" [INFO] [stdout] Enum [INFO] [stderr] value: "pb_ValueOf" [INFO] [stdout] attr: Attribute { pound_token: Pound, style: AttrStyle::Outer, bracket_token: Bracket, meta: Meta::List { path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "pb", span: #0 bytes(19869..19871) }, arguments: PathArguments::None }] }, delimiter: MacroDelimiter::Paren(Paren), tokens: TokenStream [Ident { ident: "pb_name", span: #0 bytes(19872..19879) }, Punct { ch: '=', spacing: Alone, span: #0 bytes(19880..19881) }, Literal { kind: Str, symbol: "pb_ValueOf", suffix: None, span: #0 bytes(19882..19894) }] } } [INFO] [stderr] hashmap: {"pb_name": "pb_ValueOf"} [INFO] [stdout] attr: Attribute { pound_token: Pound, style: AttrStyle::Outer, bracket_token: Bracket, meta: Meta::List { path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "pb", span: #0 bytes(19869..19871) }, arguments: PathArguments::None }] }, delimiter: MacroDelimiter::Paren(Paren), tokens: TokenStream [Ident { ident: "pb_name", span: #0 bytes(19872..19879) }, Punct { ch: '=', spacing: Alone, span: #0 bytes(19880..19881) }, Literal { kind: Str, symbol: "pb_ValueOf", suffix: None, span: #0 bytes(19882..19894) }] } } [INFO] [stderr] key: "pb_name" [INFO] [stdout] A [INFO] [stderr] value: "pb_Date" [INFO] [stdout] B [INFO] [stderr] hashmap: {"pb_name": "pb_Date"} [INFO] [stdout] new: Ident { ident: "ValueOf", span: #0 bytes(19906..19913) }|Ident { ident: "pb_ValueOf", span: #0 bytes(19906..19913) }|"m_helper" [INFO] [stderr] key: "pb_name" [INFO] [stdout] dataenum: [Variant { attrs: [], ident: Ident { ident: "Int32Value", span: #0 bytes(19920..19930) }, fields: Fields::Unnamed { paren_token: Paren, unnamed: [Field { attrs: [], vis: Visibility::Inherited, mutability: FieldMutability::None, ident: None, colon_token: None, ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "i32", span: #0 bytes(19931..19934) }, arguments: PathArguments::None }] } } }] }, discriminant: None }, Comma, Variant { attrs: [], ident: Ident { ident: "Int64Value", span: #0 bytes(19941..19951) }, fields: Fields::Unnamed { paren_token: Paren, unnamed: [Field { attrs: [], vis: Visibility::Inherited, mutability: FieldMutability::None, ident: None, colon_token: None, ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "i64", span: #0 bytes(19952..19955) }, arguments: PathArguments::None }] } } }] }, discriminant: None }, Comma, Variant { attrs: [], ident: Ident { ident: "FloatValue", span: #0 bytes(19962..19972) }, fields: Fields::Unnamed { paren_token: Paren, unnamed: [Field { attrs: [], vis: Visibility::Inherited, mutability: FieldMutability::None, ident: None, colon_token: None, ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "f32", span: #0 bytes(19973..19976) }, arguments: PathArguments::None }] } } }] }, discriminant: None }, Comma, Variant { attrs: [], ident: Ident { ident: "DoubleValue", span: #0 bytes(19983..19994) }, fields: Fields::Unnamed { paren_token: Paren, unnamed: [Field { attrs: [], vis: Visibility::Inherited, mutability: FieldMutability::None, ident: None, colon_token: None, ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "f64", span: #0 bytes(19995..19998) }, arguments: PathArguments::None }] } } }] }, discriminant: None }, Comma] [INFO] [stderr] value: "pb_DateDelta" [INFO] [stdout] Variant { attrs: [], ident: Ident { ident: "Int32Value", span: #0 bytes(19920..19930) }, fields: Fields::Unnamed { paren_token: Paren, unnamed: [Field { attrs: [], vis: Visibility::Inherited, mutability: FieldMutability::None, ident: None, colon_token: None, ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "i32", span: #0 bytes(19931..19934) }, arguments: PathArguments::None }] } } }] }, discriminant: None } [INFO] [stderr] hashmap: {"pb_name": "pb_DateDelta"} [INFO] [stdout] Variant { attrs: [], ident: Ident { ident: "Int64Value", span: #0 bytes(19941..19951) }, fields: Fields::Unnamed { paren_token: Paren, unnamed: [Field { attrs: [], vis: Visibility::Inherited, mutability: FieldMutability::None, ident: None, colon_token: None, ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "i64", span: #0 bytes(19952..19955) }, arguments: PathArguments::None }] } } }] }, discriminant: None } [INFO] [stdout] Variant { attrs: [], ident: Ident { ident: "FloatValue", span: #0 bytes(19962..19972) }, fields: Fields::Unnamed { paren_token: Paren, unnamed: [Field { attrs: [], vis: Visibility::Inherited, mutability: FieldMutability::None, ident: None, colon_token: None, ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "f32", span: #0 bytes(19973..19976) }, arguments: PathArguments::None }] } } }] }, discriminant: None } [INFO] [stdout] Variant { attrs: [], ident: Ident { ident: "DoubleValue", span: #0 bytes(19983..19994) }, fields: Fields::Unnamed { paren_token: Paren, unnamed: [Field { attrs: [], vis: Visibility::Inherited, mutability: FieldMutability::None, ident: None, colon_token: None, ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "f64", span: #0 bytes(19995..19998) }, arguments: PathArguments::None }] } } }] }, discriminant: None } [INFO] [stdout] FieldMetaMap { field_meta_map: {} } [INFO] [stdout] "Int32Value" [INFO] [stdout] [] [INFO] [stdout] "Int64Value" [INFO] [stdout] [] [INFO] [stdout] "FloatValue" [INFO] [stdout] [] [INFO] [stdout] "DoubleValue" [INFO] [stdout] [] [INFO] [stdout] struct [INFO] [stdout] 1 [INFO] [stdout] attr: Attribute { pound_token: Pound, style: AttrStyle::Outer, bracket_token: Bracket, meta: Meta::List { path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "pb", span: #0 bytes(5268..5270) }, arguments: PathArguments::None }] }, delimiter: MacroDelimiter::Paren(Paren), tokens: TokenStream [Ident { ident: "pb_name", span: #0 bytes(5271..5278) }, Punct { ch: '=', spacing: Alone, span: #0 bytes(5279..5280) }, Literal { kind: Str, symbol: "pb_Date", suffix: None, span: #0 bytes(5281..5290) }] } } [INFO] [stdout] attr: Attribute { pound_token: Pound, style: AttrStyle::Outer, bracket_token: Bracket, meta: Meta::List { path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "pb", span: #0 bytes(5268..5270) }, arguments: PathArguments::None }] }, delimiter: MacroDelimiter::Paren(Paren), tokens: TokenStream [Ident { ident: "pb_name", span: #0 bytes(5271..5278) }, Punct { ch: '=', spacing: Alone, span: #0 bytes(5279..5280) }, Literal { kind: Str, symbol: "pb_Date", suffix: None, span: #0 bytes(5281..5290) }] } } [INFO] [stdout] A [INFO] [stdout] B [INFO] [stdout] AAA [INFO] [stdout] BBB [INFO] [stdout] field_meta_map: FieldMetaMap { field_meta_map: {} } [INFO] [stdout] FieldAttr: Field { attrs: [], vis: Visibility::Inherited, mutability: FieldMutability::None, ident: Some(Ident { ident: "value", span: #0 bytes(5315..5320) }), colon_token: Some(Colon), ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "u32", span: #0 bytes(5322..5325) }, arguments: PathArguments::None }] } } } [INFO] [stdout] get_from_pb_fields: FieldAttr { is_skip: false, type_vec: [Ident { ident: "u32", span: #0 bytes(5322..5325) }], from_pb_func_name: None, to_pb_func_name: None, field: Field { attrs: [], vis: Visibility::Inherited, mutability: FieldMutability::None, ident: Some(Ident { ident: "value", span: #0 bytes(5315..5320) }), colon_token: Some(Colon), ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "u32", span: #0 bytes(5322..5325) }, arguments: PathArguments::None }] } } } } [INFO] [stdout] get_field_name: Some(Ident { ident: "value", span: #0 bytes(5315..5320) }) [INFO] [stdout] get_from_field_quote: Ident { ident: "value", span: #0 bytes(5315..5320) } "m_helper" [Ident { ident: "u32", span: #0 bytes(5322..5325) }] None None [INFO] [stdout] get_field_name: Some(Ident { ident: "value", span: #0 bytes(5315..5320) }) [INFO] [stdout] struct [INFO] [stdout] 4 [INFO] [stdout] attr: Attribute { pound_token: Pound, style: AttrStyle::Outer, bracket_token: Bracket, meta: Meta::List { path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "pb", span: #0 bytes(11825..11827) }, arguments: PathArguments::None }] }, delimiter: MacroDelimiter::Paren(Paren), tokens: TokenStream [Ident { ident: "pb_name", span: #0 bytes(11828..11835) }, Punct { ch: '=', spacing: Alone, span: #0 bytes(11836..11837) }, Literal { kind: Str, symbol: "pb_DateDelta", suffix: None, span: #0 bytes(11838..11852) }] } } [INFO] [stdout] attr: Attribute { pound_token: Pound, style: AttrStyle::Outer, bracket_token: Bracket, meta: Meta::List { path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "pb", span: #0 bytes(11825..11827) }, arguments: PathArguments::None }] }, delimiter: MacroDelimiter::Paren(Paren), tokens: TokenStream [Ident { ident: "pb_name", span: #0 bytes(11828..11835) }, Punct { ch: '=', spacing: Alone, span: #0 bytes(11836..11837) }, Literal { kind: Str, symbol: "pb_DateDelta", suffix: None, span: #0 bytes(11838..11852) }] } } [INFO] [stdout] A [INFO] [stdout] B [INFO] [stdout] AAA [INFO] [stdout] BBB [INFO] [stdout] field_meta_map: FieldMetaMap { field_meta_map: {} } [INFO] [stdout] FieldAttr: Field { attrs: [], vis: Visibility::Public(Pub), mutability: FieldMutability::None, ident: Some(Ident { ident: "year", span: #0 bytes(11886..11890) }), colon_token: Some(Colon), ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "i32", span: #0 bytes(11892..11895) }, arguments: PathArguments::None }] } } } [INFO] [stdout] FieldAttr: Field { attrs: [], vis: Visibility::Public(Pub), mutability: FieldMutability::None, ident: Some(Ident { ident: "month", span: #0 bytes(11905..11910) }), colon_token: Some(Colon), ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "i32", span: #0 bytes(11912..11915) }, arguments: PathArguments::None }] } } } [INFO] [stdout] FieldAttr: Field { attrs: [], vis: Visibility::Public(Pub), mutability: FieldMutability::None, ident: Some(Ident { ident: "week", span: #0 bytes(11925..11929) }), colon_token: Some(Colon), ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "i32", span: #0 bytes(11931..11934) }, arguments: PathArguments::None }] } } } [INFO] [stdout] FieldAttr: Field { attrs: [], vis: Visibility::Public(Pub), mutability: FieldMutability::None, ident: Some(Ident { ident: "day", span: #0 bytes(11944..11947) }), colon_token: Some(Colon), ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "i32", span: #0 bytes(11949..11952) }, arguments: PathArguments::None }] } } } [INFO] [stdout] get_from_pb_fields: FieldAttr { is_skip: false, type_vec: [Ident { ident: "i32", span: #0 bytes(11892..11895) }], from_pb_func_name: None, to_pb_func_name: None, field: Field { attrs: [], vis: Visibility::Public(Pub), mutability: FieldMutability::None, ident: Some(Ident { ident: "year", span: #0 bytes(11886..11890) }), colon_token: Some(Colon), ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "i32", span: #0 bytes(11892..11895) }, arguments: PathArguments::None }] } } } } [INFO] [stdout] get_field_name: Some(Ident { ident: "year", span: #0 bytes(11886..11890) }) [INFO] [stdout] get_from_field_quote: Ident { ident: "year", span: #0 bytes(11886..11890) } "m_helper" [Ident { ident: "i32", span: #0 bytes(11892..11895) }] None None [INFO] [stdout] get_from_pb_fields: FieldAttr { is_skip: false, type_vec: [Ident { ident: "i32", span: #0 bytes(11912..11915) }], from_pb_func_name: None, to_pb_func_name: None, field: Field { attrs: [], vis: Visibility::Public(Pub), mutability: FieldMutability::None, ident: Some(Ident { ident: "month", span: #0 bytes(11905..11910) }), colon_token: Some(Colon), ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "i32", span: #0 bytes(11912..11915) }, arguments: PathArguments::None }] } } } } [INFO] [stdout] get_field_name: Some(Ident { ident: "month", span: #0 bytes(11905..11910) }) [INFO] [stdout] get_from_field_quote: Ident { ident: "month", span: #0 bytes(11905..11910) } "m_helper" [Ident { ident: "i32", span: #0 bytes(11912..11915) }] None None [INFO] [stdout] get_from_pb_fields: FieldAttr { is_skip: false, type_vec: [Ident { ident: "i32", span: #0 bytes(11931..11934) }], from_pb_func_name: None, to_pb_func_name: None, field: Field { attrs: [], vis: Visibility::Public(Pub), mutability: FieldMutability::None, ident: Some(Ident { ident: "week", span: #0 bytes(11925..11929) }), colon_token: Some(Colon), ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "i32", span: #0 bytes(11931..11934) }, arguments: PathArguments::None }] } } } } [INFO] [stdout] get_field_name: Some(Ident { ident: "week", span: #0 bytes(11925..11929) }) [INFO] [stdout] get_from_field_quote: Ident { ident: "week", span: #0 bytes(11925..11929) } "m_helper" [Ident { ident: "i32", span: #0 bytes(11931..11934) }] None None [INFO] [stdout] get_from_pb_fields: FieldAttr { is_skip: false, type_vec: [Ident { ident: "i32", span: #0 bytes(11949..11952) }], from_pb_func_name: None, to_pb_func_name: None, field: Field { attrs: [], vis: Visibility::Public(Pub), mutability: FieldMutability::None, ident: Some(Ident { ident: "day", span: #0 bytes(11944..11947) }), colon_token: Some(Colon), ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "i32", span: #0 bytes(11949..11952) }, arguments: PathArguments::None }] } } } } [INFO] [stdout] get_field_name: Some(Ident { ident: "day", span: #0 bytes(11944..11947) }) [INFO] [stdout] get_from_field_quote: Ident { ident: "day", span: #0 bytes(11944..11947) } "m_helper" [Ident { ident: "i32", span: #0 bytes(11949..11952) }] None None [INFO] [stdout] get_field_name: Some(Ident { ident: "year", span: #0 bytes(11886..11890) }) [INFO] [stdout] get_field_name: Some(Ident { ident: "month", span: #0 bytes(11905..11910) }) [INFO] [stdout] get_field_name: Some(Ident { ident: "week", span: #0 bytes(11925..11929) }) [INFO] [stdout] get_field_name: Some(Ident { ident: "day", span: #0 bytes(11944..11947) }) [INFO] [stdout] struct [INFO] [stdout] 1 [INFO] [stdout] attr: Attribute { pound_token: Pound, style: AttrStyle::Outer, bracket_token: Bracket, meta: Meta::List { path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "pb", span: #0 bytes(23344..23346) }, arguments: PathArguments::None }] }, delimiter: MacroDelimiter::Paren(Paren), tokens: TokenStream [Ident { ident: "pb_name", span: #0 bytes(23352..23359) }, Punct { ch: '=', spacing: Alone, span: #0 bytes(23360..23361) }, Literal { kind: Str, symbol: "pb_Uuid", suffix: None, span: #0 bytes(23362..23371) }, Punct { ch: ',', spacing: Alone, span: #0 bytes(23371..23372) }, Ident { ident: "module_path", span: #0 bytes(23377..23388) }, Punct { ch: '=', spacing: Alone, span: #0 bytes(23389..23390) }, Literal { kind: Str, symbol: "super::super::super::pb", suffix: None, span: #0 bytes(23391..23416) }, Punct { ch: ',', spacing: Alone, span: #0 bytes(23416..23417) }, Ident { ident: "trait_path", span: #0 bytes(23422..23432) }, Punct { ch: '=', spacing: Alone, span: #0 bytes(23433..23434) }, Literal { kind: Str, symbol: "super::super::super::pb", suffix: None, span: #0 bytes(23435..23460) }] } } [INFO] [stdout] attr: Attribute { pound_token: Pound, style: AttrStyle::Outer, bracket_token: Bracket, meta: Meta::List { path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "pb", span: #0 bytes(23344..23346) }, arguments: PathArguments::None }] }, delimiter: MacroDelimiter::Paren(Paren), tokens: TokenStream [Ident { ident: "pb_name", span: #0 bytes(23352..23359) }, Punct { ch: '=', spacing: Alone, span: #0 bytes(23360..23361) }, Literal { kind: Str, symbol: "pb_Uuid", suffix: None, span: #0 bytes(23362..23371) }, Punct { ch: ',', spacing: Alone, span: #0 bytes(23371..23372) }, Ident { ident: "module_path", span: #0 bytes(23377..23388) }, Punct { ch: '=', spacing: Alone, span: #0 bytes(23389..23390) }, Literal { kind: Str, symbol: "super::super::super::pb", suffix: None, span: #0 bytes(23391..23416) }, Punct { ch: ',', spacing: Alone, span: #0 bytes(23416..23417) }, Ident { ident: "trait_path", span: #0 bytes(23422..23432) }, Punct { ch: '=', spacing: Alone, span: #0 bytes(23433..23434) }, Literal { kind: Str, symbol: "super::super::super::pb", suffix: None, span: #0 bytes(23435..23460) }] } } [INFO] [stderr] key: "pb_name" [INFO] [stderr] value: "pb_Uuid" [INFO] [stderr] key: "module_path" [INFO] [stderr] value: "super::super::super::pb" [INFO] [stderr] key: "trait_path" [INFO] [stderr] value: "super::super::super::pb" [INFO] [stderr] hashmap: {"pb_name": "pb_Uuid", "module_path": "super::super::super::pb", "trait_path": "super::super::super::pb"} [INFO] [stdout] A [INFO] [stdout] B [INFO] [stdout] AAA [INFO] [stdout] BBB [INFO] [stdout] struct [INFO] [stdout] 2 [INFO] [stdout] attr: Attribute { pound_token: Pound, style: AttrStyle::Outer, bracket_token: Bracket, meta: Meta::List { path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "pb", span: #0 bytes(13168..13170) }, arguments: PathArguments::None }] }, delimiter: MacroDelimiter::Paren(Paren), tokens: TokenStream [Ident { ident: "pb_name", span: #0 bytes(13171..13178) }, Punct { ch: '=', spacing: Alone, span: #0 bytes(13179..13180) }, Literal { kind: Str, symbol: "pb_DateRange", suffix: None, span: #0 bytes(13181..13195) }] } } [INFO] [stdout] attr: Attribute { pound_token: Pound, style: AttrStyle::Outer, bracket_token: Bracket, meta: Meta::List { path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "pb", span: #0 bytes(13168..13170) }, arguments: PathArguments::None }] }, delimiter: MacroDelimiter::Paren(Paren), tokens: TokenStream [Ident { ident: "pb_name", span: #0 bytes(13171..13178) }, Punct { ch: '=', spacing: Alone, span: #0 bytes(13179..13180) }, Literal { kind: Str, symbol: "pb_DateRange", suffix: None, span: #0 bytes(13181..13195) }] } } [INFO] [stderr] key: "pb_name" [INFO] [stdout] A [INFO] [stderr] value: "pb_DateRange" [INFO] [stdout] B [INFO] [stderr] hashmap: {"pb_name": "pb_DateRange"} [INFO] [stdout] AAA [INFO] [stdout] BBB [INFO] [stdout] field_meta_map: FieldMetaMap { field_meta_map: {} } [INFO] [stdout] FieldAttr: Field { attrs: [], vis: Visibility::Inherited, mutability: FieldMutability::None, ident: Some(Ident { ident: "date_from", span: #0 bytes(13225..13234) }), colon_token: Some(Colon), ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "Option", span: #0 bytes(13236..13242) }, arguments: PathArguments::AngleBracketed { colon2_token: None, lt_token: Lt, args: [GenericArgument::Type(Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "Date", span: #0 bytes(13243..13247) }, arguments: PathArguments::None }] } })], gt_token: Gt } }] } } } [INFO] [stdout] FieldAttr: Field { attrs: [], vis: Visibility::Inherited, mutability: FieldMutability::None, ident: Some(Ident { ident: "date_to", span: #0 bytes(13254..13261) }), colon_token: Some(Colon), ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "Option", span: #0 bytes(13263..13269) }, arguments: PathArguments::AngleBracketed { colon2_token: None, lt_token: Lt, args: [GenericArgument::Type(Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "Date", span: #0 bytes(13270..13274) }, arguments: PathArguments::None }] } })], gt_token: Gt } }] } } } [INFO] [stdout] get_from_pb_fields: FieldAttr { is_skip: false, type_vec: [Ident { ident: "Option", span: #0 bytes(13236..13242) }, Ident { ident: "Date", span: #0 bytes(13243..13247) }], from_pb_func_name: None, to_pb_func_name: None, field: Field { attrs: [], vis: Visibility::Inherited, mutability: FieldMutability::None, ident: Some(Ident { ident: "date_from", span: #0 bytes(13225..13234) }), colon_token: Some(Colon), ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "Option", span: #0 bytes(13236..13242) }, arguments: PathArguments::AngleBracketed { colon2_token: None, lt_token: Lt, args: [GenericArgument::Type(Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "Date", span: #0 bytes(13243..13247) }, arguments: PathArguments::None }] } })], gt_token: Gt } }] } } } } [INFO] [stdout] get_field_name: Some(Ident { ident: "date_from", span: #0 bytes(13225..13234) }) [INFO] [stdout] get_from_field_quote: Ident { ident: "date_from", span: #0 bytes(13225..13234) } "m_helper" [Ident { ident: "Option", span: #0 bytes(13236..13242) }, Ident { ident: "Date", span: #0 bytes(13243..13247) }] None None [INFO] [stdout] get_from_field_quote: Ident { ident: "date_from", span: #0 bytes(13225..13234) } "m_helper" [Ident { ident: "Date", span: #0 bytes(13243..13247) }] Some(Ident { ident: "Option", span: #0 bytes(13236..13242) }) None [INFO] [stdout] get_custom_func_ident: "m_helper::conv_option_pb_to_option_one" [INFO] [stdout] get_from_pb_fields: FieldAttr { is_skip: false, type_vec: [Ident { ident: "Option", span: #0 bytes(13263..13269) }, Ident { ident: "Date", span: #0 bytes(13270..13274) }], from_pb_func_name: None, to_pb_func_name: None, field: Field { attrs: [], vis: Visibility::Inherited, mutability: FieldMutability::None, ident: Some(Ident { ident: "date_to", span: #0 bytes(13254..13261) }), colon_token: Some(Colon), ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "Option", span: #0 bytes(13263..13269) }, arguments: PathArguments::AngleBracketed { colon2_token: None, lt_token: Lt, args: [GenericArgument::Type(Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "Date", span: #0 bytes(13270..13274) }, arguments: PathArguments::None }] } })], gt_token: Gt } }] } } } } [INFO] [stdout] get_field_name: Some(Ident { ident: "date_to", span: #0 bytes(13254..13261) }) [INFO] [stdout] get_from_field_quote: Ident { ident: "date_to", span: #0 bytes(13254..13261) } "m_helper" [Ident { ident: "Option", span: #0 bytes(13263..13269) }, Ident { ident: "Date", span: #0 bytes(13270..13274) }] None None [INFO] [stdout] get_from_field_quote: Ident { ident: "date_to", span: #0 bytes(13254..13261) } "m_helper" [Ident { ident: "Date", span: #0 bytes(13270..13274) }] Some(Ident { ident: "Option", span: #0 bytes(13263..13269) }) None [INFO] [stdout] get_custom_func_ident: "m_helper::conv_option_pb_to_option_one" [INFO] [stdout] get_field_name: Some(Ident { ident: "date_from", span: #0 bytes(13225..13234) }) [INFO] [stdout] get_custom_func_ident: "m_helper::conv_option_one_to_option_pb" [INFO] [stdout] get_field_name: Some(Ident { ident: "date_to", span: #0 bytes(13254..13261) }) [INFO] [stdout] get_custom_func_ident: "m_helper::conv_option_one_to_option_pb" [INFO] [stdout] field_meta_map: FieldMetaMap { field_meta_map: {} } [INFO] [stdout] FieldAttr: Field { attrs: [], vis: Visibility::Public(Pub), mutability: FieldMutability::None, ident: Some(Ident { ident: "uuid_value", span: #0 bytes(23490..23500) }), colon_token: Some(Colon), ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "Vec", span: #0 bytes(23502..23505) }, arguments: PathArguments::AngleBracketed { colon2_token: None, lt_token: Lt, args: [GenericArgument::Type(Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "u8", span: #0 bytes(23506..23508) }, arguments: PathArguments::None }] } })], gt_token: Gt } }] } } } [INFO] [stdout] get_from_pb_fields: FieldAttr { is_skip: false, type_vec: [Ident { ident: "Vec", span: #0 bytes(23502..23505) }, Ident { ident: "u8", span: #0 bytes(23506..23508) }], from_pb_func_name: None, to_pb_func_name: None, field: Field { attrs: [], vis: Visibility::Public(Pub), mutability: FieldMutability::None, ident: Some(Ident { ident: "uuid_value", span: #0 bytes(23490..23500) }), colon_token: Some(Colon), ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "Vec", span: #0 bytes(23502..23505) }, arguments: PathArguments::AngleBracketed { colon2_token: None, lt_token: Lt, args: [GenericArgument::Type(Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "u8", span: #0 bytes(23506..23508) }, arguments: PathArguments::None }] } })], gt_token: Gt } }] } } } } [INFO] [stdout] get_field_name: Some(Ident { ident: "uuid_value", span: #0 bytes(23490..23500) }) [INFO] [stdout] get_from_field_quote: Ident { ident: "uuid_value", span: #0 bytes(23490..23500) } "super::super::super::pb" [Ident { ident: "Vec", span: #0 bytes(23502..23505) }, Ident { ident: "u8", span: #0 bytes(23506..23508) }] None None [INFO] [stdout] get_from_field_quote: Ident { ident: "uuid_value", span: #0 bytes(23490..23500) } "super::super::super::pb" [Ident { ident: "u8", span: #0 bytes(23506..23508) }] Some(Ident { ident: "Vec", span: #0 bytes(23502..23505) }) None [INFO] [stdout] get_field_name: Some(Ident { ident: "uuid_value", span: #0 bytes(23490..23500) }) [INFO] [stdout] struct [INFO] [stderr] key: "pb_name" [INFO] [stdout] 6 [INFO] [stderr] value: "pb_DateTime" [INFO] [stdout] attr: Attribute { pound_token: Pound, style: AttrStyle::Outer, bracket_token: Bracket, meta: Meta::List { path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "pb", span: #0 bytes(16027..16029) }, arguments: PathArguments::None }] }, delimiter: MacroDelimiter::Paren(Paren), tokens: TokenStream [Ident { ident: "pb_name", span: #0 bytes(16035..16042) }, Punct { ch: '=', spacing: Alone, span: #0 bytes(16043..16044) }, Literal { kind: Str, symbol: "pb_DateTime", suffix: None, span: #0 bytes(16045..16058) }, Punct { ch: ',', spacing: Alone, span: #0 bytes(16058..16059) }, Ident { ident: "module_path", span: #0 bytes(16064..16075) }, Punct { ch: '=', spacing: Alone, span: #0 bytes(16076..16077) }, Literal { kind: Str, symbol: "super::super::pb", suffix: None, span: #0 bytes(16078..16096) }, Punct { ch: ',', spacing: Alone, span: #0 bytes(16096..16097) }, Ident { ident: "trait_path", span: #0 bytes(16102..16112) }, Punct { ch: '=', spacing: Alone, span: #0 bytes(16113..16114) }, Literal { kind: Str, symbol: "super::super::pb", suffix: None, span: #0 bytes(16115..16133) }] } } [INFO] [stderr] key: "module_path" [INFO] [stdout] attr: Attribute { pound_token: Pound, style: AttrStyle::Outer, bracket_token: Bracket, meta: Meta::List { path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "pb", span: #0 bytes(16027..16029) }, arguments: PathArguments::None }] }, delimiter: MacroDelimiter::Paren(Paren), tokens: TokenStream [Ident { ident: "pb_name", span: #0 bytes(16035..16042) }, Punct { ch: '=', spacing: Alone, span: #0 bytes(16043..16044) }, Literal { kind: Str, symbol: "pb_DateTime", suffix: None, span: #0 bytes(16045..16058) }, Punct { ch: ',', spacing: Alone, span: #0 bytes(16058..16059) }, Ident { ident: "module_path", span: #0 bytes(16064..16075) }, Punct { ch: '=', spacing: Alone, span: #0 bytes(16076..16077) }, Literal { kind: Str, symbol: "super::super::pb", suffix: None, span: #0 bytes(16078..16096) }, Punct { ch: ',', spacing: Alone, span: #0 bytes(16096..16097) }, Ident { ident: "trait_path", span: #0 bytes(16102..16112) }, Punct { ch: '=', spacing: Alone, span: #0 bytes(16113..16114) }, Literal { kind: Str, symbol: "super::super::pb", suffix: None, span: #0 bytes(16115..16133) }] } } [INFO] [stderr] value: "super::super::pb" [INFO] [stdout] A [INFO] [stderr] key: "trait_path" [INFO] [stdout] B [INFO] [stderr] value: "super::super::pb" [INFO] [stdout] AAA [INFO] [stderr] hashmap: {"module_path": "super::super::pb", "trait_path": "super::super::pb", "pb_name": "pb_DateTime"} [INFO] [stdout] BBB [INFO] [stderr] key: "pb_name" [INFO] [stdout] field_meta_map: FieldMetaMap { field_meta_map: {} } [INFO] [stderr] value: "pb_Number" [INFO] [stdout] FieldAttr: Field { attrs: [], vis: Visibility::Inherited, mutability: FieldMutability::None, ident: Some(Ident { ident: "year", span: #0 bytes(16163..16167) }), colon_token: Some(Colon), ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "i32", span: #0 bytes(16169..16172) }, arguments: PathArguments::None }] } } } [INFO] [stdout] FieldAttr: Field { attrs: [], vis: Visibility::Inherited, mutability: FieldMutability::None, ident: Some(Ident { ident: "month", span: #0 bytes(16178..16183) }), colon_token: Some(Colon), ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "i32", span: #0 bytes(16185..16188) }, arguments: PathArguments::None }] } } } [INFO] [stdout] FieldAttr: Field { attrs: [], vis: Visibility::Inherited, mutability: FieldMutability::None, ident: Some(Ident { ident: "day", span: #0 bytes(16194..16197) }), colon_token: Some(Colon), ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "i32", span: #0 bytes(16199..16202) }, arguments: PathArguments::None }] } } } [INFO] [stdout] FieldAttr: Field { attrs: [], vis: Visibility::Inherited, mutability: FieldMutability::None, ident: Some(Ident { ident: "hour", span: #0 bytes(16209..16213) }), colon_token: Some(Colon), ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "i32", span: #0 bytes(16215..16218) }, arguments: PathArguments::None }] } } } [INFO] [stdout] FieldAttr: Field { attrs: [], vis: Visibility::Inherited, mutability: FieldMutability::None, ident: Some(Ident { ident: "minute", span: #0 bytes(16224..16230) }), colon_token: Some(Colon), ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "i32", span: #0 bytes(16232..16235) }, arguments: PathArguments::None }] } } } [INFO] [stdout] FieldAttr: Field { attrs: [], vis: Visibility::Inherited, mutability: FieldMutability::None, ident: Some(Ident { ident: "second", span: #0 bytes(16241..16247) }), colon_token: Some(Colon), ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "i32", span: #0 bytes(16249..16252) }, arguments: PathArguments::None }] } } } [INFO] [stdout] get_from_pb_fields: FieldAttr { is_skip: false, type_vec: [Ident { ident: "i32", span: #0 bytes(16169..16172) }], from_pb_func_name: None, to_pb_func_name: None, field: Field { attrs: [], vis: Visibility::Inherited, mutability: FieldMutability::None, ident: Some(Ident { ident: "year", span: #0 bytes(16163..16167) }), colon_token: Some(Colon), ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "i32", span: #0 bytes(16169..16172) }, arguments: PathArguments::None }] } } } } [INFO] [stdout] get_field_name: Some(Ident { ident: "year", span: #0 bytes(16163..16167) }) [INFO] [stdout] get_from_field_quote: Ident { ident: "year", span: #0 bytes(16163..16167) } "super::super::pb" [Ident { ident: "i32", span: #0 bytes(16169..16172) }] None None [INFO] [stdout] get_from_pb_fields: FieldAttr { is_skip: false, type_vec: [Ident { ident: "i32", span: #0 bytes(16185..16188) }], from_pb_func_name: None, to_pb_func_name: None, field: Field { attrs: [], vis: Visibility::Inherited, mutability: FieldMutability::None, ident: Some(Ident { ident: "month", span: #0 bytes(16178..16183) }), colon_token: Some(Colon), ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "i32", span: #0 bytes(16185..16188) }, arguments: PathArguments::None }] } } } } [INFO] [stdout] get_field_name: Some(Ident { ident: "month", span: #0 bytes(16178..16183) }) [INFO] [stdout] get_from_field_quote: Ident { ident: "month", span: #0 bytes(16178..16183) } "super::super::pb" [Ident { ident: "i32", span: #0 bytes(16185..16188) }] None None [INFO] [stdout] get_from_pb_fields: FieldAttr { is_skip: false, type_vec: [Ident { ident: "i32", span: #0 bytes(16199..16202) }], from_pb_func_name: None, to_pb_func_name: None, field: Field { attrs: [], vis: Visibility::Inherited, mutability: FieldMutability::None, ident: Some(Ident { ident: "day", span: #0 bytes(16194..16197) }), colon_token: Some(Colon), ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "i32", span: #0 bytes(16199..16202) }, arguments: PathArguments::None }] } } } } [INFO] [stdout] get_field_name: Some(Ident { ident: "day", span: #0 bytes(16194..16197) }) [INFO] [stdout] get_from_field_quote: Ident { ident: "day", span: #0 bytes(16194..16197) } "super::super::pb" [Ident { ident: "i32", span: #0 bytes(16199..16202) }] None None [INFO] [stdout] get_from_pb_fields: FieldAttr { is_skip: false, type_vec: [Ident { ident: "i32", span: #0 bytes(16215..16218) }], from_pb_func_name: None, to_pb_func_name: None, field: Field { attrs: [], vis: Visibility::Inherited, mutability: FieldMutability::None, ident: Some(Ident { ident: "hour", span: #0 bytes(16209..16213) }), colon_token: Some(Colon), ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "i32", span: #0 bytes(16215..16218) }, arguments: PathArguments::None }] } } } } [INFO] [stdout] get_field_name: Some(Ident { ident: "hour", span: #0 bytes(16209..16213) }) [INFO] [stdout] get_from_field_quote: Ident { ident: "hour", span: #0 bytes(16209..16213) } "super::super::pb" [Ident { ident: "i32", span: #0 bytes(16215..16218) }] None None [INFO] [stdout] get_from_pb_fields: FieldAttr { is_skip: false, type_vec: [Ident { ident: "i32", span: #0 bytes(16232..16235) }], from_pb_func_name: None, to_pb_func_name: None, field: Field { attrs: [], vis: Visibility::Inherited, mutability: FieldMutability::None, ident: Some(Ident { ident: "minute", span: #0 bytes(16224..16230) }), colon_token: Some(Colon), ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "i32", span: #0 bytes(16232..16235) }, arguments: PathArguments::None }] } } } } [INFO] [stdout] get_field_name: Some(Ident { ident: "minute", span: #0 bytes(16224..16230) }) [INFO] [stdout] get_from_field_quote: Ident { ident: "minute", span: #0 bytes(16224..16230) } "super::super::pb" [Ident { ident: "i32", span: #0 bytes(16232..16235) }] None None [INFO] [stdout] get_from_pb_fields: FieldAttr { is_skip: false, type_vec: [Ident { ident: "i32", span: #0 bytes(16249..16252) }], from_pb_func_name: None, to_pb_func_name: None, field: Field { attrs: [], vis: Visibility::Inherited, mutability: FieldMutability::None, ident: Some(Ident { ident: "second", span: #0 bytes(16241..16247) }), colon_token: Some(Colon), ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "i32", span: #0 bytes(16249..16252) }, arguments: PathArguments::None }] } } } } [INFO] [stdout] get_field_name: Some(Ident { ident: "second", span: #0 bytes(16241..16247) }) [INFO] [stdout] get_from_field_quote: Ident { ident: "second", span: #0 bytes(16241..16247) } "super::super::pb" [Ident { ident: "i32", span: #0 bytes(16249..16252) }] None None [INFO] [stdout] get_field_name: Some(Ident { ident: "year", span: #0 bytes(16163..16167) }) [INFO] [stdout] get_field_name: Some(Ident { ident: "month", span: #0 bytes(16178..16183) }) [INFO] [stdout] get_field_name: Some(Ident { ident: "day", span: #0 bytes(16194..16197) }) [INFO] [stdout] get_field_name: Some(Ident { ident: "hour", span: #0 bytes(16209..16213) }) [INFO] [stdout] get_field_name: Some(Ident { ident: "minute", span: #0 bytes(16224..16230) }) [INFO] [stdout] get_field_name: Some(Ident { ident: "second", span: #0 bytes(16241..16247) }) [INFO] [stdout] struct [INFO] [stdout] 1 [INFO] [stdout] attr: Attribute { pound_token: Pound, style: AttrStyle::Outer, bracket_token: Bracket, meta: Meta::List { path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "pb", span: #0 bytes(18732..18734) }, arguments: PathArguments::None }] }, delimiter: MacroDelimiter::Paren(Paren), tokens: TokenStream [Ident { ident: "pb_name", span: #0 bytes(18735..18742) }, Punct { ch: '=', spacing: Alone, span: #0 bytes(18743..18744) }, Literal { kind: Str, symbol: "pb_Number", suffix: None, span: #0 bytes(18745..18756) }] } } [INFO] [stdout] attr: Attribute { pound_token: Pound, style: AttrStyle::Outer, bracket_token: Bracket, meta: Meta::List { path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "pb", span: #0 bytes(18732..18734) }, arguments: PathArguments::None }] }, delimiter: MacroDelimiter::Paren(Paren), tokens: TokenStream [Ident { ident: "pb_name", span: #0 bytes(18735..18742) }, Punct { ch: '=', spacing: Alone, span: #0 bytes(18743..18744) }, Literal { kind: Str, symbol: "pb_Number", suffix: None, span: #0 bytes(18745..18756) }] } } [INFO] [stderr] hashmap: {"pb_name": "pb_Number"} [INFO] [stdout] A [INFO] [stdout] B [INFO] [stdout] AAA [INFO] [stdout] BBB [INFO] [stdout] field_meta_map: FieldMetaMap { field_meta_map: {} } [INFO] [stdout] FieldAttr: Field { attrs: [], vis: Visibility::Public(Pub), mutability: FieldMutability::None, ident: Some(Ident { ident: "value_of", span: #0 bytes(18787..18795) }), colon_token: Some(Colon), ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "Option", span: #0 bytes(18797..18803) }, arguments: PathArguments::AngleBracketed { colon2_token: None, lt_token: Lt, args: [GenericArgument::Type(Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "ValueOf", span: #0 bytes(18804..18811) }, arguments: PathArguments::None }] } })], gt_token: Gt } }] } } } [INFO] [stdout] get_from_pb_fields: FieldAttr { is_skip: false, type_vec: [Ident { ident: "Option", span: #0 bytes(18797..18803) }, Ident { ident: "ValueOf", span: #0 bytes(18804..18811) }], from_pb_func_name: None, to_pb_func_name: None, field: Field { attrs: [], vis: Visibility::Public(Pub), mutability: FieldMutability::None, ident: Some(Ident { ident: "value_of", span: #0 bytes(18787..18795) }), colon_token: Some(Colon), ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "Option", span: #0 bytes(18797..18803) }, arguments: PathArguments::AngleBracketed { colon2_token: None, lt_token: Lt, args: [GenericArgument::Type(Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "ValueOf", span: #0 bytes(18804..18811) }, arguments: PathArguments::None }] } })], gt_token: Gt } }] } } } } [INFO] [stdout] get_field_name: Some(Ident { ident: "value_of", span: #0 bytes(18787..18795) }) [INFO] [stdout] get_from_field_quote: Ident { ident: "value_of", span: #0 bytes(18787..18795) } "m_helper" [Ident { ident: "Option", span: #0 bytes(18797..18803) }, Ident { ident: "ValueOf", span: #0 bytes(18804..18811) }] None None [INFO] [stdout] get_from_field_quote: Ident { ident: "value_of", span: #0 bytes(18787..18795) } "m_helper" [Ident { ident: "ValueOf", span: #0 bytes(18804..18811) }] Some(Ident { ident: "Option", span: #0 bytes(18797..18803) }) None [INFO] [stdout] get_custom_func_ident: "m_helper::conv_option_pb_to_option_one" [INFO] [stdout] get_field_name: Some(Ident { ident: "value_of", span: #0 bytes(18787..18795) }) [INFO] [stdout] get_custom_func_ident: "m_helper::conv_option_one_to_option_pb" [INFO] [stdout] struct [INFO] [stderr] key: "pb_name" [INFO] [stdout] 1 [INFO] [stderr] value: "pb_ArrayValue" [INFO] [stdout] attr: Attribute { pound_token: Pound, style: AttrStyle::Outer, bracket_token: Bracket, meta: Meta::List { path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "pb", span: #0 bytes(61562..61564) }, arguments: PathArguments::None }] }, delimiter: MacroDelimiter::Paren(Paren), tokens: TokenStream [Ident { ident: "pb_name", span: #0 bytes(61565..61572) }, Punct { ch: '=', spacing: Alone, span: #0 bytes(61573..61574) }, Literal { kind: Str, symbol: "pb_ArrayValue", suffix: None, span: #0 bytes(61575..61590) }] } } [INFO] [stderr] hashmap: {"pb_name": "pb_ArrayValue"} [INFO] [stdout] attr: Attribute { pound_token: Pound, style: AttrStyle::Outer, bracket_token: Bracket, meta: Meta::List { path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "pb", span: #0 bytes(61562..61564) }, arguments: PathArguments::None }] }, delimiter: MacroDelimiter::Paren(Paren), tokens: TokenStream [Ident { ident: "pb_name", span: #0 bytes(61565..61572) }, Punct { ch: '=', spacing: Alone, span: #0 bytes(61573..61574) }, Literal { kind: Str, symbol: "pb_ArrayValue", suffix: None, span: #0 bytes(61575..61590) }] } } [INFO] [stdout] A [INFO] [stdout] B [INFO] [stdout] AAA [INFO] [stdout] BBB [INFO] [stdout] field_meta_map: FieldMetaMap { field_meta_map: {} } [INFO] [stdout] FieldAttr: Field { attrs: [], vis: Visibility::Public(Pub), mutability: FieldMutability::None, ident: Some(Ident { ident: "values", span: #0 bytes(61625..61631) }), colon_token: Some(Colon), ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "Vec", span: #0 bytes(61633..61636) }, arguments: PathArguments::AngleBracketed { colon2_token: None, lt_token: Lt, args: [GenericArgument::Type(Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "Value", span: #0 bytes(61637..61642) }, arguments: PathArguments::None }] } })], gt_token: Gt } }] } } } [INFO] [stdout] get_from_pb_fields: FieldAttr { is_skip: false, type_vec: [Ident { ident: "Vec", span: #0 bytes(61633..61636) }, Ident { ident: "Value", span: #0 bytes(61637..61642) }], from_pb_func_name: None, to_pb_func_name: None, field: Field { attrs: [], vis: Visibility::Public(Pub), mutability: FieldMutability::None, ident: Some(Ident { ident: "values", span: #0 bytes(61625..61631) }), colon_token: Some(Colon), ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "Vec", span: #0 bytes(61633..61636) }, arguments: PathArguments::AngleBracketed { colon2_token: None, lt_token: Lt, args: [GenericArgument::Type(Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "Value", span: #0 bytes(61637..61642) }, arguments: PathArguments::None }] } })], gt_token: Gt } }] } } } } [INFO] [stdout] get_field_name: Some(Ident { ident: "values", span: #0 bytes(61625..61631) }) [INFO] [stdout] get_from_field_quote: Ident { ident: "values", span: #0 bytes(61625..61631) } "m_helper" [Ident { ident: "Vec", span: #0 bytes(61633..61636) }, Ident { ident: "Value", span: #0 bytes(61637..61642) }] None None [INFO] [stdout] get_from_field_quote: Ident { ident: "values", span: #0 bytes(61625..61631) } "m_helper" [Ident { ident: "Value", span: #0 bytes(61637..61642) }] Some(Ident { ident: "Vec", span: #0 bytes(61633..61636) }) None [INFO] [stdout] get_custom_func_ident: "m_helper::conv_pb_multi_to_multi" [INFO] [stdout] get_field_name: Some(Ident { ident: "values", span: #0 bytes(61625..61631) }) [INFO] [stdout] get_custom_func_ident: "m_helper::conv_multi_to_multi_pb" [INFO] [stdout] Enum [INFO] [stdout] attr: Attribute { pound_token: Pound, style: AttrStyle::Outer, bracket_token: Bracket, meta: Meta::List { path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "pb", span: #0 bytes(19869..19871) }, arguments: PathArguments::None }] }, delimiter: MacroDelimiter::Paren(Paren), tokens: TokenStream [Ident { ident: "pb_name", span: #0 bytes(19872..19879) }, Punct { ch: '=', spacing: Alone, span: #0 bytes(19880..19881) }, Literal { kind: Str, symbol: "pb_ValueOf", suffix: None, span: #0 bytes(19882..19894) }] } } [INFO] [stdout] attr: Attribute { pound_token: Pound, style: AttrStyle::Outer, bracket_token: Bracket, meta: Meta::List { path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "pb", span: #0 bytes(19869..19871) }, arguments: PathArguments::None }] }, delimiter: MacroDelimiter::Paren(Paren), tokens: TokenStream [Ident { ident: "pb_name", span: #0 bytes(19872..19879) }, Punct { ch: '=', spacing: Alone, span: #0 bytes(19880..19881) }, Literal { kind: Str, symbol: "pb_ValueOf", suffix: None, span: #0 bytes(19882..19894) }] } } [INFO] [stderr] key: "pb_name" [INFO] [stderr] value: "pb_ValueOf" [INFO] [stdout] Enum [INFO] [stdout] attr: Attribute { pound_token: Pound, style: AttrStyle::Outer, bracket_token: Bracket, meta: Meta::List { path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "pb", span: #0 bytes(64290..64292) }, arguments: PathArguments::None }] }, delimiter: MacroDelimiter::Paren(Paren), tokens: TokenStream [Ident { ident: "pb_name", span: #0 bytes(64293..64300) }, Punct { ch: '=', spacing: Alone, span: #0 bytes(64301..64302) }, Literal { kind: Str, symbol: "pb_ValueType", suffix: None, span: #0 bytes(64303..64317) }] } } [INFO] [stdout] attr: Attribute { pound_token: Pound, style: AttrStyle::Outer, bracket_token: Bracket, meta: Meta::List { path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "pb", span: #0 bytes(64290..64292) }, arguments: PathArguments::None }] }, delimiter: MacroDelimiter::Paren(Paren), tokens: TokenStream [Ident { ident: "pb_name", span: #0 bytes(64293..64300) }, Punct { ch: '=', spacing: Alone, span: #0 bytes(64301..64302) }, Literal { kind: Str, symbol: "pb_ValueType", suffix: None, span: #0 bytes(64303..64317) }] } } [INFO] [stderr] hashmap: {"pb_name": "pb_ValueOf"} [INFO] [stdout] attr: Attribute { pound_token: Pound, style: AttrStyle::Outer, bracket_token: Bracket, meta: Meta::List { path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "repr", span: #0 bytes(64322..64326) }, arguments: PathArguments::None }] }, delimiter: MacroDelimiter::Paren(Paren), tokens: TokenStream [Ident { ident: "i32", span: #0 bytes(64327..64330) }] } } [INFO] [stderr] key: "pb_name" [INFO] [stderr] value: "pb_ValueType" [INFO] [stderr] hashmap: {"pb_name": "pb_ValueType"} [INFO] [stderr] key: "i32" [INFO] [stdout] attr: Attribute { pound_token: Pound, style: AttrStyle::Outer, bracket_token: Bracket, meta: Meta::List { path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "repr", span: #0 bytes(64322..64326) }, arguments: PathArguments::None }] }, delimiter: MacroDelimiter::Paren(Paren), tokens: TokenStream [Ident { ident: "i32", span: #0 bytes(64327..64330) }] } } [INFO] [stdout] A [INFO] [stdout] B [INFO] [stdout] new: Ident { ident: "ValueType", span: #0 bytes(64342..64351) }|Ident { ident: "pb_ValueType", span: #0 bytes(64342..64351) }|"m_helper" [INFO] [stdout] dataenum: [Variant { attrs: [], ident: Ident { ident: "Unknown", span: #0 bytes(64358..64365) }, fields: Fields::Unit, discriminant: Some((Eq, Expr::Lit { attrs: [], lit: Lit::Int { token: 0 } })) }, Comma, Variant { attrs: [], ident: Ident { ident: "Bool", span: #0 bytes(64375..64379) }, fields: Fields::Unit, discriminant: Some((Eq, Expr::Lit { attrs: [], lit: Lit::Int { token: 1 } })) }, Comma, Variant { attrs: [], ident: Ident { ident: "String", span: #0 bytes(64389..64395) }, fields: Fields::Unit, discriminant: Some((Eq, Expr::Lit { attrs: [], lit: Lit::Int { token: 2 } })) }, Comma, Variant { attrs: [], ident: Ident { ident: "Bytes", span: #0 bytes(64405..64410) }, fields: Fields::Unit, discriminant: Some((Eq, Expr::Lit { attrs: [], lit: Lit::Int { token: 3 } })) }, Comma, Variant { attrs: [], ident: Ident { ident: "Uuid", span: #0 bytes(64420..64424) }, fields: Fields::Unit, discriminant: Some((Eq, Expr::Lit { attrs: [], lit: Lit::Int { token: 4 } })) }, Comma, Variant { attrs: [], ident: Ident { ident: "Number", span: #0 bytes(64434..64440) }, fields: Fields::Unit, discriminant: Some((Eq, Expr::Lit { attrs: [], lit: Lit::Int { token: 5 } })) }, Comma, Variant { attrs: [], ident: Ident { ident: "Datetime", span: #0 bytes(64450..64458) }, fields: Fields::Unit, discriminant: Some((Eq, Expr::Lit { attrs: [], lit: Lit::Int { token: 6 } })) }, Comma, Variant { attrs: [], ident: Ident { ident: "Date", span: #0 bytes(64468..64472) }, fields: Fields::Unit, discriminant: Some((Eq, Expr::Lit { attrs: [], lit: Lit::Int { token: 7 } })) }, Comma, Variant { attrs: [], ident: Ident { ident: "DateRange", span: #0 bytes(64482..64491) }, fields: Fields::Unit, discriminant: Some((Eq, Expr::Lit { attrs: [], lit: Lit::Int { token: 8 } })) }, Comma, Variant { attrs: [], ident: Ident { ident: "ArrayValues", span: #0 bytes(64501..64512) }, fields: Fields::Unit, discriminant: Some((Eq, Expr::Lit { attrs: [], lit: Lit::Int { token: 10 } })) }, Comma] [INFO] [stdout] Variant { attrs: [], ident: Ident { ident: "Unknown", span: #0 bytes(64358..64365) }, fields: Fields::Unit, discriminant: Some((Eq, Expr::Lit { attrs: [], lit: Lit::Int { token: 0 } })) } [INFO] [stdout] Variant { attrs: [], ident: Ident { ident: "Bool", span: #0 bytes(64375..64379) }, fields: Fields::Unit, discriminant: Some((Eq, Expr::Lit { attrs: [], lit: Lit::Int { token: 1 } })) } [INFO] [stdout] Variant { attrs: [], ident: Ident { ident: "String", span: #0 bytes(64389..64395) }, fields: Fields::Unit, discriminant: Some((Eq, Expr::Lit { attrs: [], lit: Lit::Int { token: 2 } })) } [INFO] [stdout] Variant { attrs: [], ident: Ident { ident: "Bytes", span: #0 bytes(64405..64410) }, fields: Fields::Unit, discriminant: Some((Eq, Expr::Lit { attrs: [], lit: Lit::Int { token: 3 } })) } [INFO] [stdout] Variant { attrs: [], ident: Ident { ident: "Uuid", span: #0 bytes(64420..64424) }, fields: Fields::Unit, discriminant: Some((Eq, Expr::Lit { attrs: [], lit: Lit::Int { token: 4 } })) } [INFO] [stdout] Variant { attrs: [], ident: Ident { ident: "Number", span: #0 bytes(64434..64440) }, fields: Fields::Unit, discriminant: Some((Eq, Expr::Lit { attrs: [], lit: Lit::Int { token: 5 } })) } [INFO] [stdout] Variant { attrs: [], ident: Ident { ident: "Datetime", span: #0 bytes(64450..64458) }, fields: Fields::Unit, discriminant: Some((Eq, Expr::Lit { attrs: [], lit: Lit::Int { token: 6 } })) } [INFO] [stdout] Variant { attrs: [], ident: Ident { ident: "Date", span: #0 bytes(64468..64472) }, fields: Fields::Unit, discriminant: Some((Eq, Expr::Lit { attrs: [], lit: Lit::Int { token: 7 } })) } [INFO] [stdout] Variant { attrs: [], ident: Ident { ident: "DateRange", span: #0 bytes(64482..64491) }, fields: Fields::Unit, discriminant: Some((Eq, Expr::Lit { attrs: [], lit: Lit::Int { token: 8 } })) } [INFO] [stdout] Variant { attrs: [], ident: Ident { ident: "ArrayValues", span: #0 bytes(64501..64512) }, fields: Fields::Unit, discriminant: Some((Eq, Expr::Lit { attrs: [], lit: Lit::Int { token: 10 } })) } [INFO] [stdout] FieldMetaMap { field_meta_map: {} } [INFO] [stdout] "Unknown" [INFO] [stdout] [] [INFO] [stdout] "Bool" [INFO] [stdout] [] [INFO] [stdout] "String" [INFO] [stdout] [] [INFO] [stdout] "Bytes" [INFO] [stdout] [] [INFO] [stdout] "Uuid" [INFO] [stdout] [] [INFO] [stdout] "Number" [INFO] [stdout] [] [INFO] [stdout] "Datetime" [INFO] [stdout] [] [INFO] [stdout] "Date" [INFO] [stdout] [] [INFO] [stdout] "DateRange" [INFO] [stdout] [] [INFO] [stdout] "ArrayValues" [INFO] [stdout] [] [INFO] [stdout] variant: Ident { ident: "Unknown", span: #0 bytes(64358..64365) } | LitInt { token: 0 } [INFO] [stdout] variant: Ident { ident: "Bool", span: #0 bytes(64375..64379) } | LitInt { token: 1 } [INFO] [stdout] variant: Ident { ident: "String", span: #0 bytes(64389..64395) } | LitInt { token: 2 } [INFO] [stdout] variant: Ident { ident: "Bytes", span: #0 bytes(64405..64410) } | LitInt { token: 3 } [INFO] [stdout] variant: Ident { ident: "Uuid", span: #0 bytes(64420..64424) } | LitInt { token: 4 } [INFO] [stdout] variant: Ident { ident: "Number", span: #0 bytes(64434..64440) } | LitInt { token: 5 } [INFO] [stdout] variant: Ident { ident: "Datetime", span: #0 bytes(64450..64458) } | LitInt { token: 6 } [INFO] [stdout] variant: Ident { ident: "Date", span: #0 bytes(64468..64472) } | LitInt { token: 7 } [INFO] [stdout] variant: Ident { ident: "DateRange", span: #0 bytes(64482..64491) } | LitInt { token: 8 } [INFO] [stdout] A [INFO] [stdout] variant: Ident { ident: "ArrayValues", span: #0 bytes(64501..64512) } | LitInt { token: 10 } [INFO] [stdout] B [INFO] [stdout] variant: Ident { ident: "Unknown", span: #0 bytes(64358..64365) } | LitInt { token: 0 } [INFO] [stdout] variant: Ident { ident: "Bool", span: #0 bytes(64375..64379) } | LitInt { token: 1 } [INFO] [stdout] variant: Ident { ident: "String", span: #0 bytes(64389..64395) } | LitInt { token: 2 } [INFO] [stdout] variant: Ident { ident: "Bytes", span: #0 bytes(64405..64410) } | LitInt { token: 3 } [INFO] [stdout] variant: Ident { ident: "Uuid", span: #0 bytes(64420..64424) } | LitInt { token: 4 } [INFO] [stdout] variant: Ident { ident: "Number", span: #0 bytes(64434..64440) } | LitInt { token: 5 } [INFO] [stdout] variant: Ident { ident: "Datetime", span: #0 bytes(64450..64458) } | LitInt { token: 6 } [INFO] [stdout] variant: Ident { ident: "Date", span: #0 bytes(64468..64472) } | LitInt { token: 7 } [INFO] [stdout] variant: Ident { ident: "DateRange", span: #0 bytes(64482..64491) } | LitInt { token: 8 } [INFO] [stdout] variant: Ident { ident: "ArrayValues", span: #0 bytes(64501..64512) } | LitInt { token: 10 } [INFO] [stdout] new: Ident { ident: "ValueOf", span: #0 bytes(19906..19913) }|Ident { ident: "pb_ValueOf", span: #0 bytes(19906..19913) }|"m_helper" [INFO] [stdout] dataenum: [Variant { attrs: [], ident: Ident { ident: "Int32Value", span: #0 bytes(19920..19930) }, fields: Fields::Unnamed { paren_token: Paren, unnamed: [Field { attrs: [], vis: Visibility::Inherited, mutability: FieldMutability::None, ident: None, colon_token: None, ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "i32", span: #0 bytes(19931..19934) }, arguments: PathArguments::None }] } } }] }, discriminant: None }, Comma, Variant { attrs: [], ident: Ident { ident: "Int64Value", span: #0 bytes(19941..19951) }, fields: Fields::Unnamed { paren_token: Paren, unnamed: [Field { attrs: [], vis: Visibility::Inherited, mutability: FieldMutability::None, ident: None, colon_token: None, ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "i64", span: #0 bytes(19952..19955) }, arguments: PathArguments::None }] } } }] }, discriminant: None }, Comma, Variant { attrs: [], ident: Ident { ident: "FloatValue", span: #0 bytes(19962..19972) }, fields: Fields::Unnamed { paren_token: Paren, unnamed: [Field { attrs: [], vis: Visibility::Inherited, mutability: FieldMutability::None, ident: None, colon_token: None, ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "f32", span: #0 bytes(19973..19976) }, arguments: PathArguments::None }] } } }] }, discriminant: None }, Comma, Variant { attrs: [], ident: Ident { ident: "DoubleValue", span: #0 bytes(19983..19994) }, fields: Fields::Unnamed { paren_token: Paren, unnamed: [Field { attrs: [], vis: Visibility::Inherited, mutability: FieldMutability::None, ident: None, colon_token: None, ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "f64", span: #0 bytes(19995..19998) }, arguments: PathArguments::None }] } } }] }, discriminant: None }, Comma] [INFO] [stdout] Variant { attrs: [], ident: Ident { ident: "Int32Value", span: #0 bytes(19920..19930) }, fields: Fields::Unnamed { paren_token: Paren, unnamed: [Field { attrs: [], vis: Visibility::Inherited, mutability: FieldMutability::None, ident: None, colon_token: None, ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "i32", span: #0 bytes(19931..19934) }, arguments: PathArguments::None }] } } }] }, discriminant: None } [INFO] [stdout] Variant { attrs: [], ident: Ident { ident: "Int64Value", span: #0 bytes(19941..19951) }, fields: Fields::Unnamed { paren_token: Paren, unnamed: [Field { attrs: [], vis: Visibility::Inherited, mutability: FieldMutability::None, ident: None, colon_token: None, ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "i64", span: #0 bytes(19952..19955) }, arguments: PathArguments::None }] } } }] }, discriminant: None } [INFO] [stdout] Variant { attrs: [], ident: Ident { ident: "FloatValue", span: #0 bytes(19962..19972) }, fields: Fields::Unnamed { paren_token: Paren, unnamed: [Field { attrs: [], vis: Visibility::Inherited, mutability: FieldMutability::None, ident: None, colon_token: None, ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "f32", span: #0 bytes(19973..19976) }, arguments: PathArguments::None }] } } }] }, discriminant: None } [INFO] [stdout] Variant { attrs: [], ident: Ident { ident: "DoubleValue", span: #0 bytes(19983..19994) }, fields: Fields::Unnamed { paren_token: Paren, unnamed: [Field { attrs: [], vis: Visibility::Inherited, mutability: FieldMutability::None, ident: None, colon_token: None, ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "f64", span: #0 bytes(19995..19998) }, arguments: PathArguments::None }] } } }] }, discriminant: None } [INFO] [stdout] FieldMetaMap { field_meta_map: {} } [INFO] [stdout] "Int32Value" [INFO] [stdout] [] [INFO] [stdout] "Int64Value" [INFO] [stdout] [] [INFO] [stdout] "FloatValue" [INFO] [stdout] [] [INFO] [stdout] "DoubleValue" [INFO] [stdout] [] [INFO] [stdout] struct [INFO] [stdout] 1 [INFO] [stdout] attr: Attribute { pound_token: Pound, style: AttrStyle::Outer, bracket_token: Bracket, meta: Meta::List { path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "pb", span: #0 bytes(23344..23346) }, arguments: PathArguments::None }] }, delimiter: MacroDelimiter::Paren(Paren), tokens: TokenStream [Ident { ident: "pb_name", span: #0 bytes(23352..23359) }, Punct { ch: '=', spacing: Alone, span: #0 bytes(23360..23361) }, Literal { kind: Str, symbol: "pb_Uuid", suffix: None, span: #0 bytes(23362..23371) }, Punct { ch: ',', spacing: Alone, span: #0 bytes(23371..23372) }, Ident { ident: "module_path", span: #0 bytes(23377..23388) }, Punct { ch: '=', spacing: Alone, span: #0 bytes(23389..23390) }, Literal { kind: Str, symbol: "super::super::super::pb", suffix: None, span: #0 bytes(23391..23416) }, Punct { ch: ',', spacing: Alone, span: #0 bytes(23416..23417) }, Ident { ident: "trait_path", span: #0 bytes(23422..23432) }, Punct { ch: '=', spacing: Alone, span: #0 bytes(23433..23434) }, Literal { kind: Str, symbol: "super::super::super::pb", suffix: None, span: #0 bytes(23435..23460) }] } } [INFO] [stdout] attr: Attribute { pound_token: Pound, style: AttrStyle::Outer, bracket_token: Bracket, meta: Meta::List { path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "pb", span: #0 bytes(23344..23346) }, arguments: PathArguments::None }] }, delimiter: MacroDelimiter::Paren(Paren), tokens: TokenStream [Ident { ident: "pb_name", span: #0 bytes(23352..23359) }, Punct { ch: '=', spacing: Alone, span: #0 bytes(23360..23361) }, Literal { kind: Str, symbol: "pb_Uuid", suffix: None, span: #0 bytes(23362..23371) }, Punct { ch: ',', spacing: Alone, span: #0 bytes(23371..23372) }, Ident { ident: "module_path", span: #0 bytes(23377..23388) }, Punct { ch: '=', spacing: Alone, span: #0 bytes(23389..23390) }, Literal { kind: Str, symbol: "super::super::super::pb", suffix: None, span: #0 bytes(23391..23416) }, Punct { ch: ',', spacing: Alone, span: #0 bytes(23416..23417) }, Ident { ident: "trait_path", span: #0 bytes(23422..23432) }, Punct { ch: '=', spacing: Alone, span: #0 bytes(23433..23434) }, Literal { kind: Str, symbol: "super::super::super::pb", suffix: None, span: #0 bytes(23435..23460) }] } } [INFO] [stderr] key: "pb_name" [INFO] [stderr] value: "pb_Uuid" [INFO] [stderr] key: "module_path" [INFO] [stderr] value: "super::super::super::pb" [INFO] [stderr] key: "trait_path" [INFO] [stderr] value: "super::super::super::pb" [INFO] [stderr] hashmap: {"module_path": "super::super::super::pb", "trait_path": "super::super::super::pb", "pb_name": "pb_Uuid"} [INFO] [stdout] A [INFO] [stdout] B [INFO] [stdout] AAA [INFO] [stdout] BBB [INFO] [stdout] field_meta_map: FieldMetaMap { field_meta_map: {} } [INFO] [stdout] FieldAttr: Field { attrs: [], vis: Visibility::Public(Pub), mutability: FieldMutability::None, ident: Some(Ident { ident: "uuid_value", span: #0 bytes(23490..23500) }), colon_token: Some(Colon), ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "Vec", span: #0 bytes(23502..23505) }, arguments: PathArguments::AngleBracketed { colon2_token: None, lt_token: Lt, args: [GenericArgument::Type(Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "u8", span: #0 bytes(23506..23508) }, arguments: PathArguments::None }] } })], gt_token: Gt } }] } } } [INFO] [stdout] get_from_pb_fields: FieldAttr { is_skip: false, type_vec: [Ident { ident: "Vec", span: #0 bytes(23502..23505) }, Ident { ident: "u8", span: #0 bytes(23506..23508) }], from_pb_func_name: None, to_pb_func_name: None, field: Field { attrs: [], vis: Visibility::Public(Pub), mutability: FieldMutability::None, ident: Some(Ident { ident: "uuid_value", span: #0 bytes(23490..23500) }), colon_token: Some(Colon), ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "Vec", span: #0 bytes(23502..23505) }, arguments: PathArguments::AngleBracketed { colon2_token: None, lt_token: Lt, args: [GenericArgument::Type(Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "u8", span: #0 bytes(23506..23508) }, arguments: PathArguments::None }] } })], gt_token: Gt } }] } } } } [INFO] [stdout] get_field_name: Some(Ident { ident: "uuid_value", span: #0 bytes(23490..23500) }) [INFO] [stdout] get_from_field_quote: Ident { ident: "uuid_value", span: #0 bytes(23490..23500) } "super::super::super::pb" [Ident { ident: "Vec", span: #0 bytes(23502..23505) }, Ident { ident: "u8", span: #0 bytes(23506..23508) }] None None [INFO] [stdout] get_from_field_quote: Ident { ident: "uuid_value", span: #0 bytes(23490..23500) } "super::super::super::pb" [Ident { ident: "u8", span: #0 bytes(23506..23508) }] Some(Ident { ident: "Vec", span: #0 bytes(23502..23505) }) None [INFO] [stdout] get_field_name: Some(Ident { ident: "uuid_value", span: #0 bytes(23490..23500) }) [INFO] [stdout] struct [INFO] [stdout] 1 [INFO] [stdout] attr: Attribute { pound_token: Pound, style: AttrStyle::Outer, bracket_token: Bracket, meta: Meta::List { path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "pb", span: #0 bytes(61562..61564) }, arguments: PathArguments::None }] }, delimiter: MacroDelimiter::Paren(Paren), tokens: TokenStream [Ident { ident: "pb_name", span: #0 bytes(61565..61572) }, Punct { ch: '=', spacing: Alone, span: #0 bytes(61573..61574) }, Literal { kind: Str, symbol: "pb_ArrayValue", suffix: None, span: #0 bytes(61575..61590) }] } } [INFO] [stdout] attr: Attribute { pound_token: Pound, style: AttrStyle::Outer, bracket_token: Bracket, meta: Meta::List { path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "pb", span: #0 bytes(61562..61564) }, arguments: PathArguments::None }] }, delimiter: MacroDelimiter::Paren(Paren), tokens: TokenStream [Ident { ident: "pb_name", span: #0 bytes(61565..61572) }, Punct { ch: '=', spacing: Alone, span: #0 bytes(61573..61574) }, Literal { kind: Str, symbol: "pb_ArrayValue", suffix: None, span: #0 bytes(61575..61590) }] } } [INFO] [stderr] key: "pb_name" [INFO] [stderr] value: "pb_ArrayValue" [INFO] [stderr] hashmap: {"pb_name": "pb_ArrayValue"} [INFO] [stdout] A [INFO] [stdout] B [INFO] [stdout] AAA [INFO] [stdout] BBB [INFO] [stdout] field_meta_map: FieldMetaMap { field_meta_map: {} } [INFO] [stdout] FieldAttr: Field { attrs: [], vis: Visibility::Public(Pub), mutability: FieldMutability::None, ident: Some(Ident { ident: "values", span: #0 bytes(61625..61631) }), colon_token: Some(Colon), ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "Vec", span: #0 bytes(61633..61636) }, arguments: PathArguments::AngleBracketed { colon2_token: None, lt_token: Lt, args: [GenericArgument::Type(Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "Value", span: #0 bytes(61637..61642) }, arguments: PathArguments::None }] } })], gt_token: Gt } }] } } } [INFO] [stdout] get_from_pb_fields: FieldAttr { is_skip: false, type_vec: [Ident { ident: "Vec", span: #0 bytes(61633..61636) }, Ident { ident: "Value", span: #0 bytes(61637..61642) }], from_pb_func_name: None, to_pb_func_name: None, field: Field { attrs: [], vis: Visibility::Public(Pub), mutability: FieldMutability::None, ident: Some(Ident { ident: "values", span: #0 bytes(61625..61631) }), colon_token: Some(Colon), ty: Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "Vec", span: #0 bytes(61633..61636) }, arguments: PathArguments::AngleBracketed { colon2_token: None, lt_token: Lt, args: [GenericArgument::Type(Type::Path { qself: None, path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "Value", span: #0 bytes(61637..61642) }, arguments: PathArguments::None }] } })], gt_token: Gt } }] } } } } [INFO] [stdout] get_field_name: Some(Ident { ident: "values", span: #0 bytes(61625..61631) }) [INFO] [stdout] get_from_field_quote: Ident { ident: "values", span: #0 bytes(61625..61631) } "m_helper" [Ident { ident: "Vec", span: #0 bytes(61633..61636) }, Ident { ident: "Value", span: #0 bytes(61637..61642) }] None None [INFO] [stdout] get_from_field_quote: Ident { ident: "values", span: #0 bytes(61625..61631) } "m_helper" [Ident { ident: "Value", span: #0 bytes(61637..61642) }] Some(Ident { ident: "Vec", span: #0 bytes(61633..61636) }) None [INFO] [stdout] get_custom_func_ident: "m_helper::conv_pb_multi_to_multi" [INFO] [stdout] get_field_name: Some(Ident { ident: "values", span: #0 bytes(61625..61631) }) [INFO] [stdout] get_custom_func_ident: "m_helper::conv_multi_to_multi_pb" [INFO] [stdout] Enum [INFO] [stdout] attr: Attribute { pound_token: Pound, style: AttrStyle::Outer, bracket_token: Bracket, meta: Meta::List { path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "pb", span: #0 bytes(64290..64292) }, arguments: PathArguments::None }] }, delimiter: MacroDelimiter::Paren(Paren), tokens: TokenStream [Ident { ident: "pb_name", span: #0 bytes(64293..64300) }, Punct { ch: '=', spacing: Alone, span: #0 bytes(64301..64302) }, Literal { kind: Str, symbol: "pb_ValueType", suffix: None, span: #0 bytes(64303..64317) }] } } [INFO] [stdout] attr: Attribute { pound_token: Pound, style: AttrStyle::Outer, bracket_token: Bracket, meta: Meta::List { path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "pb", span: #0 bytes(64290..64292) }, arguments: PathArguments::None }] }, delimiter: MacroDelimiter::Paren(Paren), tokens: TokenStream [Ident { ident: "pb_name", span: #0 bytes(64293..64300) }, Punct { ch: '=', spacing: Alone, span: #0 bytes(64301..64302) }, Literal { kind: Str, symbol: "pb_ValueType", suffix: None, span: #0 bytes(64303..64317) }] } } [INFO] [stderr] key: "pb_name" [INFO] [stderr] value: "pb_ValueType" [INFO] [stderr] hashmap: {"pb_name": "pb_ValueType"} [INFO] [stdout] attr: Attribute { pound_token: Pound, style: AttrStyle::Outer, bracket_token: Bracket, meta: Meta::List { path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "repr", span: #0 bytes(64322..64326) }, arguments: PathArguments::None }] }, delimiter: MacroDelimiter::Paren(Paren), tokens: TokenStream [Ident { ident: "i32", span: #0 bytes(64327..64330) }] } } [INFO] [stdout] attr: Attribute { pound_token: Pound, style: AttrStyle::Outer, bracket_token: Bracket, meta: Meta::List { path: Path { leading_colon: None, segments: [PathSegment { ident: Ident { ident: "repr", span: #0 bytes(64322..64326) }, arguments: PathArguments::None }] }, delimiter: MacroDelimiter::Paren(Paren), tokens: TokenStream [Ident { ident: "i32", span: #0 bytes(64327..64330) }] } } [INFO] [stderr] key: "i32" [INFO] [stdout] A [INFO] [stdout] B [INFO] [stdout] new: Ident { ident: "ValueType", span: #0 bytes(64342..64351) }|Ident { ident: "pb_ValueType", span: #0 bytes(64342..64351) }|"m_helper" [INFO] [stdout] dataenum: [Variant { attrs: [], ident: Ident { ident: "Unknown", span: #0 bytes(64358..64365) }, fields: Fields::Unit, discriminant: Some((Eq, Expr::Lit { attrs: [], lit: Lit::Int { token: 0 } })) }, Comma, Variant { attrs: [], ident: Ident { ident: "Bool", span: #0 bytes(64375..64379) }, fields: Fields::Unit, discriminant: Some((Eq, Expr::Lit { attrs: [], lit: Lit::Int { token: 1 } })) }, Comma, Variant { attrs: [], ident: Ident { ident: "String", span: #0 bytes(64389..64395) }, fields: Fields::Unit, discriminant: Some((Eq, Expr::Lit { attrs: [], lit: Lit::Int { token: 2 } })) }, Comma, Variant { attrs: [], ident: Ident { ident: "Bytes", span: #0 bytes(64405..64410) }, fields: Fields::Unit, discriminant: Some((Eq, Expr::Lit { attrs: [], lit: Lit::Int { token: 3 } })) }, Comma, Variant { attrs: [], ident: Ident { ident: "Uuid", span: #0 bytes(64420..64424) }, fields: Fields::Unit, discriminant: Some((Eq, Expr::Lit { attrs: [], lit: Lit::Int { token: 4 } })) }, Comma, Variant { attrs: [], ident: Ident { ident: "Number", span: #0 bytes(64434..64440) }, fields: Fields::Unit, discriminant: Some((Eq, Expr::Lit { attrs: [], lit: Lit::Int { token: 5 } })) }, Comma, Variant { attrs: [], ident: Ident { ident: "Datetime", span: #0 bytes(64450..64458) }, fields: Fields::Unit, discriminant: Some((Eq, Expr::Lit { attrs: [], lit: Lit::Int { token: 6 } })) }, Comma, Variant { attrs: [], ident: Ident { ident: "Date", span: #0 bytes(64468..64472) }, fields: Fields::Unit, discriminant: Some((Eq, Expr::Lit { attrs: [], lit: Lit::Int { token: 7 } })) }, Comma, Variant { attrs: [], ident: Ident { ident: "DateRange", span: #0 bytes(64482..64491) }, fields: Fields::Unit, discriminant: Some((Eq, Expr::Lit { attrs: [], lit: Lit::Int { token: 8 } })) }, Comma, Variant { attrs: [], ident: Ident { ident: "ArrayValues", span: #0 bytes(64501..64512) }, fields: Fields::Unit, discriminant: Some((Eq, Expr::Lit { attrs: [], lit: Lit::Int { token: 10 } })) }, Comma] [INFO] [stdout] Variant { attrs: [], ident: Ident { ident: "Unknown", span: #0 bytes(64358..64365) }, fields: Fields::Unit, discriminant: Some((Eq, Expr::Lit { attrs: [], lit: Lit::Int { token: 0 } })) } [INFO] [stdout] Variant { attrs: [], ident: Ident { ident: "Bool", span: #0 bytes(64375..64379) }, fields: Fields::Unit, discriminant: Some((Eq, Expr::Lit { attrs: [], lit: Lit::Int { token: 1 } })) } [INFO] [stdout] Variant { attrs: [], ident: Ident { ident: "String", span: #0 bytes(64389..64395) }, fields: Fields::Unit, discriminant: Some((Eq, Expr::Lit { attrs: [], lit: Lit::Int { token: 2 } })) } [INFO] [stdout] Variant { attrs: [], ident: Ident { ident: "Bytes", span: #0 bytes(64405..64410) }, fields: Fields::Unit, discriminant: Some((Eq, Expr::Lit { attrs: [], lit: Lit::Int { token: 3 } })) } [INFO] [stdout] Variant { attrs: [], ident: Ident { ident: "Uuid", span: #0 bytes(64420..64424) }, fields: Fields::Unit, discriminant: Some((Eq, Expr::Lit { attrs: [], lit: Lit::Int { token: 4 } })) } [INFO] [stdout] Variant { attrs: [], ident: Ident { ident: "Number", span: #0 bytes(64434..64440) }, fields: Fields::Unit, discriminant: Some((Eq, Expr::Lit { attrs: [], lit: Lit::Int { token: 5 } })) } [INFO] [stdout] Variant { attrs: [], ident: Ident { ident: "Datetime", span: #0 bytes(64450..64458) }, fields: Fields::Unit, discriminant: Some((Eq, Expr::Lit { attrs: [], lit: Lit::Int { token: 6 } })) } [INFO] [stdout] Variant { attrs: [], ident: Ident { ident: "Date", span: #0 bytes(64468..64472) }, fields: Fields::Unit, discriminant: Some((Eq, Expr::Lit { attrs: [], lit: Lit::Int { token: 7 } })) } [INFO] [stdout] Variant { attrs: [], ident: Ident { ident: "DateRange", span: #0 bytes(64482..64491) }, fields: Fields::Unit, discriminant: Some((Eq, Expr::Lit { attrs: [], lit: Lit::Int { token: 8 } })) } [INFO] [stdout] Variant { attrs: [], ident: Ident { ident: "ArrayValues", span: #0 bytes(64501..64512) }, fields: Fields::Unit, discriminant: Some((Eq, Expr::Lit { attrs: [], lit: Lit::Int { token: 10 } })) } [INFO] [stdout] FieldMetaMap { field_meta_map: {} } [INFO] [stdout] "Unknown" [INFO] [stdout] [] [INFO] [stdout] "Bool" [INFO] [stdout] [] [INFO] [stdout] "String" [INFO] [stdout] [] [INFO] [stdout] "Bytes" [INFO] [stdout] [] [INFO] [stdout] "Uuid" [INFO] [stdout] [] [INFO] [stdout] "Number" [INFO] [stdout] [] [INFO] [stdout] "Datetime" [INFO] [stdout] [] [INFO] [stdout] "Date" [INFO] [stdout] [] [INFO] [stdout] "DateRange" [INFO] [stdout] [] [INFO] [stdout] "ArrayValues" [INFO] [stdout] [] [INFO] [stdout] variant: Ident { ident: "Unknown", span: #0 bytes(64358..64365) } | LitInt { token: 0 } [INFO] [stdout] variant: Ident { ident: "Bool", span: #0 bytes(64375..64379) } | LitInt { token: 1 } [INFO] [stdout] variant: Ident { ident: "String", span: #0 bytes(64389..64395) } | LitInt { token: 2 } [INFO] [stdout] warning: unused import: `crate::typ_p::Value` [INFO] [stdout] --> src/typ_p/hashmap.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::typ_p::Value; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] variant: Ident { ident: "Bytes", span: #0 bytes(64405..64410) } | LitInt { token: 3 } [INFO] [stdout] warning: unused import: `crate::typ_p::Value` [INFO] [stdout] --> src/typ_p/vec.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::typ_p::Value; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] variant: Ident { ident: "Uuid", span: #0 bytes(64420..64424) } | LitInt { token: 4 } [INFO] [stdout] variant: Ident { ident: "Number", span: #0 bytes(64434..64440) } | LitInt { token: 5 } [INFO] [stdout] variant: Ident { ident: "Datetime", span: #0 bytes(64450..64458) } | LitInt { token: 6 } [INFO] [stdout] variant: Ident { ident: "Date", span: #0 bytes(64468..64472) } | LitInt { token: 7 } [INFO] [stdout] variant: Ident { ident: "DateRange", span: #0 bytes(64482..64491) } | LitInt { token: 8 } [INFO] [stdout] variant: Ident { ident: "ArrayValues", span: #0 bytes(64501..64512) } | LitInt { token: 10 } [INFO] [stdout] variant: Ident { ident: "Unknown", span: #0 bytes(64358..64365) } | LitInt { token: 0 } [INFO] [stdout] variant: Ident { ident: "Bool", span: #0 bytes(64375..64379) } | LitInt { token: 1 } [INFO] [stdout] variant: Ident { ident: "String", span: #0 bytes(64389..64395) } | LitInt { token: 2 } [INFO] [stdout] variant: Ident { ident: "Bytes", span: #0 bytes(64405..64410) } | LitInt { token: 3 } [INFO] [stdout] variant: Ident { ident: "Uuid", span: #0 bytes(64420..64424) } | LitInt { token: 4 } [INFO] [stdout] variant: Ident { ident: "Number", span: #0 bytes(64434..64440) } | LitInt { token: 5 } [INFO] [stdout] variant: Ident { ident: "Datetime", span: #0 bytes(64450..64458) } | LitInt { token: 6 } [INFO] [stdout] variant: Ident { ident: "Date", span: #0 bytes(64468..64472) } | LitInt { token: 7 } [INFO] [stdout] variant: Ident { ident: "DateRange", span: #0 bytes(64482..64491) } | LitInt { token: 8 } [INFO] [stdout] variant: Ident { ident: "ArrayValues", span: #0 bytes(64501..64512) } | LitInt { token: 10 } [INFO] [stdout] warning: unused import: `super::*` [INFO] [stdout] --> src/typ_p/value.rs:293:9 [INFO] [stdout] | [INFO] [stdout] 293 | use super::*; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::typ_p::Value` [INFO] [stdout] --> src/typ_p/hashmap.rs:4:5 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::typ_p::Value; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `crate::typ_p::Value` [INFO] [stdout] --> src/typ_p/vec.rs:2:5 [INFO] [stdout] | [INFO] [stdout] 2 | use crate::typ_p::Value; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 3 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 2 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 54.32s [INFO] running `Command { std: "docker" "inspect" "17c7b34c55688542d7508b08923a5d0482e17c0a9e764c67ba1ff362825e2248", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "17c7b34c55688542d7508b08923a5d0482e17c0a9e764c67ba1ff362825e2248", kill_on_drop: false }` [INFO] [stdout] 17c7b34c55688542d7508b08923a5d0482e17c0a9e764c67ba1ff362825e2248