[INFO] fetching crate idt 0.1.21... [INFO] testing idt-0.1.21 against try#dec9417b8611e34e787a3e4c37686b5131f9e5c5 for pr-154210-1 [INFO] extracting crate idt 0.1.21 into /workspace/builds/worker-1-tc2/source [INFO] removed /workspace/builds/worker-1-tc2/source/.cargo/config.toml [INFO] started tweaking crates.io crate idt 0.1.21 [INFO] finished tweaking crates.io crate idt 0.1.21 [INFO] tweaked toml for crates.io crate idt 0.1.21 written to /workspace/builds/worker-1-tc2/source/Cargo.toml [INFO] validating manifest of crates.io crate idt 0.1.21 on toolchain dec9417b8611e34e787a3e4c37686b5131f9e5c5 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate crates.io crate idt 0.1.21 already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "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] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 95014603f826f11b79dab352a6b50e91723fc6506b2f65b48f98d4891aea255a [INFO] running `Command { std: "docker" "start" "-a" "95014603f826f11b79dab352a6b50e91723fc6506b2f65b48f98d4891aea255a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "95014603f826f11b79dab352a6b50e91723fc6506b2f65b48f98d4891aea255a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "95014603f826f11b79dab352a6b50e91723fc6506b2f65b48f98d4891aea255a", kill_on_drop: false }` [INFO] [stdout] 95014603f826f11b79dab352a6b50e91723fc6506b2f65b48f98d4891aea255a [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] c45c98cbc84bf7a4a4df3e49b165ecb07196a07e5079d1706f457fc6830f50bb [INFO] running `Command { std: "docker" "start" "-a" "c45c98cbc84bf7a4a4df3e49b165ecb07196a07e5079d1706f457fc6830f50bb", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.183 [INFO] [stderr] Compiling zerocopy v0.8.42 [INFO] [stderr] Compiling colorchoice v1.0.5 [INFO] [stderr] Compiling anstyle v1.0.14 [INFO] [stderr] Compiling anstyle-query v1.1.5 [INFO] [stderr] Compiling unicase v2.9.0 [INFO] [stderr] Compiling generic-array v0.14.7 [INFO] [stderr] Compiling anstyle-parse v1.0.0 [INFO] [stderr] Compiling getrandom v0.4.2 [INFO] [stderr] Compiling rand_core v0.10.0 [INFO] [stderr] Compiling clap_lex v1.1.0 [INFO] [stderr] Compiling syn v2.0.117 [INFO] [stderr] Compiling cpufeatures v0.3.0 [INFO] [stderr] Compiling bytemuck v1.25.0 [INFO] [stderr] Compiling winnow v0.7.15 [INFO] [stderr] Compiling toml_datetime v1.0.0+spec-1.1.0 [INFO] [stderr] Compiling serde_spanned v1.0.4 [INFO] [stderr] Compiling toml_writer v1.0.6+spec-1.1.0 [INFO] [stderr] Compiling roff v1.1.0 [INFO] [stderr] Compiling atomic v0.6.1 [INFO] [stderr] Compiling chacha20 v0.10.0 [INFO] [stderr] Compiling sha1_smol v1.0.1 [INFO] [stderr] Compiling ryu v1.0.23 [INFO] [stderr] Compiling anstream v1.0.0 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling bs58 v0.5.1 [INFO] [stderr] Compiling colored v3.1.1 [INFO] [stderr] Compiling base32 v0.5.1 [INFO] [stderr] Compiling clap_builder v4.6.0 [INFO] [stderr] Compiling crypto-common v0.1.7 [INFO] [stderr] Compiling block-buffer v0.10.4 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling md-5 v0.10.6 [INFO] [stderr] Compiling sha2 v0.10.9 [INFO] [stderr] Compiling getrandom v0.2.17 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling rand_core v0.9.5 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling uuid v1.22.0 [INFO] [stderr] Compiling rand v0.10.0 [INFO] [stderr] Compiling toml_parser v1.0.9+spec-1.1.0 [INFO] [stderr] Compiling toml v1.0.6+spec-1.1.0 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling clap_derive v4.6.0 [INFO] [stderr] Compiling thiserror-impl v2.0.18 [INFO] [stderr] Compiling thiserror v2.0.18 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling rand_chacha v0.9.0 [INFO] [stderr] Compiling rand v0.9.2 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling clap v4.6.0 [INFO] [stderr] Compiling clap_complete v4.6.0 [INFO] [stderr] Compiling clap_mangen v0.2.33 [INFO] [stderr] Compiling nanoid v0.4.0 [INFO] [stderr] Compiling ulid v1.2.1 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling serde_yaml_ng v0.10.0 [INFO] [stderr] Compiling chrono v0.4.44 [INFO] [stderr] Compiling idt v0.1.21 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 31.17s [INFO] running `Command { std: "docker" "inspect" "c45c98cbc84bf7a4a4df3e49b165ecb07196a07e5079d1706f457fc6830f50bb", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "c45c98cbc84bf7a4a4df3e49b165ecb07196a07e5079d1706f457fc6830f50bb", kill_on_drop: false }` [INFO] [stdout] c45c98cbc84bf7a4a4df3e49b165ecb07196a07e5079d1706f457fc6830f50bb [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 3d1d80bea7b8eb77a99a72e5b6785a29b19cf4f098f061960013a258e02fd74a [INFO] running `Command { std: "docker" "start" "-a" "3d1d80bea7b8eb77a99a72e5b6785a29b19cf4f098f061960013a258e02fd74a", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.183 [INFO] [stderr] Compiling zerocopy v0.8.42 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling zerocopy-derive v0.8.42 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling predicates-core v1.0.10 [INFO] [stderr] Compiling float-cmp v0.10.0 [INFO] [stderr] Compiling normalize-line-endings v0.3.0 [INFO] [stderr] Compiling difflib v0.4.0 [INFO] [stderr] Compiling assert_cmd v2.2.0 [INFO] [stderr] Compiling termtree v0.5.1 [INFO] [stderr] Compiling predicates-tree v1.0.13 [INFO] [stderr] Compiling serde_yaml_ng v0.10.0 [INFO] [stderr] Compiling chrono v0.4.44 [INFO] [stderr] Compiling tinytemplate v1.2.1 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling getrandom v0.2.17 [INFO] [stderr] Compiling getrandom v0.3.4 [INFO] [stderr] Compiling getrandom v0.4.2 [INFO] [stderr] Compiling wait-timeout v0.2.1 [INFO] [stderr] Compiling is-terminal v0.4.17 [INFO] [stderr] Compiling uuid v1.22.0 [INFO] [stderr] Compiling rand v0.10.0 [INFO] [stderr] Compiling tempfile v3.27.0 [INFO] [stderr] Compiling rand_core v0.9.5 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling bstr v1.12.1 [INFO] [stderr] Compiling predicates v3.1.4 [INFO] [stderr] Compiling ppv-lite86 v0.2.21 [INFO] [stderr] Compiling half v2.7.1 [INFO] [stderr] Compiling ciborium-ll v0.2.2 [INFO] [stderr] Compiling ciborium v0.2.2 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling rand_chacha v0.9.0 [INFO] [stderr] Compiling rand v0.9.2 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling criterion v0.5.1 [INFO] [stderr] Compiling ulid v1.2.1 [INFO] [stderr] Compiling nanoid v0.4.0 [INFO] [stderr] Compiling idt v0.1.21 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 30.66s [INFO] running `Command { std: "docker" "inspect" "3d1d80bea7b8eb77a99a72e5b6785a29b19cf4f098f061960013a258e02fd74a", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "3d1d80bea7b8eb77a99a72e5b6785a29b19cf4f098f061960013a258e02fd74a", kill_on_drop: false }` [INFO] [stdout] 3d1d80bea7b8eb77a99a72e5b6785a29b19cf4f098f061960013a258e02fd74a [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc2/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:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+dec9417b8611e34e787a3e4c37686b5131f9e5c5" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] d30431ef495e2796017c49f4b04ef0e77b85d00f8bc5ae11c17ec397c02a8728 [INFO] running `Command { std: "docker" "start" "-a" "d30431ef495e2796017c49f4b04ef0e77b85d00f8bc5ae11c17ec397c02a8728", kill_on_drop: false }` [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.25s [INFO] [stderr] Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/idt-e8a887609e1de4c3) [INFO] [stdout] [INFO] [stdout] running 514 tests [INFO] [stdout] Comparing IDs: [INFO] [stdout] ID 1: 550e8400-e29b-41d4-a716-446655440000 [INFO] [stdout] ID 2: 6ba7b810-9dad-11d1-80b4-00c04fd430c8 [INFO] [stdout] [INFO] [stdout] Warning: Different types! (uuidv4 vs uuidv1) [INFO] [stdout] [INFO] [stdout] Comparison Results: [INFO] [stdout] Binary: ID1 < ID2 [INFO] [stdout] Lexicographic: ID1 < ID2 [INFO] [stdout] {"id1":"550e8400-e29b-41d4-a716-446655440000","id2":"6ba7b810-9dad-11d1-80b4-00c04fd430c8","type1":"uuidv4","type2":"uuidv1","binary_order":"less","lexicographic_order":"less","timestamp2":886630433151} [INFO] [stdout] { [INFO] [stdout] "id1": "550e8400-e29b-41d4-a716-446655440000", [INFO] [stdout] "id2": "6ba7b810-9dad-11d1-80b4-00c04fd430c8", [INFO] [stdout] "type1": "uuidv4", [INFO] [stdout] "type2": "uuidv1", [INFO] [stdout] "binary_order": "less", [INFO] [stdout] "lexicographic_order": "less", [INFO] [stdout] "timestamp2": 886630433151 [INFO] [stdout] } [INFO] [stdout] Comparing IDs: [INFO] [stdout] ID 1: 550e8400-e29b-41d4-a716-446655440000 [INFO] [stdout] ID 2: 550e8400-e29b-41d4-a716-446655440000 [INFO] [stdout] [INFO] [stdout] Comparison Results: [INFO] [stdout] Binary: ID1 = ID2 [INFO] [stdout] Lexicographic: ID1 = ID2 [INFO] [stdout] Comparing IDs: [INFO] [stdout] ID 1: 01ARZ3NDEKTSV4RRFFQ69G5FAV [INFO] [stdout] ID 2: 01BX5ZZKBKACTAV9WEVGEMMVRY [INFO] [stdout] [INFO] [stdout] Comparison Results: [INFO] [stdout] Binary: ID1 < ID2 [INFO] [stdout] Lexicographic: ID1 < ID2 [INFO] [stdout] Chronological: ID1 is older (created before ID2) [INFO] [stdout] Time difference: 450.07 days [INFO] [stdout] Comparing IDs: [INFO] [stdout] ID 1: 550e8400-e29b-41d4-a716-446655440000 [INFO] [stdout] ID 2: 6ba7b810-9dad-11d1-80b4-00c04fd430c8 [INFO] [stdout] [INFO] [stdout] Warning: Different types! (uuidv4 vs uuidv1) [INFO] [stdout] [INFO] [stdout] Comparison Results: [INFO] [stdout] Binary: ID1 < ID2 [INFO] [stdout] Lexicographic: ID1 < ID2 [INFO] [stdout] "550e8400-e29b-41d4-a716-446655440000" [INFO] [stdout] 550e8400e29b41d4a716446655440000 [INFO] [stdout] ["550e8400-e29b-41d4-a716-446655440000","01ARZ3NDEKTSV4RRFFQ69G5FAV"] [INFO] [stdout] 550E8400E29B41D4A716446655440000 [INFO] [stdout] 550e8400-e29b-41d4-a716-446655440000 [INFO] [stdout] VQ6EAOKbQdSnFkRmVUQAAA== [INFO] [stdout] test cli::commands::compare::tests::test_compare_invalid_id ... ok [INFO] [stdout] test cli::commands::compare::tests::test_compare_different_uuids ... ok [INFO] [stdout] test cli::commands::compare::tests::test_compare_json_output ... ok [INFO] [stdout] test cli::commands::compare::tests::test_compare_json_pretty ... ok [INFO] [stdout] test cli::commands::compare::tests::test_compare_same_uuid ... ok [INFO] [stdout] test cli::commands::compare::tests::test_compare_ulids ... ok [INFO] [stdout] test cli::commands::compare::tests::test_ordering_to_string ... ok [INFO] [stdout] test cli::commands::compare::tests::test_compare_with_type_hint ... ok [INFO] [stdout] { [INFO] [stdout] "id": "cdf043cf-9f79-4e6b-a692-4c42b11aa3d3" [INFO] [stdout] } [INFO] [stdout] BWBeN28Vb7cMEx7Ym8AUzs [INFO] [stdout] 550e8400e29b41d4a716446655440000 [INFO] [stdout] ["f835f220-771c-4356-8e98-67487ae0656d","16414b3e-d2e2-4c0b-b9b7-16f196d311bd","0eea5068-61a9-4b33-9372-6696c1d5b918"] [INFO] [stdout] no placeholder here [INFO] [stdout] {"id":"653b0f22-d978-419c-a88b-64f69a01d5a7"} [INFO] [stdout] test cli::commands::convert::tests::test_convert_json_output ... ok [INFO] [stdout] cdf98f8a-a690-411f-a91f-1b679958ac80 [INFO] [stdout] test cli::commands::convert::tests::test_convert_lowercase ... ok [INFO] [stdout] test cli::commands::convert::tests::test_convert_multiple_ids_json ... ok [INFO] [stdout] test cli::commands::convert::tests::test_convert_uppercase ... ok [INFO] [stdout] test cli::commands::convert::tests::test_convert_uuid_default ... ok [INFO] [stdout] id = "570b9f99-8460-424a-91b1-96d12dc3f8f0" [INFO] [stdout] [INFO] [stdout] id=74040402-fcdf-430b-9375-ed026caaf016 [INFO] [stdout] test cli::commands::convert::tests::test_convert_uuid_to_base64 ... ok [INFO] [stdout] test cli::commands::convert::tests::test_empty_input ... ok [INFO] [stdout] test cli::commands::generate::tests::test_execute_json_pretty ... ok [INFO] [stdout] test cli::commands::convert::tests::test_convert_with_type_hint ... ok [INFO] [stdout] test cli::commands::convert::tests::test_convert_uuid_to_hex ... ok [INFO] [stdout] test cli::commands::generate::tests::test_execute_template_with_format_error ... ok [INFO] [stdout] test cli::commands::generate::tests::test_execute_json_multiple ... ok [INFO] [stdout] test cli::commands::generate::tests::test_execute_template_no_placeholder_warning ... ok [INFO] [stdout] test cli::commands::generate::tests::test_execute_json_single ... ok [INFO] [stdout] test cli::commands::generate::tests::test_execute_plain_output ... 7965e617c7f2402695e20414dc669c36 [INFO] [stdout] ok [INFO] [stdout] test cli::commands::generate::tests::test_execute_with_template ... ok [INFO] [stdout] test cli::commands::generate::tests::test_format_id_hex ... ok [INFO] [stdout] test cli::commands::generate::tests::test_execute_toml_output ... ok [INFO] [stdout] test cli::commands::generate::tests::test_generate_cuid ... ok [INFO] [stdout] test cli::commands::generate::tests::test_generate_cuid2 ... ok [INFO] [stdout] test cli::commands::generate::tests::test_generate_ksuid ... ok [INFO] [stdout] test cli::commands::generate::tests::test_generate_multiple ... ok [INFO] [stdout] test cli::commands::generate::tests::test_generate_nanoid ... ok [INFO] [stdout] test cli::commands::generate::tests::test_generate_nanoid_custom ... ok [INFO] [stdout] test cli::commands::generate::tests::test_generate_objectid ... ok [INFO] [stdout] test cli::commands::generate::tests::test_generate_snowflake ... ok [INFO] [stdout] id: 04a3409a-6ad5-4324-88e6-54be76b49df7 [INFO] [stdout] [INFO] [stdout] test cli::commands::generate::tests::test_generate_tsid ... ok [INFO] [stdout] test cli::commands::generate::tests::test_execute_with_encoding_format ... ok [INFO] [stdout] test cli::commands::generate::tests::test_generate_typeid ... ok [INFO] [stdout] test cli::commands::generate::tests::test_generate_uuid_kind_version_1 ... ok [INFO] [stdout] test cli::commands::generate::tests::test_generate_uuid_kind_version_6 ... ok [INFO] [stdout] test cli::commands::generate::tests::test_generate_uuid_max ... ok [INFO] [stdout] test cli::commands::generate::tests::test_generate_ulid ... ok [INFO] [stdout] test cli::commands::generate::tests::test_generate_uuid_nil ... ok [INFO] [stdout] test cli::commands::generate::tests::test_generate_uuid_unsupported_version ... ok [INFO] [stdout] test cli::commands::generate::tests::test_generate_uuid_v1 ... ok [INFO] [stdout] test cli::commands::generate::tests::test_generate_uuid_v4 ... ok [INFO] [stdout] test cli::commands::generate::tests::test_generate_uuid_v6 ... ok [INFO] [stdout] test cli::commands::generate::tests::test_generate_uuid_v7 ... ok [INFO] [stdout] test cli::commands::generate::tests::test_generate_uuid_with_version ... ok [INFO] [stdout] test cli::commands::generate::tests::test_execute_yaml_output ... ok [INFO] [stdout] test cli::commands::generate::tests::test_generate_xid ... ok [INFO] [stdout] test cli::commands::generate::tests::test_output_plain_multiple ... ok [INFO] [stdout] test cli::commands::generate::tests::test_output_plain_no_newline ... ok [INFO] [stdout] Supported ID Types [INFO] [stdout] ============================================================ [INFO] [stdout] [INFO] [stdout] UUID Family: [INFO] [stdout] uuidv1 [T-] UUID v1 (timestamp + MAC address) [INFO] [stdout] uuidv3 [--] UUID v3 (MD5 namespace hash) [INFO] [stdout] test cli::commands::generate::tests::test_snowflake_datacenter_id_rejected ... uuidv4 [--] UUID v4 (random) [INFO] [stdout] uuidv5 [--] UUID v5 (SHA-1 namespace hash) [INFO] [stdout] uuidv6 [TS] UUID v6 (reordered timestamp) [INFO] [stdout] uuidv7 [TS] UUID v7 (Unix timestamp + random) [INFO] [stdout] uuid-nil [--] Nil UUID (all zeros) [INFO] [stdout] uuid-max [--] Max UUID (all ones) [INFO] [stdout] [INFO] [stdout] Modern Sortable IDs: [INFO] [stdout] ulid [TS] ULID (Universally Unique Lexicographically Sortable Identifier) [INFO] [stdout] snowflake [TS] Snowflake ID (Twitter-style distributed ID) [INFO] [stdout] [INFO] [stdout] Sortable IDs: [INFO] [stdout] ksuid [TS] KSUID (K-Sortable Unique Identifier) [INFO] [stdout] xid [TS] Xid (globally unique, sortable ID) [INFO] [stdout] tsid [TS] TSID (time-sorted unique identifier) [INFO] [stdout] typeid [TS] TypeID (type-prefixed, sortable ID) [INFO] [stdout] ok [INFO] [stdout] Collision-Resistant IDs: [INFO] [stdout] cuid [T-] CUID (collision-resistant unique identifier) [INFO] [stdout] cuid2 [--] CUID2 (secure collision-resistant ID) [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] Database IDs: [INFO] [stdout] objectid [T-] MongoDB ObjectId [INFO] [stdout] [INFO] [stdout] Compact IDs: [INFO] [stdout] nanoid [--] NanoID (compact URL-friendly unique ID) [INFO] [stdout] [INFO] [stdout] Use 'idt info ' for detailed information. [INFO] [stdout] test cli::commands::generate::tests::test_snowflake_field_missing_equals ... ok [INFO] [stdout] test cli::commands::generate::tests::test_output_plain_single ... ok [INFO] [stdout] test cli::commands::generate::tests::test_template_multiple_placeholders ... ok [INFO] [stdout] test cli::commands::generate::tests::test_template_basic ... ok [INFO] [stdout] [ [INFO] [stdout] { [INFO] [stdout] "name": "uuid", [INFO] [stdout] "description": "UUID (any version)", [INFO] [stdout] "has_timestamp": false, [INFO] [stdout] "is_sortable": false, [INFO] [stdout] "bit_length": 128 [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "name": "uuidv1", [INFO] [stdout] "description": "UUID v1 (timestamp + MAC address)", [INFO] [stdout] "has_timestamp": true, [INFO] [stdout] "is_sortable": false, [INFO] [stdout] "bit_length": 128 [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "name": "uuidv3", [INFO] [stdout] "description": "UUID v3 (MD5 namespace hash)", [INFO] [stdout] "has_timestamp": false, [INFO] [stdout] "is_sortable": false, [INFO] [stdout] "bit_length": 128 [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "name": "uuidv4", [INFO] [stdout] "description": "UUID v4 (random)", [INFO] [stdout] "has_timestamp": false, [INFO] [stdout] "is_sortable": false, [INFO] [stdout] "bit_length": 128 [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "name": "uuidv5", [INFO] [stdout] "description": "UUID v5 (SHA-1 namespace hash)", [INFO] [stdout] "has_timestamp": false, [INFO] [stdout] "is_sortable": false, [INFO] [stdout] "bit_length": 128 [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "name": "uuidv6", [INFO] [stdout] "description": "UUID v6 (reordered timestamp)", [INFO] [stdout] "has_timestamp": true, [INFO] [stdout] "is_sortable": true, [INFO] [stdout] "bit_length": 128 [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "name": "uuidv7", [INFO] [stdout] "description": "UUID v7 (Unix timestamp + random)", [INFO] [stdout] "has_timestamp": true, [INFO] [stdout] "is_sortable": true, [INFO] [stdout] "bit_length": 128 [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "name": "uuid-nil", [INFO] [stdout] "description": "Nil UUID (all zeros)", [INFO] [stdout] "has_timestamp": false, [INFO] [stdout] "is_sortable": false, [INFO] [stdout] "bit_length": 128 [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "name": "uuid-max", [INFO] [stdout] "description": "Max UUID (all ones)", [INFO] [stdout] "has_timestamp": false, [INFO] [stdout] "is_sortable": false, [INFO] [stdout] "bit_length": 128 [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "name": "ulid", [INFO] [stdout] "description": "ULID (Universally Unique Lexicographically Sortable Identifier)", [INFO] [stdout] "has_timestamp": true, [INFO] [stdout] "is_sortable": true, [INFO] [stdout] "bit_length": 128 [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "name": "nanoid", [INFO] [stdout] "description": "NanoID (compact URL-friendly unique ID)", [INFO] [stdout] "has_timestamp": false, [INFO] [stdout] "is_sortable": false, [INFO] [stdout] "bit_length": 126 [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "name": "ksuid", [INFO] [stdout] "description": "KSUID (K-Sortable Unique Identifier)", [INFO] [stdout] "has_timestamp": true, [INFO] [stdout] "is_sortable": true, [INFO] [stdout] "bit_length": 160 [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "name": "snowflake", [INFO] [stdout] "description": "Snowflake ID (Twitter-style distributed ID)", [INFO] [stdout] "has_timestamp": true, [INFO] [stdout] "is_sortable": true, [INFO] [stdout] "bit_length": 64 [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "name": "objectid", [INFO] [stdout] "description": "MongoDB ObjectId", [INFO] [stdout] "has_timestamp": true, [INFO] [stdout] "is_sortable": false, [INFO] [stdout] "bit_length": 96 [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "name": "typeid", [INFO] [stdout] "description": "TypeID (type-prefixed, sortable ID)", [INFO] [stdout] "has_timestamp": true, [INFO] [stdout] "is_sortable": true, [INFO] [stdout] "bit_length": 128 [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "name": "xid", [INFO] [stdout] "description": "Xid (globally unique, sortable ID)", [INFO] [stdout] "has_timestamp": true, [INFO] [stdout] "is_sortable": true, [INFO] [stdout] "bit_length": 96 [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "name": "cuid", [INFO] [stdout] "description": "CUID (collision-resistant unique identifier)", [INFO] [stdout] "has_timestamp": true, [INFO] [stdout] "is_sortable": false, [INFO] [stdout] "bit_length": 128 [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "name": "cuid2", [INFO] [stdout] "description": "CUID2 (secure collision-resistant ID)", [INFO] [stdout] "has_timestamp": false, [INFO] [stdout] "is_sortable": false, [INFO] [stdout] "bit_length": 128 [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "name": "tsid", [INFO] [stdout] "description": "TSID (time-sorted unique identifier)", [INFO] [stdout] "has_timestamp": true, [INFO] [stdout] "is_sortable": true, [INFO] [stdout] "bit_length": 64 [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "name": "ean13", [INFO] [stdout] "description": "EAN-13 (International Article Number)", [INFO] [stdout] "has_timestamp": false, [INFO] [stdout] "is_sortable": false, [INFO] [stdout] "bit_length": 0 [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "name": "isbn13", [INFO] [stdout] "description": "ISBN-13 (International Standard Book Number)", [INFO] [stdout] "has_timestamp": false, [INFO] [stdout] "is_sortable": false, [INFO] [stdout] "bit_length": 0 [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "name": "isbn10", [INFO] [stdout] "description": "ISBN-10 (International Standard Book Number, legacy)", [INFO] [stdout] "has_timestamp": false, [INFO] [stdout] "is_sortable": false, [INFO] [stdout] "bit_length": 0 [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "name": "isin", [INFO] [stdout] "description": "ISIN (International Securities Identification Number)", [INFO] [stdout] "has_timestamp": false, [INFO] [stdout] "is_sortable": false, [INFO] [stdout] "bit_length": 0 [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "name": "ean8", [INFO] [stdout] "description": "EAN-8 (8-digit barcode for small items)", [INFO] [stdout] "has_timestamp": false, [INFO] [stdout] "is_sortable": false, [INFO] [stdout] "bit_length": 0 [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "name": "upca", [INFO] [stdout] "description": "UPC-A (Universal Product Code)", [INFO] [stdout] "has_timestamp": false, [INFO] [stdout] "is_sortable": false, [INFO] [stdout] "bit_length": 0 [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "name": "issn", [INFO] [stdout] "description": "ISSN (International Standard Serial Number)", [INFO] [stdout] "has_timestamp": false, [INFO] [stdout] "is_sortable": false, [INFO] [stdout] "bit_length": 0 [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "name": "ismn", [INFO] [stdout] "description": "ISMN (International Standard Music Number)", [INFO] [stdout] "has_timestamp": false, [INFO] [stdout] "is_sortable": false, [INFO] [stdout] "bit_length": 0 [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "name": "isni", [INFO] [stdout] "description": "ISNI (International Standard Name Identifier)", [INFO] [stdout] "has_timestamp": false, [INFO] [stdout] "is_sortable": false, [INFO] [stdout] "bit_length": 0 [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "name": "gtin14", [INFO] [stdout] "description": "GTIN-14 (Global Trade Item Number)", [INFO] [stdout] "has_timestamp": false, [INFO] [stdout] "is_sortable": false, [INFO] [stdout] "bit_length": 0 [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "name": "asin", [INFO] [stdout] "description": "ASIN (Amazon Standard Identification Number)", [INFO] [stdout] "has_timestamp": false, [INFO] [stdout] "is_sortable": false, [INFO] [stdout] "bit_length": 0 [INFO] [stdout] } [INFO] [stdout] ] [INFO] [stdout] {"name":"uuidv4","description":"UUID v4 (random)","has_timestamp":false,"is_sortable":false,"bit_length":128,"example":"a0e94ac5-3205-43e0-b3dd-1e30bf35e03e","spec_url":"https://datatracker.ietf.org/doc/html/rfc4122","notes":["Most commonly used UUID version","122 bits of randomness","Collision probability extremely low"]} [INFO] [stdout] test cli::commands::generate::tests::test_snowflake_field_unknown_name ... ok [INFO] [stdout] test cli::commands::generate::tests::test_snowflake_field_invalid_value ... ok [INFO] [stdout] SNOWFLAKE [INFO] [stdout] ============================================================ [INFO] [stdout] [INFO] [stdout] Snowflake ID (Twitter-style distributed ID) [INFO] [stdout] [INFO] [stdout] Has Timestamp: Yes [INFO] [stdout] Sortable: Yes [INFO] [stdout] Bit Length: 64 bits [INFO] [stdout] [INFO] [stdout] Example: 7448285702120275968 [INFO] [stdout] [INFO] [stdout] Specification: https://en.wikipedia.org/wiki/Snowflake_ID [INFO] [stdout] [INFO] [stdout] Notes : [INFO] [stdout] - Originally designed by Twitter [INFO] [stdout] - Requires coordination (machine/datacenter IDs) [INFO] [stdout] - Epoch can be customized [INFO] [stdout] test cli::commands::generate::tests::test_template_no_placeholder ... ok [INFO] [stdout] test cli::commands::info::tests::test_get_spec_url ... ok [INFO] [stdout] test cli::commands::generate::tests::test_template_sql ... ok [INFO] [stdout] test cli::commands::info::tests::test_list_all_types_human ... ok [INFO] [stdout] test cli::commands::generate::tests::test_snowflake_field_valid ... ok [INFO] [stdout] test cli::commands::info::tests::test_list_all_types_json_pretty ... ok [INFO] [stdout] - name: uuid [INFO] [stdout] description: UUID (any version) [INFO] [stdout] has_timestamp: false [INFO] [stdout] is_sortable: false [INFO] [stdout] bit_length: 128 [INFO] [stdout] - name: uuidv1 [INFO] [stdout] description: UUID v1 (timestamp + MAC address) [INFO] [stdout] has_timestamp: true [INFO] [stdout] is_sortable: false [INFO] [stdout] bit_length: 128 [INFO] [stdout] - name: uuidv3 [INFO] [stdout] description: UUID v3 (MD5 namespace hash) [INFO] [stdout] has_timestamp: false [INFO] [stdout] is_sortable: false [INFO] [stdout] bit_length: 128 [INFO] [stdout] - name: uuidv4 [INFO] [stdout] description: UUID v4 (random) [INFO] [stdout] has_timestamp: false [INFO] [stdout] is_sortable: false [INFO] [stdout] bit_length: 128 [INFO] [stdout] - name: uuidv5 [INFO] [stdout] description: UUID v5 (SHA-1 namespace hash) [INFO] [stdout] has_timestamp: false [INFO] [stdout] is_sortable: false [INFO] [stdout] bit_length: 128 [INFO] [stdout] - name: uuidv6 [INFO] [stdout] description: UUID v6 (reordered timestamp) [INFO] [stdout] has_timestamp: true [INFO] [stdout] is_sortable: true [INFO] [stdout] bit_length: 128 [INFO] [stdout] - name: uuidv7 [INFO] [stdout] description: UUID v7 (Unix timestamp + random) [INFO] [stdout] has_timestamp: true [INFO] [stdout] is_sortable: true [INFO] [stdout] bit_length: 128 [INFO] [stdout] - name: uuid-nil [INFO] [stdout] description: Nil UUID (all zeros) [INFO] [stdout] has_timestamp: false [INFO] [stdout] is_sortable: false [INFO] [stdout] bit_length: 128 [INFO] [stdout] - name: uuid-max [INFO] [stdout] description: Max UUID (all ones) [INFO] [stdout] has_timestamp: false [INFO] [stdout] is_sortable: false [INFO] [stdout] bit_length: 128 [INFO] [stdout] - name: ulid [INFO] [stdout] description: ULID (Universally Unique Lexicographically Sortable Identifier) [INFO] [stdout] has_timestamp: true [INFO] [stdout] is_sortable: true [INFO] [stdout] bit_length: 128 [INFO] [stdout] - name: nanoid [INFO] [stdout] description: NanoID (compact URL-friendly unique ID) [INFO] [stdout] has_timestamp: false [INFO] [stdout] is_sortable: false [INFO] [stdout] bit_length: 126 [INFO] [stdout] - name: ksuid [INFO] [stdout] description: KSUID (K-Sortable Unique Identifier) [INFO] [stdout] has_timestamp: true [INFO] [stdout] is_sortable: true [INFO] [stdout] bit_length: 160 [INFO] [stdout] - name: snowflake [INFO] [stdout] description: Snowflake ID (Twitter-style distributed ID) [INFO] [stdout] has_timestamp: true [INFO] [stdout] is_sortable: true [INFO] [stdout] bit_length: 64 [INFO] [stdout] - name: objectid [INFO] [stdout] description: MongoDB ObjectId [INFO] [stdout] has_timestamp: true [INFO] [stdout] is_sortable: false [INFO] [stdout] bit_length: 96 [INFO] [stdout] - name: typeid [INFO] [stdout] description: TypeID (type-prefixed, sortable ID) [INFO] [stdout] has_timestamp: true [INFO] [stdout] is_sortable: true [INFO] [stdout] bit_length: 128 [INFO] [stdout] - name: xid [INFO] [stdout] description: Xid (globally unique, sortable ID) [INFO] [stdout] has_timestamp: true [INFO] [stdout] is_sortable: true [INFO] [stdout] bit_length: 96 [INFO] [stdout] - name: cuid [INFO] [stdout] description: CUID (collision-resistant unique identifier) [INFO] [stdout] has_timestamp: true [INFO] [stdout] is_sortable: false [INFO] [stdout] bit_length: 128 [INFO] [stdout] - name: cuid2 [INFO] [stdout] description: CUID2 (secure collision-resistant ID) [INFO] [stdout] has_timestamp: false [INFO] [stdout] is_sortable: false [INFO] [stdout] bit_length: 128 [INFO] [stdout] - name: tsid [INFO] [stdout] description: TSID (time-sorted unique identifier) [INFO] [stdout] has_timestamp: true [INFO] [stdout] is_sortable: true [INFO] [stdout] bit_length: 64 [INFO] [stdout] - name: ean13 [INFO] [stdout] description: EAN-13 (International Article Number) [INFO] [stdout] has_timestamp: false [INFO] [stdout] is_sortable: false [INFO] [stdout] bit_length: 0 [INFO] [stdout] - name: isbn13 [INFO] [stdout] description: ISBN-13 (International Standard Book Number) [INFO] [stdout] has_timestamp: false [INFO] [stdout] is_sortable: false [INFO] [stdout] bit_length: 0 [INFO] [stdout] - name: isbn10 [INFO] [stdout] description: ISBN-10 (International Standard Book Number, legacy) [INFO] [stdout] has_timestamp: false [INFO] [stdout] is_sortable: false [INFO] [stdout] bit_length: 0 [INFO] [stdout] - name: isin [INFO] [stdout] description: ISIN (International Securities Identification Number) [INFO] [stdout] has_timestamp: false [INFO] [stdout] is_sortable: false [INFO] [stdout] bit_length: 0 [INFO] [stdout] - name: ean8 [INFO] [stdout] description: EAN-8 (8-digit barcode for small items) [INFO] [stdout] has_timestamp: false [INFO] [stdout] is_sortable: false [INFO] [stdout] bit_length: 0 [INFO] [stdout] - name: upca [INFO] [stdout] description: UPC-A (Universal Product Code) [INFO] [stdout] has_timestamp: false [INFO] [stdout] is_sortable: false [INFO] [stdout] bit_length: 0 [INFO] [stdout] - name: issn [INFO] [stdout] description: ISSN (International Standard Serial Number) [INFO] [stdout] has_timestamp: false [INFO] [stdout] is_sortable: false [INFO] [stdout] bit_length: 0 [INFO] [stdout] - name: ismn [INFO] [stdout] description: ISMN (International Standard Music Number) [INFO] [stdout] has_timestamp: false [INFO] [stdout] is_sortable: false [INFO] [stdout] bit_length: 0 [INFO] [stdout] - name: isni [INFO] [stdout] description: ISNI (International Standard Name Identifier) [INFO] [stdout] has_timestamp: false [INFO] [stdout] is_sortable: false [INFO] [stdout] bit_length: 0 [INFO] [stdout] - name: gtin14 [INFO] [stdout] description: GTIN-14 (Global Trade Item Number) [INFO] [stdout] has_timestamp: false [INFO] [stdout] is_sortable: false [INFO] [stdout] bit_length: 0 [INFO] [stdout] - name: asin [INFO] [stdout] description: ASIN (Amazon Standard Identification Number) [INFO] [stdout] has_timestamp: false [INFO] [stdout] is_sortable: false [INFO] [stdout] bit_length: 0 [INFO] [stdout] [INFO] [stdout] Supported ID Types [INFO] [stdout] ============================================================ [INFO] [stdout] [INFO] [stdout] UUID Family: [INFO] [stdout] uuidv1 [T-] UUID v1 (timestamp + MAC address) [INFO] [stdout] uuidv3 [--] UUID v3 (MD5 namespace hash) [INFO] [stdout] uuidv4 [--] UUID v4 (random) [INFO] [stdout] uuidv5 [--] UUID v5 (SHA-1 namespace hash) [INFO] [stdout] uuidv6 [TS] UUID v6 (reordered timestamp) [INFO] [stdout] uuidv7 [TS] UUID v7 (Unix timestamp + random) [INFO] [stdout] uuid-nil [--] Nil UUID (all zeros) [INFO] [stdout] uuid-max [--] Max UUID (all ones) [INFO] [stdout] [INFO] [stdout] Modern Sortable IDs: [INFO] [stdout] ulid [TS] ULID (Universally Unique Lexicographically Sortable Identifier) [INFO] [stdout] snowflake [TS] Snowflake ID (Twitter-style distributed ID) [INFO] [stdout] [INFO] [stdout] Sortable IDs: [INFO] [stdout] ksuid [TS] KSUID (K-Sortable Unique Identifier) [INFO] [stdout] xid [TS] Xid (globally unique, sortable ID) [INFO] [stdout] tsid [TS] TSID (time-sorted unique identifier) [INFO] [stdout] typeid [TS] TypeID (type-prefixed, sortable ID) [INFO] [stdout] [INFO] [stdout] Collision-Resistant IDs: [INFO] [stdout] cuid [T-] CUID (collision-resistant unique identifier) [INFO] [stdout] cuid2 [--] CUID2 (secure collision-resistant ID) [INFO] [stdout] [INFO] [stdout] Database IDs: [INFO] [stdout] objectid [T-] MongoDB ObjectId [INFO] [stdout] [INFO] [stdout] Compact IDs: [INFO] [stdout] nanoid [--] NanoID (compact URL-friendly unique ID) [INFO] [stdout] [INFO] [stdout] Use 'idt info ' for detailed information. [INFO] [stdout] [{"name":"uuid","description":"UUID (any version)","has_timestamp":false,"is_sortable":false,"bit_length":128},{"name":"uuidv1","description":"UUID v1 (timestamp + MAC address)","has_timestamp":true,"is_sortable":false,"bit_length":128},{"name":"uuidv3","description":"UUID v3 (MD5 namespace hash)","has_timestamp":false,"is_sortable":false,"bit_length":128},{"name":"uuidv4","description":"UUID v4 (random)","has_timestamp":false,"is_sortable":false,"bit_length":128},{"name":"uuidv5","description":"UUID v5 (SHA-1 namespace hash)","has_timestamp":false,"is_sortable":false,"bit_length":128},{"name":"uuidv6","description":"UUID v6 (reordered timestamp)","has_timestamp":true,"is_sortable":true,"bit_length":128},{"name":"uuidv7","description":"UUID v7 (Unix timestamp + random)","has_timestamp":true,"is_sortable":true,"bit_length":128},{"name":"uuid-nil","description":"Nil UUID (all zeros)","has_timestamp":false,"is_sortable":false,"bit_length":128},{"name":"uuid-max","description":"Max UUID (all ones)","has_timestamp":false,"is_sortable":false,"bit_length":128},{"name":"ulid","description":"ULID (Universally Unique Lexicographically Sortable Identifier)","has_timestamp":true,"is_sortable":true,"bit_length":128},{"name":"nanoid","description":"NanoID (compact URL-friendly unique ID)","has_timestamp":false,"is_sortable":false,"bit_length":126},{"name":"ksuid","description":"KSUID (K-Sortable Unique Identifier)","has_timestamp":true,"is_sortable":true,"bit_length":160},{"name":"snowflake","description":"Snowflake ID (Twitter-style distributed ID)","has_timestamp":true,"is_sortable":true,"bit_length":64},{"name":"objectid","description":"MongoDB ObjectId","has_timestamp":true,"is_sortable":false,"bit_length":96},{"name":"typeid","description":"TypeID (type-prefixed, sortable ID)","has_timestamp":true,"is_sortable":true,"bit_length":128},{"name":"xid","description":"Xid (globally unique, sortable ID)","has_timestamp":true,"is_sortable":true,"bit_length":96},{"name":"cuid","description":"CUID (collision-resistant unique identifier)","has_timestamp":true,"is_sortable":false,"bit_length":128},{"name":"cuid2","description":"CUID2 (secure collision-resistant ID)","has_timestamp":false,"is_sortable":false,"bit_length":128},{"name":"tsid","description":"TSID (time-sorted unique identifier)","has_timestamp":true,"is_sortable":true,"bit_length":64},{"name":"ean13","description":"EAN-13 (International Article Number)","has_timestamp":false,"is_sortable":false,"bit_length":0},{"name":"isbn13","description":"ISBN-13 (International Standard Book Number)","has_timestamp":false,"is_sortable":false,"bit_length":0},{"name":"isbn10","description":"ISBN-10 (International Standard Book Number, legacy)","has_timestamp":false,"is_sortable":false,"bit_length":0},{"name":"isin","description":"ISIN (International Securities Identification Number)","has_timestamp":false,"is_sortable":false,"bit_length":0},{"name":"ean8","description":"EAN-8 (8-digit barcode for small items)","has_timestamp":false,"is_sortable":false,"bit_length":0},{"name":"upca","description":"UPC-A (Universal Product Code)","has_timestamp":false,"is_sortable":false,"bit_length":0},{"name":"issn","description":"ISSN (International Standard Serial Number)","has_timestamp":false,"is_sortable":false,"bit_length":0},{"name":"ismn","description":"ISMN (International Standard Music Number)","has_timestamp":false,"is_sortable":false,"bit_length":0},{"name":"isni","description":"ISNI (International Standard Name Identifier)","has_timestamp":false,"is_sortable":false,"bit_length":0},{"name":"gtin14","description":"GTIN-14 (Global Trade Item Number)","has_timestamp":false,"is_sortable":false,"bit_length":0},{"name":"asin","description":"ASIN (Amazon Standard Identification Number)","has_timestamp":false,"is_sortable":false,"bit_length":0}] [INFO] [stdout] NANOID [INFO] [stdout] ============================================================ [INFO] [stdout] [INFO] [stdout] NanoID (compact URL-friendly unique ID) [INFO] [stdout] [INFO] [stdout] Has Timestamp: No [INFO] [stdout] Sortable: No [INFO] [stdout] Bit Length: 126 bits [INFO] [stdout] [INFO] [stdout] Example: xtkJjb0JajUZA1E_Et5Ct [INFO] [stdout] [INFO] [stdout] Specification: https://github.com/ai/nanoid [INFO] [stdout] [INFO] [stdout] Notes : [INFO] [stdout] - Customizable alphabet and length [INFO] [stdout] - URL-safe by default [INFO] [stdout] - No timestamp component [INFO] [stdout] KSUID [INFO] [stdout] ============================================================ [INFO] [stdout] [INFO] [stdout] KSUID (K-Sortable Unique Identifier) [INFO] [stdout] [INFO] [stdout] ULID [INFO] [stdout] ============================================================ [INFO] [stdout] [INFO] [stdout] ULID (Universally Unique Lexicographically Sortable Identifier) [INFO] [stdout] [INFO] [stdout] Has Timestamp: Yes [INFO] [stdout] Sortable: Yes [INFO] [stdout] Bit Length: 128 bits [INFO] [stdout] [INFO] [stdout] Example: 01KNV8324RFQ9X6635WA988CQC [INFO] [stdout] [INFO] [stdout] Specification: https://github.com/ulid/spec [INFO] [stdout] [INFO] [stdout] Notes : [INFO] [stdout] - Case-insensitive (Crockford Base32) [INFO] [stdout] - Monotonic within same millisecond [INFO] [stdout] - Compatible with UUID (128-bit) [INFO] [stdout] UUIDV4 [INFO] [stdout] ============================================================ [INFO] [stdout] [INFO] [stdout] UUID v4 (random) [INFO] [stdout] [INFO] [stdout] Has Timestamp: No [INFO] [stdout] Sortable: No [INFO] [stdout] Bit Length: 128 bits [INFO] [stdout] [INFO] [stdout] Example: b3eef90e-2249-403f-ae88-18d26c19ab5c [INFO] [stdout] [INFO] [stdout] Specification: https://datatracker.ietf.org/doc/html/rfc4122 [INFO] [stdout] [INFO] [stdout] Notes : [INFO] [stdout] - Most commonly used UUID version [INFO] [stdout] - 122 bits of randomness [INFO] [stdout] - Collision probability extremely low [INFO] [stdout] test cli::commands::generate::tests::test_snowflake_machine_id_rejected ... ok [INFO] [stdout] UUIDV4 [INFO] [stdout] UUIDV7 [INFO] [stdout] ============================================================ [INFO] [stdout] [INFO] [stdout] UUID v7 (Unix timestamp + random) [INFO] [stdout] [INFO] [stdout] Has Timestamp: Yes [INFO] [stdout] Sortable: Yes [INFO] [stdout] Bit Length: 128 bits [INFO] [stdout] [INFO] [stdout] Example: 019d7681-8898-75a2-b371-23dc75744974 [INFO] [stdout] [INFO] [stdout] Specification: https://datatracker.ietf.org/doc/html/rfc9562 [INFO] [stdout] [INFO] [stdout] Notes : [INFO] [stdout] - Recommended for new applications needing sortable UUIDs [INFO] [stdout] - Unix timestamp in milliseconds [INFO] [stdout] - Compatible with UUID infrastructure [INFO] [stdout] ============================================================ [INFO] [stdout] [INFO] [stdout] UUID v4 (random) [INFO] [stdout] [INFO] [stdout] Has Timestamp: No [INFO] [stdout] Sortable: No [INFO] [stdout] Bit Length: 128 bits [INFO] [stdout] [INFO] [stdout] Has Timestamp: Yes [INFO] [stdout] Sortable: Yes [INFO] [stdout] Bit Length: 160 bits [INFO] [stdout] [INFO] [stdout] Example: 3C9tceNSCy68fd7U6sCICqTkK0R [INFO] [stdout] [INFO] [stdout] Specification: https://github.com/segmentio/ksuid [INFO] [stdout] [INFO] [stdout] Notes : [INFO] [stdout] - K-Sortable: lexicographic order matches time order [INFO] [stdout] - 160-bit: 32-bit timestamp + 128-bit random payload [INFO] [stdout] - Custom epoch: 2014-05-13T16:53:20Z [INFO] [stdout] OBJECTID [INFO] [stdout] ============================================================ [INFO] [stdout] [INFO] [stdout] MongoDB ObjectId [INFO] [stdout] [INFO] [stdout] Has Timestamp: Yes [INFO] [stdout] Sortable: No [INFO] [stdout] Bit Length: 96 bits [INFO] [stdout] [INFO] [stdout] Example: 69d8b49d08577ff6e4f95630 [INFO] [stdout] [INFO] [stdout] Specification: https://www.mongodb.com/docs/manual/reference/method/objectid/ [INFO] [stdout] [INFO] [stdout] Notes : [INFO] [stdout] - Used natively by MongoDB [INFO] [stdout] - 96-bit: 4-byte timestamp + 5-byte random + 3-byte counter [INFO] [stdout] - Timestamp has second-level precision [INFO] [stdout] TYPEID [INFO] [stdout] ============================================================ [INFO] [stdout] [INFO] [stdout] TypeID (type-prefixed, sortable ID) [INFO] [stdout] [INFO] [stdout] Has Timestamp: Yes [INFO] [stdout] Sortable: Yes [INFO] [stdout] Bit Length: 128 bits [INFO] [stdout] [INFO] [stdout] Example: 01knv8324rephb6w93x47rmjw7 [INFO] [stdout] [INFO] [stdout] Specification: https://github.com/jetify-com/typeid [INFO] [stdout] [INFO] [stdout] Notes : [INFO] [stdout] - Type-safe: prefix encodes the entity type [INFO] [stdout] - Based on UUIDv7 (timestamp-sortable) [INFO] [stdout] - Use --prefix flag to set type prefix [INFO] [stdout] XID [INFO] [stdout] ============================================================ [INFO] [stdout] [INFO] [stdout] Xid (globally unique, sortable ID) [INFO] [stdout] [INFO] [stdout] Has Timestamp: Yes [INFO] [stdout] Sortable: Yes [INFO] [stdout] Bit Length: 96 bits [INFO] [stdout] [INFO] [stdout] Example: 0qeomieruuvr007l0shh [INFO] [stdout] [INFO] [stdout] Specification: https://github.com/rs/xid [INFO] [stdout] [INFO] [stdout] Notes : [INFO] [stdout] - Compact: 20-character base32hex encoding [INFO] [stdout] - 96-bit: 4-byte timestamp + 3-byte machine + 2-byte PID + 3-byte counter [INFO] [stdout] - Globally unique without coordination [INFO] [stdout] CUID [INFO] [stdout] ============================================================ [INFO] [stdout] [INFO] [stdout] CUID (collision-resistant unique identifier) [INFO] [stdout] [INFO] [stdout] Has Timestamp: Yes [INFO] [stdout] Sortable: No [INFO] [stdout] Bit Length: 128 bits [INFO] [stdout] [INFO] [stdout] Example: cmnsn8p7d0001z6an7bwt7y8w [INFO] [stdout] [INFO] [stdout] Specification: https://github.com/paralleldrive/cuid [INFO] [stdout] [INFO] [stdout] Notes : [INFO] [stdout] - CUID v1 is deprecated; consider CUID2 [INFO] [stdout] - 25 characters, starts with 'c' [INFO] [stdout] - Contains timestamp, counter, fingerprint, and random data [INFO] [stdout] test cli::commands::generate::tests::test_snowflake_with_datacenter_id ... ok [INFO] [stdout] test cli::commands::info::tests::test_show_detail_json ... ok [INFO] [stdout] CUID2 [INFO] [stdout] ============================================================ [INFO] [stdout] [INFO] [stdout] CUID2 (secure collision-resistant ID) [INFO] [stdout] [INFO] [stdout] Has Timestamp: No [INFO] [stdout] Sortable: No [INFO] [stdout] Bit Length: 128 bits [INFO] [stdout] [INFO] [stdout] Example: c2rfhsak8e3x60q8yy1xldg8 [INFO] [stdout] [INFO] [stdout] Specification: https://github.com/paralleldrive/cuid2 [INFO] [stdout] [INFO] [stdout] Notes : [INFO] [stdout] - Successor to CUID v1 with better security [INFO] [stdout] - Opaque: no extractable components [INFO] [stdout] - SHA-256 based with multiple entropy sources [INFO] [stdout] TSID [INFO] [stdout] ============================================================ [INFO] [stdout] [INFO] [stdout] TSID (time-sorted unique identifier) [INFO] [stdout] [INFO] [stdout] Has Timestamp: Yes [INFO] [stdout] test cli::commands::generate::tests::test_snowflake_with_machine_id ... Sortable: Yes [INFO] [stdout] Bit Length: 64 bits [INFO] [stdout] ok [INFO] [stdout] [INFO] [stdout] Example: 6EQD0C8K6Y1BN [INFO] [stdout] [INFO] [stdout] Specification: https://github.com/f4b6a3/tsid-creator [INFO] [stdout] [INFO] [stdout] Notes : [INFO] [stdout] - 64-bit: fits in a database bigint column [INFO] [stdout] - 42-bit timestamp (milliseconds) + 22-bit random [INFO] [stdout] - Crockford Base32 encoded (13 characters) [INFO] [stdout] test cli::commands::info::tests::test_get_notes ... ok [INFO] [stdout] test cli::commands::info::tests::test_show_detail_snowflake ... ok [INFO] [stdout] test cli::commands::info::tests::test_list_all_types_yaml ... ok [INFO] [stdout] { [INFO] [stdout] "id_type": "uuidv4", [INFO] [stdout] "input": "550e8400-e29b-41d4-a716-446655440000", [INFO] [stdout] "canonical": "550e8400-e29b-41d4-a716-446655440000", [INFO] [stdout] "valid": true, [INFO] [stdout] "version": "4", [INFO] [stdout] "variant": "RFC4122", [INFO] [stdout] "random_bits": 122, [INFO] [stdout] "components": { [INFO] [stdout] "variant": "RFC4122", [INFO] [stdout] "version": 4 [INFO] [stdout] }, [INFO] [stdout] "structure": [ [INFO] [stdout] { [INFO] [stdout] "name": "random_a", [INFO] [stdout] "size": 48, [INFO] [stdout] "unit": "bits", [INFO] [stdout] "value": "550e8400e29b", [INFO] [stdout] "description": "Random bits" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "name": "ver", [INFO] [stdout] "size": 4, [INFO] [stdout] "unit": "bits", [INFO] [stdout] "value": "4", [INFO] [stdout] "description": "UUID version" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "name": "random_b", [INFO] [stdout] "size": 12, [INFO] [stdout] "unit": "bits", [INFO] [stdout] "value": "1d4", [INFO] [stdout] "description": "Random bits" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "name": "var", [INFO] [stdout] "size": 2, [INFO] [stdout] "unit": "bits", [INFO] [stdout] "value": "RFC4122", [INFO] [stdout] "description": "UUID variant" [INFO] [stdout] }, [INFO] [stdout] { [INFO] [stdout] "name": "random_c", [INFO] [stdout] "size": 62, [INFO] [stdout] "unit": "bits", [INFO] [stdout] "value": "a716446655440000", [INFO] [stdout] "description": "Random bits" [INFO] [stdout] } [INFO] [stdout] ], [INFO] [stdout] "encodings": { [INFO] [stdout] "hex": "550e8400e29b41d4a716446655440000", [INFO] [stdout] "base32": "KUHIIAHCTNA5JJYWIRTFKRAAAA", [INFO] [stdout] "base58": "BWBeN28Vb7cMEx7Ym8AUzs", [INFO] [stdout] "base64": "VQ6EAOKbQdSnFkRmVUQAAA==", [INFO] [stdout] "int": "113059749145936325402354257176981405696" [INFO] [stdout] } [INFO] [stdout] } [INFO] [stdout] test cli::commands::info::tests::test_list_all_types_with_color ... ok [INFO] [stdout] Example: 73bd1547-2726-4fb8-90a4-fa9714c25472 [INFO] [stdout] [INFO] [stdout] Specification: https://datatracker.ietf.org/doc/html/rfc4122 [INFO] [stdout] [INFO] [stdout] Notes : [INFO] [stdout] - Most commonly used UUID version [INFO] [stdout] - 122 bits of randomness [INFO] [stdout] - Collision probability extremely low [INFO] [stdout] {"id_type":"uuidv4","input":"550e8400-e29b-41d4-a716-446655440000","canonical":"550e8400-e29b-41d4-a716-446655440000","valid":true,"version":"4","variant":"RFC4122","random_bits":122,"components":{"variant":"RFC4122","version":4},"structure":[{"name":"random_a","size":48,"unit":"bits","value":"550e8400e29b","description":"Random bits"},{"name":"ver","size":4,"unit":"bits","value":"4","description":"UUID version"},{"name":"random_b","size":12,"unit":"bits","value":"1d4","description":"Random bits"},{"name":"var","size":2,"unit":"bits","value":"RFC4122","description":"UUID variant"},{"name":"random_c","size":62,"unit":"bits","value":"a716446655440000","description":"Random bits"}],"encodings":{"hex":"550e8400e29b41d4a716446655440000","base32":"KUHIIAHCTNA5JJYWIRTFKRAAAA","base58":"BWBeN28Vb7cMEx7Ym8AUzs","base64":"VQ6EAOKbQdSnFkRmVUQAAA==","int":"113059749145936325402354257176981405696"}} [INFO] [stdout] test cli::commands::info::tests::test_list_all_types_json ... ok [INFO] [stdout] test cli::commands::info::tests::test_show_detail_ulid ... ok [INFO] [stdout] test cli::commands::info::tests::test_show_detail_uuid_v4 ... ok [INFO] [stdout] test cli::commands::info::tests::test_show_detail_uuid_v7 ... ok [INFO] [stdout] test cli::commands::inspect::tests::test_inspect_invalid_id_non_quiet ... ok [INFO] [stdout] UUIDV4 [INFO] [stdout] 550e8400-e29b-41d4-a716-446655440000 [INFO] [stdout] [INFO] [stdout] Version 4 [INFO] [stdout] Variant RFC4122 [INFO] [stdout] Random 122 bits [INFO] [stdout] [INFO] [stdout] Structure [INFO] [stdout] random_a 48 bits 550e8400e29b Random bits [INFO] [stdout] ver 4 bits 4 UUID version [INFO] [stdout] random_b 12 bits 1d4 Random bits [INFO] [stdout] var 2 bits RFC4122 UUID variant [INFO] [stdout] random_c 62 bits a716446655440000 Random bits [INFO] [stdout] [INFO] [stdout] Hex 550e8400e29b41d4a716446655440000 [INFO] [stdout] Base64 VQ6EAOKbQdSnFkRmVUQAAA== [INFO] [stdout] Int 113059749145936325402354257176981405696 [INFO] [stdout] UUIDV4 [INFO] [stdout] 550e8400-e29b-41d4-a716-446655440000 [INFO] [stdout] [INFO] [stdout] Version 4 [INFO] [stdout] Variant RFC4122 [INFO] [stdout] Random 122 bits [INFO] [stdout] [INFO] [stdout] Structure [INFO] [stdout] random_a 48 bits 550e8400e29b Random bits [INFO] [stdout] ver 4 bits 4 UUID version [INFO] [stdout] random_b 12 bits 1d4 Random bits [INFO] [stdout] var 2 bits RFC4122 UUID variant [INFO] [stdout] random_c 62 bits a716446655440000 Random bits [INFO] [stdout] [INFO] [stdout] Hex 550e8400e29b41d4a716446655440000 [INFO] [stdout] Base64 VQ6EAOKbQdSnFkRmVUQAAA== [INFO] [stdout] Int 113059749145936325402354257176981405696 [INFO] [stdout] id_type: uuidv4 [INFO] [stdout] input: 550e8400-e29b-41d4-a716-446655440000 [INFO] [stdout] canonical: 550e8400-e29b-41d4-a716-446655440000 [INFO] [stdout] valid: true [INFO] [stdout] version: '4' [INFO] [stdout] variant: RFC4122 [INFO] [stdout] random_bits: 122 [INFO] [stdout] components: [INFO] [stdout] variant: RFC4122 [INFO] [stdout] version: 4 [INFO] [stdout] structure: [INFO] [stdout] - name: random_a [INFO] [stdout] size: 48 [INFO] [stdout] unit: bits [INFO] [stdout] value: 550e8400e29b [INFO] [stdout] description: Random bits [INFO] [stdout] - name: ver [INFO] [stdout] size: 4 [INFO] [stdout] unit: bits [INFO] [stdout] value: '4' [INFO] [stdout] description: UUID version [INFO] [stdout] - name: random_b [INFO] [stdout] size: 12 [INFO] [stdout] unit: bits [INFO] [stdout] value: 1d4 [INFO] [stdout] description: Random bits [INFO] [stdout] - name: var [INFO] [stdout] size: 2 [INFO] [stdout] unit: bits [INFO] [stdout] value: RFC4122 [INFO] [stdout] description: UUID variant [INFO] [stdout] - name: random_c [INFO] [stdout] size: 62 [INFO] [stdout] unit: bits [INFO] [stdout] value: a716446655440000 [INFO] [stdout] description: Random bits [INFO] [stdout] encodings: [INFO] [stdout] hex: 550e8400e29b41d4a716446655440000 [INFO] [stdout] base32: KUHIIAHCTNA5JJYWIRTFKRAAAA [INFO] [stdout] base58: BWBeN28Vb7cMEx7Ym8AUzs [INFO] [stdout] base64: VQ6EAOKbQdSnFkRmVUQAAA== [INFO] [stdout] int: '113059749145936325402354257176981405696' [INFO] [stdout] [INFO] [stdout] UUIDV4 [INFO] [stdout] 550e8400-e29b-41d4-a716-446655440000 [INFO] [stdout] [INFO] [stdout] Version 4 [INFO] [stdout] Variant RFC4122 [INFO] [stdout] Random 122 bits [INFO] [stdout] [INFO] [stdout] Structure [INFO] [stdout] random_a 48 bits 550e8400e29b Random bits [INFO] [stdout] ver 4 bits 4 UUID version [INFO] [stdout] random_b 12 bits 1d4 Random bits [INFO] [stdout] var 2 bits RFC4122 UUID variant [INFO] [stdout] random_c 62 bits a716446655440000 Random bits [INFO] [stdout] [INFO] [stdout] Hex 550e8400e29b41d4a716446655440000 [INFO] [stdout] Base64 VQ6EAOKbQdSnFkRmVUQAAA== [INFO] [stdout] Int 113059749145936325402354257176981405696 [INFO] [stdout] [INFO] [stdout] ULID [INFO] [stdout] 01ARZ3NDEKTSV4RRFFQ69G5FAV [INFO] [stdout] [INFO] [stdout] Time (UTC) 2016-07-30T23:54:10.259Z [INFO] [stdout] Local Time (+00:00) 2016-07-30T23:54:10.259+00:00 [INFO] [stdout] Random 80 bits [INFO] [stdout] [INFO] [stdout] Structure [INFO] [stdout] Timestamp 48 bits 1469922850259 Unix timestamp in milliseconds [INFO] [stdout] Random 80 bits d6764c61efb99302bd5b Cryptographically random bytes [INFO] [stdout] [INFO] [stdout] Hex 01563e3ab5d3d6764c61efb99302bd5b [INFO] [stdout] Base64 AVY+OrXT1nZMYe+5kwK9Ww== [INFO] [stdout] Int 1777027686520646174104517696511196507 [INFO] [stdout] SNOWFLAKE [INFO] [stdout] 1234567890123456789 [INFO] [stdout] [INFO] [stdout] Time (UTC) 2020-03-02T19:54:56.824Z [INFO] [stdout] Local Time (+00:00) 2020-03-02T19:54:56.824+00:00 [INFO] [stdout] Variant Twitter [INFO] [stdout] [INFO] [stdout] Structure [INFO] [stdout] timestamp 41 bits 1583178896824 Milliseconds since epoch [INFO] [stdout] datacenter_id 5 bits 20 Datacenter identifier [INFO] [stdout] machine_id 5 bits 24 Machine identifier [INFO] [stdout] sequence 12 bits 277 Sequence number within same millisecond [INFO] [stdout] [INFO] [stdout] Hex 112210f47de98115 [INFO] [stdout] Base64 ESIQ9H3pgRU= [INFO] [stdout] Int 1234567890123456789 [INFO] [stdout] test cli::commands::info::tests::test_show_detail_various_types ... ok [INFO] [stdout] test cli::commands::inspect::tests::test_inspect_json_pretty ... ok [INFO] [stdout] test cli::commands::info::tests::test_show_detail_with_color ... ok [INFO] [stdout] test cli::commands::inspect::tests::test_empty_input ... ok [INFO] [stdout] test cli::commands::inspect::tests::test_inspect_json_output ... ok [INFO] [stdout] test cli::commands::inspect::tests::test_inspect_quiet_mode_invalid ... ok [INFO] [stdout] test cli::commands::inspect::tests::test_inspect_with_type_hint ... ok [INFO] [stdout] test cli::commands::inspect::tests::test_inspect_uuid_v4 ... ok [INFO] [stdout] test cli::commands::inspect::tests::test_inspect_yaml_output ... ok [INFO] [stdout] test cli::commands::sort::tests::test_collect_ids_from_args ... ok [INFO] [stdout] test cli::commands::inspect::tests::test_inspect_multiple_ids ... ok [INFO] [stdout] test cli::commands::sort::tests::test_empty_input ... ok [INFO] [stdout] test cli::commands::inspect::tests::test_inspect_with_snowflake_preset ... ok [INFO] [stdout] 01BX5ZZKBKACTAV9WEVGEMMVRY [INFO] [stdout] 01ARZ3NDEKTSV4RRFFQ69G5FAV [INFO] [stdout] test cli::commands::sort::tests::test_output_plain_without_time ... ok [INFO] [stdout] test cli::commands::sort::tests::test_sort_reverse ... ok [INFO] [stdout] {"count":1,"sorted":[{"id":"01ARZ3NDEKTSV4RRFFQ69G5FAV","id_type":"ulid","timestamp_iso":"2016-07-30T23:54:10.259Z","timestamp_ms":1469922850259}],"unsortable":[]} [INFO] [stdout] { [INFO] [stdout] "count": 2, [INFO] [stdout] "sorted": [ [INFO] [stdout] { [INFO] [stdout] "id": "01ARZ3NDEKTSV4RRFFQ69G5FAV", [INFO] [stdout] "id_type": "ulid", [INFO] [stdout] "timestamp_iso": "2016-07-30T23:54:10.259Z", [INFO] [stdout] "timestamp_ms": 1469922850259 [INFO] [stdout] } [INFO] [stdout] ], [INFO] [stdout] "unsortable": [ [INFO] [stdout] { [INFO] [stdout] "id": "not-a-real-id", [INFO] [stdout] "id_type": "unknown" [INFO] [stdout] } [INFO] [stdout] ] [INFO] [stdout] } [INFO] [stdout] 2016-07-30T23:54:10.259Z 01ARZ3NDEKTSV4RRFFQ69G5FAV [INFO] [stdout] test cli::commands::sort::tests::test_unsortable_skip_policy ... ok [INFO] [stdout] not-a-real-id-format-xyz [INFO] [stdout] test cli::commands::sort::tests::test_sort_json_with_unsortable_end ... ok [INFO] [stdout] test cli::commands::sort::tests::test_sort_json_output ... ok [INFO] [stdout] test cli::commands::sort::tests::test_sort_show_time ... ok [INFO] [stdout] test cli::commands::sort::tests::test_unsortable_error_policy ... ok [INFO] [stdout] test cli::commands::sort::tests::test_unsortable_end_policy ... ok [INFO] [stdout] 550E8400-E29B-41D4-A716-446655440000: invalid (uuidv4) [INFO] [stdout] Error: Non-canonical form [INFO] [stdout] Hint: Canonical form: 550e8400-e29b-41d4-a716-446655440000 [INFO] [stdout] test cli::commands::validate::tests::test_strict_mode_non_canonical ... ok [INFO] [stdout] 550e8400-e29b-41d4-a716-446655440000: valid (uuidv4) [INFO] [stdout] 01ARZ3NDEKTSV4RRFFQ69G5FAV [INFO] [stdout] [{"id_type":"uuidv4","input":"550e8400-e29b-41d4-a716-446655440000","canonical":"550e8400-e29b-41d4-a716-446655440000","valid":true,"version":"4","variant":"RFC4122","random_bits":122,"components":{"variant":"RFC4122","version":4},"structure":[{"name":"random_a","size":48,"unit":"bits","value":"550e8400e29b","description":"Random bits"},{"name":"ver","size":4,"unit":"bits","value":"4","description":"UUID version"},{"name":"random_b","size":12,"unit":"bits","value":"1d4","description":"Random bits"},{"name":"var","size":2,"unit":"bits","value":"RFC4122","description":"UUID variant"},{"name":"random_c","size":62,"unit":"bits","value":"a716446655440000","description":"Random bits"}],"encodings":{"hex":"550e8400e29b41d4a716446655440000","base32":"KUHIIAHCTNA5JJYWIRTFKRAAAA","base58":"BWBeN28Vb7cMEx7Ym8AUzs","base64":"VQ6EAOKbQdSnFkRmVUQAAA==","int":"113059749145936325402354257176981405696"}},{"id_type":"ulid","input":"01ARZ3NDEKTSV4RRFFQ69G5FAV","canonical":"01ARZ3NDEKTSV4RRFFQ69G5FAV","valid":true,"timestamp":{"millis":1469922850259},"timestamp_iso":"2016-07-30T23:54:10.259Z","timestamp_local_iso":"2016-07-30T23:54:10.259+00:00","random_bits":80,"components":{"random_hex":"d6764c61efb99302bd5b","timestamp_ms":1469922850259},"structure":[{"name":"Timestamp","size":48,"unit":"bits","value":"1469922850259","description":"Unix timestamp in milliseconds"},{"name":"Random","size":80,"unit":"bits","value":"d6764c61efb99302bd5b","description":"Cryptographically random bytes"}],"encodings":{"hex":"01563e3ab5d3d6764c61efb99302bd5b","base32":"AFLD4OVV2PLHMTDB564ZGAV5LM","base58":"AaLyDYFxmKZxXbNo18znE","base64":"AVY+OrXT1nZMYe+5kwK9Ww==","int":"1777027686520646174104517696511196507"}}] [INFO] [stdout] 01ARZ3NDEKTSV4RRFFQ69G5FAV [INFO] [stdout] 01BX5ZZKBKACTAV9WEVGEMMVRY [INFO] [stdout] ULID [INFO] [stdout] 01ARZ3NDEKTSV4RRFFQ69G5FAV [INFO] [stdout] [INFO] [stdout] Time (UTC) 2016-07-30T23:54:10.259Z [INFO] [stdout] Local Time (+00:00) 2016-07-30T23:54:10.259+00:00 [INFO] [stdout] Random 80 bits [INFO] [stdout] not-a-valid-id: invalid [INFO] [stdout] Error: Detection failed: could not determine ID type [INFO] [stdout] [INFO] [stdout] Structure [INFO] [stdout] Timestamp 48 bits 1469922850259 Unix timestamp in milliseconds [INFO] [stdout] Random 80 bits d6764c61efb99302bd5b Cryptographically random bytes [INFO] [stdout] [INFO] [stdout] Hex 01563e3ab5d3d6764c61efb99302bd5b [INFO] [stdout] Base64 AVY+OrXT1nZMYe+5kwK9Ww== [INFO] [stdout] Int 1777027686520646174104517696511196507 [INFO] [stdout] 01ARZ3NDEKTSV4RRFFQ69G5FAV: valid (ulid) [INFO] [stdout] 550e8400-e29b-41d4-a716-446655440000: valid (uuidv4) [INFO] [stdout] [{"input":"550e8400-e29b-41d4-a716-446655440000","valid":true,"id_type":"uuidv4"},{"input":"01ARZ3NDEKTSV4RRFFQ69G5FAV","valid":true,"id_type":"ulid"}] [INFO] [stdout] test cli::commands::validate::tests::test_with_type_hint ... ok [INFO] [stdout] test cli::commands::sort::tests::test_output_plain_unsortable_with_time ... ok [INFO] [stdout] test cli::commands::sort::tests::test_output_plain_with_time ... ok [INFO] [stdout] test cli::commands::sort::tests::test_single_ulid ... ok [INFO] [stdout] test cli::commands::inspect::tests::test_inspect_multiple_ids_json ... ok [INFO] [stdout] test cli::commands::sort::tests::test_sort_multiple_ulids ... ok [INFO] [stdout] test cli::commands::validate::tests::test_invalid_id ... ok [INFO] [stdout] test cli::commands::inspect::tests::test_inspect_quiet_mode ... ok [INFO] [stdout] test cli::commands::inspect::tests::test_inspect_ulid ... ok [INFO] [stdout] test cli::commands::validate::tests::test_quiet_mode_valid ... ok [INFO] [stdout] test cli::commands::validate::tests::test_valid_ulid ... ok [INFO] [stdout] test cli::commands::validate::tests::test_valid_uuid ... ok [INFO] [stdout] test cli::commands::validate::tests::test_validate_id_hint_uuid_without_dashes ... ok [INFO] [stdout] test cli::commands::validate::tests::test_multiple_ids ... ok [INFO] [stdout] test cli::output::tests::test_json_compact ... ok [INFO] [stdout] test cli::output::tests::test_json_pretty ... ok [INFO] [stdout] test cli::output::tests::test_toml ... ok [INFO] [stdout] test core::detection::tests::test_detect_cuid2 ... ok [INFO] [stdout] test core::detection::tests::test_detect_ean13 ... ok [INFO] [stdout] test core::detection::tests::test_detect_asin ... ok [INFO] [stdout] test core::detection::tests::test_detect_failure ... ok [INFO] [stdout] test core::detection::tests::test_detect_issn ... ok [INFO] [stdout] test core::detection::tests::test_detect_nanoid ... ok [INFO] [stdout] test core::detection::tests::test_detect_isni ... ok [INFO] [stdout] test core::detection::tests::test_detect_gtin14 ... ok [INFO] [stdout] test core::detection::tests::test_detect_objectid ... ok [INFO] [stdout] test core::detection::tests::test_detect_isbn10 ... ok [INFO] [stdout] test core::detection::tests::test_detect_snowflake ... ok [INFO] [stdout] test core::detection::tests::test_detect_isbn13 ... ok [INFO] [stdout] test core::detection::tests::test_detect_isin ... ok [INFO] [stdout] test core::detection::tests::test_detect_typeid ... ok [INFO] [stdout] test core::detection::tests::test_detect_ean8 ... ok [INFO] [stdout] test core::detection::tests::test_detect_ismn ... ok [INFO] [stdout] test core::detection::tests::test_detect_ulid ... ok [INFO] [stdout] test core::detection::tests::test_detect_upca ... ok [INFO] [stdout] test core::detection::tests::test_detect_uuid_dashless ... ok [INFO] [stdout] test core::detection::tests::test_detect_uuid_max ... ok [INFO] [stdout] test core::detection::tests::test_detect_uuidv7 ... ok [INFO] [stdout] test core::detection::tests::test_detect_xid ... ok [INFO] [stdout] test core::detection::tests::test_is_cuid_format ... ok [INFO] [stdout] test core::detection::tests::test_is_tsid_format ... ok [INFO] [stdout] test core::detection::tests::test_detect_uuid_unknown_version ... ok [INFO] [stdout] test core::encoding::tests::test_bytes_to_u128 ... ok [INFO] [stdout] test core::detection::tests::test_detect_uuid_nil ... ok [INFO] [stdout] test core::detection::tests::test_detect_uuidv1 ... ok [INFO] [stdout] test core::detection::tests::test_detect_uuid_unknown_variant ... ok [INFO] [stdout] test core::encoding::tests::test_decode_base58_invalid ... ok [INFO] [stdout] test core::detection::tests::test_detect_uuidv4 ... ok [INFO] [stdout] test core::encoding::tests::test_decode_base64_url_invalid ... ok [INFO] [stdout] test core::encoding::tests::test_decode_hex_invalid ... ok [INFO] [stdout] test core::encoding::tests::test_encode_bytes_spaced ... ok [INFO] [stdout] test core::encoding::tests::test_encode_bytes_all_formats ... ok [INFO] [stdout] test core::encoding::tests::test_encode_bits ... ok [INFO] [stdout] test core::encoding::tests::test_encode_decode_base32 ... ok [INFO] [stdout] test core::encoding::tests::test_encode_hex_upper ... ok [INFO] [stdout] test core::encoding::tests::test_encode_bytes_int_overflow ... ok [INFO] [stdout] test core::encoding::tests::test_encode_decode_base64 ... ok [INFO] [stdout] test core::encoding::tests::test_encoding_format_from_str ... ok [INFO] [stdout] test core::encoding::tests::test_decode_base32_invalid ... ok [INFO] [stdout] test core::encoding::tests::test_encode_decode_hex ... ok [INFO] [stdout] test core::id::tests::test_id_kind_generatable ... ok [INFO] [stdout] test core::id::tests::test_id_kind_bit_length ... ok [INFO] [stdout] test core::encoding::tests::test_encode_decode_base64_url ... ok [INFO] [stdout] test core::id::tests::test_id_kind_name ... ok [INFO] [stdout] test core::encoding::tests::test_encoding_format_display ... ok [INFO] [stdout] test core::id::tests::test_id_kind_all ... ok [INFO] [stdout] test core::id::tests::test_id_kind_description ... ok [INFO] [stdout] test core::id::tests::test_id_kind_display ... ok [INFO] [stdout] test core::id::tests::test_id_kind_has_timestamp ... ok [INFO] [stdout] test core::id::tests::test_timestamp_from_secs ... ok [INFO] [stdout] test core::id::tests::test_timestamp_new ... ok [INFO] [stdout] test core::id::tests::test_timestamp_to_datetime ... ok [INFO] [stdout] test core::id::tests::test_timestamp_local_timezone_abbr ... ok [INFO] [stdout] test core::id::tests::test_timestamp_to_local_iso8601 ... ok [INFO] [stdout] test core::id::tests::test_timestamp_to_iso8601 ... ok [INFO] [stdout] test core::id::tests::test_id_kind_is_sortable ... ok [INFO] [stdout] test ids::asin_id::tests::test_encode_all_formats ... ok [INFO] [stdout] test core::id::tests::test_validation_result_invalid ... ok [INFO] [stdout] test core::id::tests::test_validation_result_valid ... ok [INFO] [stdout] test ids::asin_id::tests::test_as_bytes ... ok [INFO] [stdout] test core::id::tests::test_validation_result_with_hint ... ok [INFO] [stdout] test ids::asin_id::tests::test_is_asin ... ok [INFO] [stdout] test ids::asin_id::tests::test_inspect_isbn_based ... ok [INFO] [stdout] test ids::asin_id::tests::test_kind ... ok [INFO] [stdout] test ids::asin_id::tests::test_parse_invalid_start ... ok [INFO] [stdout] test ids::asin_id::tests::test_parse_lowercase ... ok [INFO] [stdout] test ids::asin_id::tests::test_parse_valid ... ok [INFO] [stdout] test ids::asin_id::tests::test_validate ... ok [INFO] [stdout] test ids::cuid2_id::tests::test_bytes_to_base36 ... ok [INFO] [stdout] test ids::asin_id::tests::test_parse_wrong_length ... ok [INFO] [stdout] test ids::asin_id::tests::test_inspect ... ok [INFO] [stdout] test ids::cuid2_id::tests::test_canonical ... ok [INFO] [stdout] test ids::cuid2_id::tests::test_encode_formats ... ok [INFO] [stdout] test ids::asin_id::tests::test_parse_isbn_based ... ok [INFO] [stdout] test ids::asin_id::tests::test_parse_invalid_chars ... ok [INFO] [stdout] test ids::cuid2_id::tests::test_generate ... ok [INFO] [stdout] test ids::cuid2_id::tests::test_as_bytes ... ok [INFO] [stdout] test ids::cuid2_id::tests::test_parse_error_special_chars ... ok [INFO] [stdout] test ids::cuid2_id::tests::test_is_cuid2 ... ok [INFO] [stdout] test core::encoding::tests::test_encode_decode_base58 ... ok [INFO] [stdout] test ids::cuid2_id::tests::test_parse_error_uppercase ... ok [INFO] [stdout] test core::encoding::tests::test_decode_base64_invalid ... ok [INFO] [stdout] test ids::cuid2_id::tests::test_parse ... ok [INFO] [stdout] test ids::cuid2_id::tests::test_parse_error_empty ... ok [INFO] [stdout] test ids::cuid2_id::tests::test_parse_error_starts_with_digit ... ok [INFO] [stdout] test ids::cuid2_id::tests::test_inspect ... ok [INFO] [stdout] test ids::cuid2_id::tests::test_validate_default_length ... ok [INFO] [stdout] test ids::cuid2_id::tests::test_parse_trims_whitespace ... ok [INFO] [stdout] test ids::cuid_id::tests::test_as_bytes ... ok [INFO] [stdout] test ids::cuid_id::tests::test_canonical ... ok [INFO] [stdout] test ids::cuid2_id::tests::test_validate_non_standard_length ... ok [INFO] [stdout] test ids::cuid_id::tests::test_components ... ok [INFO] [stdout] test ids::cuid_id::tests::test_decode_base36 ... ok [INFO] [stdout] test ids::cuid_id::tests::test_encode_formats ... ok [INFO] [stdout] test ids::cuid_id::tests::test_generate ... ok [INFO] [stdout] test core::detection::tests::test_is_ksuid_format ... ok [INFO] [stdout] test cli::commands::validate::tests::test_empty_input ... ok [INFO] [stdout] test cli::output::tests::test_yaml ... ok [INFO] [stdout] test ids::cuid_id::tests::test_validate_hint ... ok [INFO] [stdout] test ids::ean13_id::tests::test_as_bytes ... ok [INFO] [stdout] test ids::ean13_id::tests::test_encode_all_formats ... ok [INFO] [stdout] test ids::ean13_id::tests::test_inspect ... ok [INFO] [stdout] {"input":"550e8400-e29b-41d4-a716-446655440000","valid":true,"id_type":"uuidv4"} [INFO] [stdout] test ids::ean13_id::tests::test_encode_canonical ... ok [INFO] [stdout] test ids::ean13_id::tests::test_kind ... ok [INFO] [stdout] test cli::commands::validate::tests::test_json_output ... ok [INFO] [stdout] test ids::ean13_id::tests::test_parse_invalid_check_digit ... ok [INFO] [stdout] test ids::ean13_id::tests::test_parse_valid ... ok [INFO] [stdout] test ids::ean13_id::tests::test_parse_valid_2 ... ok [INFO] [stdout] test ids::ean13_id::tests::test_parse_with_hyphens ... ok [INFO] [stdout] test ids::ean13_id::tests::test_parse_non_digit ... ok [INFO] [stdout] test ids::ean13_id::tests::test_parse_wrong_length ... ok [INFO] [stdout] test ids::ean13_id::tests::test_validate ... ok [INFO] [stdout] test ids::ean8_id::tests::test_as_bytes ... ok [INFO] [stdout] test ids::ean8_id::tests::test_encode_canonical ... ok [INFO] [stdout] test ids::ean8_id::tests::test_inspect ... ok [INFO] [stdout] test ids::ean8_id::tests::test_is_ean8 ... ok [INFO] [stdout] test ids::ean8_id::tests::test_encode_all_formats ... ok [INFO] [stdout] test ids::ean8_id::tests::test_kind ... ok [INFO] [stdout] test ids::ean8_id::tests::test_parse_invalid_check_digit ... ok [INFO] [stdout] test ids::ean8_id::tests::test_parse_non_digit ... ok [INFO] [stdout] test ids::ean8_id::tests::test_parse_valid ... ok [INFO] [stdout] test ids::ean8_id::tests::test_parse_valid_2 ... ok [INFO] [stdout] test ids::ean8_id::tests::test_parse_with_hyphens ... ok [INFO] [stdout] test ids::ean8_id::tests::test_parse_wrong_length ... ok [INFO] [stdout] test core::id::tests::test_id_kind_from_str ... ok [INFO] [stdout] test ids::ean8_id::tests::test_validate ... ok [INFO] [stdout] test ids::cuid_id::tests::test_is_cuid ... ok [INFO] [stdout] test ids::cuid_id::tests::test_pad_base36 ... ok [INFO] [stdout] test ids::gtin14_id::tests::test_as_bytes ... ok [INFO] [stdout] test ids::cuid_id::tests::test_parse ... ok [INFO] [stdout] test ids::cuid_id::tests::test_parse_error_invalid_chars ... ok [INFO] [stdout] test ids::cuid_id::tests::test_parse_error_not_starts_with_c ... ok [INFO] [stdout] test ids::gtin14_id::tests::test_encode_all_formats ... ok [INFO] [stdout] test ids::cuid_id::tests::test_parse_error_wrong_length ... ok [INFO] [stdout] test ids::gtin14_id::tests::test_inspect ... ok [INFO] [stdout] test ids::cuid_id::tests::test_parse_trims_whitespace ... ok [INFO] [stdout] test ids::ean13_id::tests::test_is_ean13 ... ok [INFO] [stdout] test ids::gtin14_id::tests::test_is_gtin14 ... ok [INFO] [stdout] test ids::gtin14_id::tests::test_kind ... ok [INFO] [stdout] test ids::gtin14_id::tests::test_packaging_indicator ... ok [INFO] [stdout] test ids::cuid_id::tests::test_inspect ... ok [INFO] [stdout] test ids::gtin14_id::tests::test_parse_invalid_check_digit ... ok [INFO] [stdout] test ids::gtin14_id::tests::test_parse_valid ... ok [INFO] [stdout] test ids::gtin14_id::tests::test_parse_with_spaces ... ok [INFO] [stdout] test ids::gtin14_id::tests::test_parse_wrong_length ... ok [INFO] [stdout] test ids::gtin14_id::tests::test_validate ... ok [INFO] [stdout] test ids::isbn10_id::tests::test_parse_invalid_check_digit ... ok [INFO] [stdout] test ids::isbn10_id::tests::test_parse_non_digit ... ok [INFO] [stdout] test ids::isbn10_id::tests::test_encode_all_formats ... ok [INFO] [stdout] test ids::isbn10_id::tests::test_parse_valid ... ok [INFO] [stdout] test ids::isbn10_id::tests::test_parse_with_hyphens ... ok [INFO] [stdout] test ids::isbn10_id::tests::test_parse_with_lowercase_x ... ok [INFO] [stdout] test ids::isbn10_id::tests::test_parse_with_x ... ok [INFO] [stdout] test ids::isbn10_id::tests::test_parse_wrong_length ... ok [INFO] [stdout] test ids::isbn10_id::tests::test_inspect ... ok [INFO] [stdout] test ids::isbn10_id::tests::test_is_isbn10 ... ok [INFO] [stdout] test ids::isbn10_id::tests::test_kind ... ok [INFO] [stdout] test ids::isbn10_id::tests::test_as_bytes ... ok [INFO] [stdout] test ids::isbn10_id::tests::test_roundtrip_isbn10_isbn13 ... ok [INFO] [stdout] test ids::isbn10_id::tests::test_to_isbn13_with_x ... ok [INFO] [stdout] test ids::isbn13_id::tests::test_as_bytes ... ok [INFO] [stdout] test ids::isbn13_id::tests::test_encode_all_formats ... ok [INFO] [stdout] test ids::isbn13_id::tests::test_kind ... ok [INFO] [stdout] test ids::isbn13_id::tests::test_inspect ... ok [INFO] [stdout] test ids::isbn13_id::tests::test_parse_979_prefix ... ok [INFO] [stdout] test ids::isbn13_id::tests::test_parse_invalid_check_digit ... ok [INFO] [stdout] test ids::isbn13_id::tests::test_is_isbn13 ... ok [INFO] [stdout] test ids::isbn13_id::tests::test_parse_invalid_prefix ... ok [INFO] [stdout] test ids::isbn13_id::tests::test_parse_valid ... ok [INFO] [stdout] test ids::isbn13_id::tests::test_to_isbn10_979_prefix ... ok [INFO] [stdout] test ids::isbn10_id::tests::test_to_isbn13 ... ok [INFO] [stdout] test ids::isbn13_id::tests::test_to_isbn10_with_x ... ok [INFO] [stdout] test ids::isbn13_id::tests::test_validate ... ok [INFO] [stdout] test ids::isin_id::tests::test_as_bytes ... ok [INFO] [stdout] test ids::isin_id::tests::test_encode_canonical ... ok [INFO] [stdout] test ids::isin_id::tests::test_encode_all_formats ... ok [INFO] [stdout] test ids::isin_id::tests::test_kind ... ok [INFO] [stdout] test ids::isin_id::tests::test_is_isin ... ok [INFO] [stdout] test ids::isbn13_id::tests::test_parse_with_hyphens ... ok [INFO] [stdout] test ids::isin_id::tests::test_inspect ... ok [INFO] [stdout] test ids::isbn10_id::tests::test_validate ... ok [INFO] [stdout] test ids::isin_id::tests::test_parse_apple ... ok [INFO] [stdout] test ids::isin_id::tests::test_parse_british ... ok [INFO] [stdout] test ids::isin_id::tests::test_parse_lowercase ... ok [INFO] [stdout] test ids::isin_id::tests::test_parse_invalid_check_digit ... ok [INFO] [stdout] test ids::isin_id::tests::test_parse_no_country_code ... ok [INFO] [stdout] test ids::isin_id::tests::test_validate ... ok [INFO] [stdout] test ids::isin_id::tests::test_parse_wrong_length ... ok [INFO] [stdout] test ids::isin_id::tests::test_parse_australian ... ok [INFO] [stdout] test ids::ismn_id::tests::test_as_bytes ... ok [INFO] [stdout] test ids::ismn_id::tests::test_is_ismn ... ok [INFO] [stdout] test ids::ismn_id::tests::test_kind ... ok [INFO] [stdout] test ids::isbn13_id::tests::test_parse_wrong_length ... ok [INFO] [stdout] test ids::ismn_id::tests::test_parse_invalid_check_digit ... ok [INFO] [stdout] test ids::isni_id::tests::test_as_bytes ... ok [INFO] [stdout] test ids::ismn_id::tests::test_inspect ... ok [INFO] [stdout] test ids::isni_id::tests::test_encode_canonical ... ok [INFO] [stdout] test ids::isni_id::tests::test_encode_all_formats ... ok [INFO] [stdout] test ids::isbn13_id::tests::test_to_isbn10 ... ok [INFO] [stdout] test ids::isni_id::tests::test_is_isni ... ok [INFO] [stdout] test ids::isni_id::tests::test_kind ... ok [INFO] [stdout] test ids::isni_id::tests::test_inspect ... ok [INFO] [stdout] test ids::isni_id::tests::test_parse_invalid_check_digit ... ok [INFO] [stdout] test ids::ismn_id::tests::test_parse_invalid_prefix ... ok [INFO] [stdout] test ids::ismn_id::tests::test_parse_valid ... ok [INFO] [stdout] test ids::ismn_id::tests::test_parse_with_hyphens ... ok [INFO] [stdout] test ids::ismn_id::tests::test_prefix ... ok [INFO] [stdout] test ids::ismn_id::tests::test_validate ... ok [INFO] [stdout] test ids::isni_id::tests::test_parse_wrong_length ... ok [INFO] [stdout] test ids::ismn_id::tests::test_parse_wrong_length ... ok [INFO] [stdout] test ids::isni_id::tests::test_validate ... ok [INFO] [stdout] test ids::isni_id::tests::test_parse_valid ... ok [INFO] [stdout] test ids::issn_id::tests::test_encode_canonical ... ok [INFO] [stdout] test ids::issn_id::tests::test_encode_all_formats ... ok [INFO] [stdout] test ids::issn_id::tests::test_as_bytes ... ok [INFO] [stdout] test ids::issn_id::tests::test_inspect ... ok [INFO] [stdout] test ids::issn_id::tests::test_parse_valid ... ok [INFO] [stdout] test ids::issn_id::tests::test_parse_with_x ... ok [INFO] [stdout] test ids::isni_id::tests::test_parse_with_spaces ... ok [INFO] [stdout] test ids::issn_id::tests::test_parse_without_hyphen ... ok [INFO] [stdout] test ids::issn_id::tests::test_is_issn ... ok [INFO] [stdout] test ids::issn_id::tests::test_validate ... ok [INFO] [stdout] test ids::issn_id::tests::test_kind ... ok [INFO] [stdout] test ids::ksuid_id::tests::test_as_bytes ... ok [INFO] [stdout] test ids::ksuid_id::tests::test_has_timestamp ... ok [INFO] [stdout] test ids::ksuid_id::tests::test_is_ksuid ... ok [INFO] [stdout] test ids::ksuid_id::tests::test_inspect ... ok [INFO] [stdout] test ids::issn_id::tests::test_parse_invalid_check_digit ... ok [INFO] [stdout] test ids::ksuid_id::tests::test_base62_char_value ... ok [INFO] [stdout] test ids::ksuid_id::tests::test_parse_error_wrong_length ... ok [INFO] [stdout] test ids::ksuid_id::tests::test_kind ... ok [INFO] [stdout] test ids::ksuid_id::tests::test_base62_encode_decode ... ok [INFO] [stdout] test ids::issn_id::tests::test_parse_wrong_length ... ok [INFO] [stdout] test ids::issn_id::tests::test_parse_lowercase_x ... ok [INFO] [stdout] test ids::ksuid_id::tests::test_generate ... ok [INFO] [stdout] test ids::ksuid_id::tests::test_encode_formats ... ok [INFO] [stdout] test ids::nanoid_id::tests::test_encode_base64 ... ok [INFO] [stdout] test ids::nanoid_id::tests::test_encode_hex ... ok [INFO] [stdout] test ids::nanoid_id::tests::test_generate_custom_length ... ok [INFO] [stdout] test ids::ksuid_id::tests::test_validate ... ok [INFO] [stdout] test ids::ksuid_id::tests::test_roundtrip ... ok [INFO] [stdout] test ids::nanoid_id::tests::test_encode_fallback ... ok [INFO] [stdout] test ids::ksuid_id::tests::test_parse_error_invalid_chars ... ok [INFO] [stdout] test ids::nanoid_id::tests::test_as_bytes ... ok [INFO] [stdout] test ids::ksuid_id::tests::test_parse_trims_whitespace ... ok [INFO] [stdout] test ids::nanoid_id::tests::test_canonical ... ok [INFO] [stdout] test ids::nanoid_id::tests::test_encode_canonical ... ok [INFO] [stdout] test ids::nanoid_id::tests::test_generate_default ... ok [INFO] [stdout] test ids::nanoid_id::tests::test_is_nanoid ... ok [INFO] [stdout] test ids::nanoid_id::tests::test_parse_empty ... ok [INFO] [stdout] test ids::nanoid_id::tests::test_parse_trims_whitespace ... ok [INFO] [stdout] test ids::nanoid_id::tests::test_parse_valid ... ok [INFO] [stdout] test ids::nanoid_id::tests::test_timestamp_is_none ... ok [INFO] [stdout] test ids::nanoid_id::tests::test_validate_non_default_format ... ok [INFO] [stdout] test ids::objectid_id::tests::test_counter_increments ... ok [INFO] [stdout] test ids::objectid_id::tests::test_components ... ok [INFO] [stdout] test ids::objectid_id::tests::test_generate ... ok [INFO] [stdout] test ids::objectid_id::tests::test_inspect ... ok [INFO] [stdout] test ids::objectid_id::tests::test_parse_error_invalid_hex ... ok [INFO] [stdout] test ids::objectid_id::tests::test_encode_formats ... ok [INFO] [stdout] test ids::objectid_id::tests::test_parse_error_wrong_length ... ok [INFO] [stdout] test ids::objectid_id::tests::test_as_bytes ... ok [INFO] [stdout] test ids::objectid_id::tests::test_is_objectid ... ok [INFO] [stdout] test ids::objectid_id::tests::test_parse_known ... ok [INFO] [stdout] test ids::objectid_id::tests::test_parse_trims_whitespace ... ok [INFO] [stdout] test ids::objectid_id::tests::test_roundtrip ... ok [INFO] [stdout] test ids::objectid_id::tests::test_validate ... ok [INFO] [stdout] test ids::snowflake_id::tests::test_generate_twitter ... ok [INFO] [stdout] test ids::snowflake_id::tests::test_dynamic_inspect_components ... ok [INFO] [stdout] test ids::snowflake_id::tests::test_instagram_layout ... ok [INFO] [stdout] test ids::snowflake_id::tests::test_generate ... ok [INFO] [stdout] test ids::snowflake_id::tests::test_layout_field_bits_sum ... ok [INFO] [stdout] test ids::snowflake_id::tests::test_parse_components ... ok [INFO] [stdout] test ids::snowflake_id::tests::test_mastodon_layout ... ok [INFO] [stdout] test ids::snowflake_id::tests::test_preset_by_name ... ok [INFO] [stdout] test ids::nanoid_id::tests::test_is_default_format ... ok [INFO] [stdout] test ids::snowflake_id::tests::test_resolve_backward_compat_epoch ... ok [INFO] [stdout] test ids::snowflake_id::tests::test_resolve_preset_and_epoch_conflict ... ok [INFO] [stdout] test ids::snowflake_id::tests::test_sonyflake_layout ... ok [INFO] [stdout] test ids::tests::test_create_generator_all_generatable ... ok [INFO] [stdout] test ids::ismn_id::tests::test_encode_all_formats ... ok [INFO] [stdout] test ids::tests::test_parse_id_uuid ... ok [INFO] [stdout] test ids::nanoid_id::tests::test_generate_hex_alphabet ... ok [INFO] [stdout] test ids::tsid_id::tests::test_crockford_char_value ... ok [INFO] [stdout] test ids::tsid_id::tests::test_encode_decode ... ok [INFO] [stdout] test ids::tests::test_parse_id_auto_detect_uuid ... ok [INFO] [stdout] test ids::nanoid_id::tests::test_generate_many ... ok [INFO] [stdout] test ids::tests::test_parse_id_with_hint_each_type ... ok [INFO] [stdout] test ids::nanoid_id::tests::test_inspect ... ok [INFO] [stdout] test ids::tests::test_parse_id_invalid ... ok [INFO] [stdout] test ids::tests::test_parse_id_snowflake ... ok [INFO] [stdout] test ids::tests::test_parse_id_ulid ... ok [INFO] [stdout] test ids::nanoid_id::tests::test_validate_default_format ... ok [INFO] [stdout] test ids::tsid_id::tests::test_as_bytes ... ok [INFO] [stdout] test ids::tests::test_create_generator_unsupported ... ok [INFO] [stdout] test ids::tsid_id::tests::test_encode_formats ... ok [INFO] [stdout] test ids::tsid_id::tests::test_generate ... ok [INFO] [stdout] test ids::tsid_id::tests::test_is_tsid ... ok [INFO] [stdout] test ids::tsid_id::tests::test_has_timestamp ... ok [INFO] [stdout] test ids::tsid_id::tests::test_kind ... ok [INFO] [stdout] test ids::tsid_id::tests::test_parse_error_invalid_chars ... ok [INFO] [stdout] test ids::tsid_id::tests::test_parse_trims_whitespace ... ok [INFO] [stdout] test ids::typeid_id::tests::test_as_bytes ... ok [INFO] [stdout] test ids::typeid_id::tests::test_base32_encode_decode ... ok [INFO] [stdout] test ids::typeid_id::tests::test_encode_formats ... ok [INFO] [stdout] test ids::tsid_id::tests::test_inspect ... ok [INFO] [stdout] test ids::tsid_id::tests::test_parse_error_wrong_length ... ok [INFO] [stdout] test ids::tsid_id::tests::test_validate ... ok [INFO] [stdout] test ids::typeid_id::tests::test_kind ... ok [INFO] [stdout] test ids::typeid_id::tests::test_no_prefix_parse ... ok [INFO] [stdout] test ids::typeid_id::tests::test_generate_no_prefix ... ok [INFO] [stdout] test ids::tsid_id::tests::test_random_bits ... ok [INFO] [stdout] test ids::typeid_id::tests::test_parse_error_invalid_base32_char ... ok [INFO] [stdout] test ids::typeid_id::tests::test_generate_with_prefix ... ok [INFO] [stdout] test ids::tsid_id::tests::test_roundtrip ... ok [INFO] [stdout] test ids::typeid_id::tests::test_has_timestamp ... ok [INFO] [stdout] test ids::typeid_id::tests::test_parse_error_invalid_prefix ... ok [INFO] [stdout] test ids::typeid_id::tests::test_parse_error_invalid_suffix_length ... ok [INFO] [stdout] test ids::typeid_id::tests::test_inspect ... ok [INFO] [stdout] test ids::typeid_id::tests::test_typeid_char_value ... ok [INFO] [stdout] test ids::typeid_id::tests::test_roundtrip ... ok [INFO] [stdout] test ids::typeid_id::tests::test_parse_trims_whitespace ... ok [INFO] [stdout] test ids::ulid_id::tests::test_case_insensitive ... ok [INFO] [stdout] test ids::typeid_id::tests::test_is_typeid ... ok [INFO] [stdout] test ids::ulid_id::tests::test_generate ... ok [INFO] [stdout] test ids::typeid_id::tests::test_validate_v7 ... ok [INFO] [stdout] test ids::ulid_id::tests::test_parse ... ok [INFO] [stdout] test ids::ulid_id::tests::test_ulid_uuid_conversion ... ok [INFO] [stdout] test ids::upca_id::tests::test_as_bytes ... ok [INFO] [stdout] test ids::upca_id::tests::test_is_upca ... ok [INFO] [stdout] test ids::upca_id::tests::test_kind ... ok [INFO] [stdout] test ids::upca_id::tests::test_parse_invalid_check_digit ... ok [INFO] [stdout] test ids::upca_id::tests::test_encode_all_formats ... ok [INFO] [stdout] test ids::upca_id::tests::test_inspect ... ok [INFO] [stdout] test ids::upca_id::tests::test_parse_valid ... ok [INFO] [stdout] test ids::upca_id::tests::test_parse_wrong_length ... ok [INFO] [stdout] test ids::upca_id::tests::test_parse_with_hyphens ... ok [INFO] [stdout] test ids::upca_id::tests::test_parse_valid_2 ... ok [INFO] [stdout] test ids::upca_id::tests::test_to_ean13 ... ok [INFO] [stdout] test ids::uuid_id::tests::test_is_uuid_invalid ... ok [INFO] [stdout] test ids::uuid_id::tests::test_max_uuid ... ok [INFO] [stdout] test ids::upca_id::tests::test_validate ... ok [INFO] [stdout] test ids::uuid_id::tests::test_nil_uuid ... ok [INFO] [stdout] test ids::uuid_id::tests::test_generate_v6 ... ok [INFO] [stdout] test ids::uuid_id::tests::test_parse_uuid ... ok [INFO] [stdout] test ids::uuid_id::tests::test_uuid_as_bytes ... ok [INFO] [stdout] test ids::uuid_id::tests::test_uuid_canonical ... ok [INFO] [stdout] test ids::uuid_id::tests::test_generate_v7 ... ok [INFO] [stdout] test ids::uuid_id::tests::test_generate_v1 ... ok [INFO] [stdout] test ids::uuid_id::tests::test_uuid_encode_bits ... ok [INFO] [stdout] test ids::uuid_id::tests::test_uuid_encode_hex ... ok [INFO] [stdout] test ids::uuid_id::tests::test_uuid_encode_int ... ok [INFO] [stdout] test ids::uuid_id::tests::test_uuid_generate_many ... ok [INFO] [stdout] test ids::uuid_id::tests::test_uuid_inspect ... ok [INFO] [stdout] test ids::uuid_id::tests::test_uuid_validate ... ok [INFO] [stdout] test ids::uuid_id::tests::test_uuid_v7_timestamp ... ok [INFO] [stdout] test ids::xid_id::tests::test_encode_decode_roundtrip ... ok [INFO] [stdout] test ids::xid_id::tests::test_components ... ok [INFO] [stdout] test ids::xid_id::tests::test_as_bytes ... ok [INFO] [stdout] test ids::uuid_id::tests::test_uuid_encode_base58 ... ok [INFO] [stdout] test ids::uuid_id::tests::test_uuid_encode_base64 ... ok [INFO] [stdout] test ids::xid_id::tests::test_encode_formats ... ok [INFO] [stdout] test ids::xid_id::tests::test_parse_error_wrong_length ... ok [INFO] [stdout] test ids::xid_id::tests::test_parse_trims_whitespace ... ok [INFO] [stdout] test ids::xid_id::tests::test_roundtrip ... ok [INFO] [stdout] test utils::check_digit::tests::test_compute_mod10_ean13 ... ok [INFO] [stdout] test utils::check_digit::tests::test_compute_isbn10_check ... ok [INFO] [stdout] test utils::check_digit::tests::test_parse_digits ... ok [INFO] [stdout] test utils::check_digit::tests::test_strip_formatting ... ok [INFO] [stdout] test utils::check_digit::tests::test_luhn_check ... ok [INFO] [stdout] test utils::check_digit::tests::test_validate_isbn10 ... ok [INFO] [stdout] test ids::xid_id::tests::test_generate ... ok [INFO] [stdout] test utils::check_digit::tests::test_compute_mod10_isbn13 ... ok [INFO] [stdout] test ids::xid_id::tests::test_parse_error_invalid_chars ... ok [INFO] [stdout] test ids::xid_id::tests::test_validate ... ok [INFO] [stdout] test ids::xid_id::tests::test_xid_char_value ... ok [INFO] [stdout] test utils::check_digit::tests::test_validate_isin_luhn ... ok [INFO] [stdout] test utils::check_digit::tests::test_validate_iso7064_mod11_2 ... ok [INFO] [stdout] test ids::xid_id::tests::test_has_timestamp ... ok [INFO] [stdout] test ids::xid_id::tests::test_is_xid ... ok [INFO] [stdout] test ids::xid_id::tests::test_kind ... ok [INFO] [stdout] test ids::xid_id::tests::test_inspect ... ok [INFO] [stdout] test ids::uuid_id::tests::test_generate_v4 ... ok [INFO] [stdout] test utils::check_digit::tests::test_validate_issn ... ok [INFO] [stdout] test utils::check_digit::tests::test_validate_issn_with_x ... ok [INFO] [stdout] test utils::tests::test_current_timestamp_ms ... ok [INFO] [stdout] test utils::tests::test_format_duration_ms_hours ... ok [INFO] [stdout] test utils::tests::test_format_duration_ms_millis ... ok [INFO] [stdout] test utils::check_digit::tests::test_validate_mod10_ean13 ... ok [INFO] [stdout] test utils::check_digit::tests::test_validate_mod10_empty ... ok [INFO] [stdout] test utils::tests::test_current_timestamp_secs ... ok [INFO] [stdout] test utils::tests::test_format_duration_ms_days ... ok [INFO] [stdout] test utils::tests::test_format_duration_ms_minutes ... ok [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/idt-69007dcbcd7669d6) [INFO] [stdout] test utils::tests::test_format_duration_ms_seconds ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 514 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stderr] Doc-tests idt [INFO] [stdout] [INFO] [stdout] running 1 test [INFO] [stdout] test src/lib.rs - (line 13) ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] [stdout] all doctests ran in 0.68s; merged doctests compilation took 0.66s [INFO] running `Command { std: "docker" "inspect" "d30431ef495e2796017c49f4b04ef0e77b85d00f8bc5ae11c17ec397c02a8728", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "d30431ef495e2796017c49f4b04ef0e77b85d00f8bc5ae11c17ec397c02a8728", kill_on_drop: false }` [INFO] [stdout] d30431ef495e2796017c49f4b04ef0e77b85d00f8bc5ae11c17ec397c02a8728