LukeMathWalker / cargo-chef

A cargo-subcommand to speed up Rust Docker builds using Docker layer caching.
Apache License 2.0
1.79k stars 117 forks source link

chef prepare generates incorrect recipe.json when supplying `--bin` argument with crates in nested directory structure #232

Closed SuperFluffy closed 7 months ago

SuperFluffy commented 1 year ago

Running cargo-chef gave me panics when running with cargo chef cook --bin my-bin (see at the bottom). I believe I tracked it down to cargo chef prepare --bin my-bin creating incorrect entries in its .skeleton.manifests array. Instead of creating an entry "crates/my-bin", it contains an entry "my-bin". This causes the subsequent invocation of cargo chef cook --bin my-bin to fail.

When I manually edit recipe.json and change the entry "my-bin" -> "crates/my-bin", cargo chef cook succeeds.

Cargo.toml contents:

[workspace]

members = [
  "crates/my-bin"
]

Directory structure:

├── Cargo.toml
├── crates
│  └── my-bin
│     ├── Cargo.toml
│     └── src
│        └── main.rs

Recipe (note that the workspace members points to "my-bin", not "crates/my-bin"!):

$ cargo chef prepare --bin my-bin --recipe-path recipe.json
{
  "skeleton": {
    "manifests": [
      {
        "relative_path": "Cargo.toml",
        "contents": "[workspace]\nmembers = [\"my-bin\"]\n",
        "targets": []
      },
      {
        "relative_path": "crates/my-bin/Cargo.toml",
        "contents": "bench = []\ntest = []\nexample = []\n\n[[bin]]\npath = \"src/main.rs\"\nname = \"my-bin\"\ntest = true\ndoctest = true\nbench = true\ndoc = true\nplugin = false\nproc-macro = false\nharness = true\nedition = \"2021\"\nrequired-features = []\n\n[package]\nname = \"my-bin\"\nedition = \"2021\"\nversion = \"0.0.1\"\nautobins = true\nautoexamples = true\nautotests = true\nautobenches = true\n\n[dependencies]\n",
        "targets": [
          {
            "path": "src/main.rs",
            "kind": "Bin",
            "name": "my-bin"
          }
        ]
      }
    ],
    "config_file": null,
    "lock_file": "version = 3\n\n[[package]]\nname = \"my-bin\"\nversion = \"0.0.1\"\n"
  }
}

Error when cooking:

$ cargo chef --bin my-bin --recipe-path recipe.json
error: failed to load manifest for workspace member `/Users/janis/dev/other_git/cargo-chef-wrong-wrong-path/my-bin`

Caused by:
  failed to read `/Users/janis/dev/other_git/cargo-chef-wrong-wrong-path/my-bin/Cargo.toml`

Caused by:
  No such file or directory (os error 2)
thread 'main' panicked at 'Exited with status code: 101', /Users/janis/.cargo/registry/src/index.crates.io-6f17d22bba15001f/cargo-chef-0.1.61/src/recipe.rs:189:27
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

Note that invoking cargo chef prepare without the bin arg creates a correct manifest:

{
  "skeleton": {
    "manifests": [
      {
        "relative_path": "Cargo.toml",
        "contents": "[workspace]\nmembers = [\"crates/my-bin\"]\n",
        "targets": []
      },
      {
        "relative_path": "crates/my-bin/Cargo.toml",
        "contents": "bench = []\ntest = []\nexample = []\n\n[[bin]]\npath = \"src/main.rs\"\nname = \"my-bin\"\ntest = true\ndoctest = true\nbench = true\ndoc = true\nplugin = false\nproc-macro = false\nharness = true\nedition = \"2021\"\nrequired-features = []\n\n[package]\nname = \"my-bin\"\nedition = \"2021\"\nversion = \"0.0.1\"\nautobins = true\nautoexamples = true\nautotests = true\nautobenches = true\n\n[dependencies]\n",
        "targets": [
          {
            "path": "src/main.rs",
            "kind": "Bin",
            "name": "my-bin"
          }
        ]
      }
    ],
    "config_file": null,
    "lock_file": "version = 3\n\n[[package]]\nname = \"my-bin\"\nversion = \"0.0.1\"\n"
  }
}

EDIT: Another observation: cargo chef prepare --bin crates/my-bin actually generates the desired recipe.json. This is surprising though because it functions differently from cargo build --bin

brandonros commented 8 months ago
MacBook-Air:stock_scrapers brandon 2024-02-20 17:26:54 $ ls -1
Cargo.lock
Cargo.toml
README.md
common  # has common/Cargo.toml
infrastructure
migrations
recipe.json
robinhood_scraper # has robinhood_scraper/Cargo.toml
thinkorswim_scraper # has thinkorswim_scraper/Cargo.toml
MacBook-Air:stock_scrapers brandon 2024-02-20 17:26:51 $ cat Cargo.toml 
[workspace]
resolver = "2"
members = [
  "common",
  "robinhood_scraper",
  "thinkorswim_scraper"
]
MacBook-Air:stock_scrapers brandon 2024-02-20 17:26:55 $ cargo chef prepare --recipe-path recipe.json --bin robinhood_scraper
MacBook-Air:stock_scrapers brandon 2024-02-20 17:26:59 $ cat recipe.json | jq
{
  "skeleton": {
    "manifests": [
      {
        "relative_path": "Cargo.toml",
        "contents": "[workspace]\nmembers = [\"robinhood_scraper\"]\nresolver = \"2\"\n",
        "targets": []
      },
      {
        "relative_path": "common/Cargo.toml",
        "contents": "bin = []\nbench = []\ntest = []\nexample = []\n\n[package]\nname = \"common\"\nedition = \"2021\"\nversion = \"0.0.1\"\nautobins = true\nautoexamples = true\nautotests = true\nautobenches = true\n\n[dependencies]\nchrono = \"0.4.33\"\nchrono-tz = \"0.8.6\"\n\n[dependencies.bigdecimal]\nversion = \"0.3\"\nfeatures = [\"serde\"]\n\n[dependencies.sqlx]\nversion = \"0.7\"\nfeatures = [\"runtime-async-std\", \"postgres\", \"bigdecimal\", \"chrono\"]\n\n[lib]\npath = \"src/lib.rs\"\nname = \"common\"\ntest = true\ndoctest = true\nbench = true\ndoc = true\nplugin = false\nproc-macro = false\nharness = true\nedition = \"2021\"\nrequired-features = []\ncrate-type = [\"rlib\"]\n",
        "targets": [
          {
            "path": "src/lib.rs",
            "kind": {
              "Lib": {
                "is_proc_macro": false
              }
            },
            "name": "common"
          }
        ]
      },
      {
        "relative_path": "robinhood_scraper/Cargo.toml",
        "contents": "bench = []\ntest = []\nexample = []\n\n[[bin]]\npath = \"src/main.rs\"\nname = \"robinhood_scraper\"\ntest = true\ndoctest = true\nbench = true\ndoc = true\nplugin = false\nproc-macro = false\nharness = true\nedition = \"2021\"\nrequired-features = []\n\n[package]\nname = \"robinhood_scraper\"\nedition = \"2021\"\nversion = \"0.0.1\"\nautobins = true\nautoexamples = true\nautotests = true\nautobenches = true\n\n[dependencies]\nasync-std = \"1\"\nchrono = \"0.4.34\"\nchrono-tz = \"0.8.6\"\ndotenvy = \"0.15.7\"\nhttp = \"1.0.0\"\nserde_json = \"1.0.113\"\nurl = \"2.5.0\"\n\n[dependencies.bigdecimal]\nversion = \"0.3\"\nfeatures = [\"serde\"]\n\n[dependencies.common]\npath = \"../common\"\n\n[dependencies.http_client]\ngit = \"https://github.com/brandonros/http_client.git\"\nrev = \"f229cab785b3a4b24b48ef747d34071064f93e8e\"\n\n[dependencies.json_env_logger]\nversion = \"0.1\"\n\n[dependencies.log]\nversion = \"0.4.20\"\nfeatures = [\"kv_unstable_std\"]\n\n[dependencies.log-panics]\nversion = \"2\"\nfeatures = [\"with-backtrace\"]\n\n[dependencies.serde]\nversion = \"1.0.196\"\nfeatures = [\"derive\"]\n\n[dependencies.sqlx]\nversion = \"0.7\"\nfeatures = [\"runtime-async-std\", \"postgres\", \"bigdecimal\", \"chrono\"]\n",
        "targets": [
          {
            "path": "src/main.rs",
            "kind": "Bin",
            "name": "robinhood_scraper"
          }
        ]
      },
      {
        "relative_path": "thinkorswim_scraper/Cargo.toml",
        "contents": "bench = []\ntest = []\nexample = []\n\n[[bin]]\npath = \"src/main.rs\"\nname = \"thinkorswim_scraper\"\ntest = true\ndoctest = true\nbench = true\ndoc = true\nplugin = false\nproc-macro = false\nharness = true\nedition = \"2021\"\nrequired-features = []\n\n[package]\nname = \"thinkorswim_scraper\"\nedition = \"2021\"\nversion = \"0.0.1\"\nautobins = true\nautoexamples = true\nautotests = true\nautobenches = true\n\n[dependencies]\nasync-native-tls = \"0.5.0\"\nasync-std = \"1\"\nchrono = \"0.4.33\"\nchrono-tz = \"0.8.6\"\ndotenvy = \"0.15.7\"\nfutures = \"0.3.0\"\nhttp = \"1.0.0\"\njson-patch = \"1.2.0\"\nonce_cell = \"1.19.0\"\nserde_json = \"1.0.113\"\n\n[dependencies.async-tungstenite]\nversion = \"0.24.0\"\nfeatures = [\"async-native-tls\", \"async-std-runtime\"]\n\n[dependencies.bigdecimal]\nversion = \"0.3\"\nfeatures = [\"serde\"]\n\n[dependencies.common]\npath = \"../common\"\n\n[dependencies.json_env_logger]\nversion = \"0.1\"\n\n[dependencies.log]\nversion = \"0.4.20\"\nfeatures = [\"kv_unstable_std\"]\n\n[dependencies.log-panics]\nversion = \"2\"\nfeatures = [\"with-backtrace\"]\n\n[dependencies.serde]\nversion = \"1.0.196\"\nfeatures = [\"derive\"]\n\n[dependencies.sqlx]\nversion = \"0.7\"\nfeatures = [\"runtime-async-std\", \"postgres\", \"bigdecimal\", \"chrono\"]\n",
        "targets": [
          {
            "path": "src/main.rs",
            "kind": "Bin",
            "name": "thinkorswim_scraper"
          }
        ]
      }
    ],
    "config_file": null,
    "lock_file": "version = 3\n\n[[package]]\nname = \"addr2line\"\nversion = \"0.21.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb\"\ndependencies = [\"gimli\"]\n\n[[package]]\nname = \"adler\"\nversion = \"1.0.2\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe\"\n\n[[package]]\nname = \"ahash\"\nversion = \"0.8.8\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"42cd52102d3df161c77a887b608d7a4897d7cc112886a9537b738a887a03aaff\"\ndependencies = [\"cfg-if\", \"getrandom\", \"once_cell\", \"version_check\", \"zerocopy\"]\n\n[[package]]\nname = \"aho-corasick\"\nversion = \"1.1.2\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0\"\ndependencies = [\"memchr\"]\n\n[[package]]\nname = \"allocator-api2\"\nversion = \"0.2.16\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"0942ffc6dcaadf03badf6e6a2d0228460359d5e34b57ccdc720b7382dfbd5ec5\"\n\n[[package]]\nname = \"android-tzdata\"\nversion = \"0.1.1\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0\"\n\n[[package]]\nname = \"android_system_properties\"\nversion = \"0.1.5\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311\"\ndependencies = [\"libc\"]\n\n[[package]]\nname = \"async-channel\"\nversion = \"1.9.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"81953c529336010edd6d8e358f886d9581267795c61b19475b71314bffa46d35\"\ndependencies = [\"concurrent-queue\", \"event-listener 2.5.3\", \"futures-core\"]\n\n[[package]]\nname = \"async-channel\"\nversion = \"2.2.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"f28243a43d821d11341ab73c80bed182dc015c514b951616cf79bd4af39af0c3\"\ndependencies = [\"concurrent-queue\", \"event-listener 5.0.0\", \"event-listener-strategy 0.5.0\", \"futures-core\", \"pin-project-lite\"]\n\n[[package]]\nname = \"async-executor\"\nversion = \"1.8.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"17ae5ebefcc48e7452b4987947920dac9450be1110cadf34d1b8c116bdbaf97c\"\ndependencies = [\"async-lock 3.3.0\", \"async-task\", \"concurrent-queue\", \"fastrand 2.0.1\", \"futures-lite 2.2.0\", \"slab\"]\n\n[[package]]\nname = \"async-global-executor\"\nversion = \"2.4.1\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"05b1b633a2115cd122d73b955eadd9916c18c8f510ec9cd1686404c60ad1c29c\"\ndependencies = [\"async-channel 2.2.0\", \"async-executor\", \"async-io 2.3.1\", \"async-lock 3.3.0\", \"blocking\", \"futures-lite 2.2.0\", \"once_cell\"]\n\n[[package]]\nname = \"async-io\"\nversion = \"1.13.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af\"\ndependencies = [\"async-lock 2.8.0\", \"autocfg\", \"cfg-if\", \"concurrent-queue\", \"futures-lite 1.13.0\", \"log\", \"parking\", \"polling 2.8.0\", \"rustix 0.37.27\", \"slab\", \"socket2\", \"waker-fn\"]\n\n[[package]]\nname = \"async-io\"\nversion = \"2.3.1\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"8f97ab0c5b00a7cdbe5a371b9a782ee7be1316095885c8a4ea1daf490eb0ef65\"\ndependencies = [\"async-lock 3.3.0\", \"cfg-if\", \"concurrent-queue\", \"futures-io\", \"futures-lite 2.2.0\", \"parking\", \"polling 3.4.0\", \"rustix 0.38.31\", \"slab\", \"tracing\", \"windows-sys 0.52.0\"]\n\n[[package]]\nname = \"async-lock\"\nversion = \"2.8.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"287272293e9d8c41773cec55e365490fe034813a2f172f502d6ddcf75b2f582b\"\ndependencies = [\"event-listener 2.5.3\"]\n\n[[package]]\nname = \"async-lock\"\nversion = \"3.3.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"d034b430882f8381900d3fe6f0aaa3ad94f2cb4ac519b429692a1bc2dda4ae7b\"\ndependencies = [\"event-listener 4.0.3\", \"event-listener-strategy 0.4.0\", \"pin-project-lite\"]\n\n[[package]]\nname = \"async-native-tls\"\nversion = \"0.5.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"9343dc5acf07e79ff82d0c37899f079db3534d99f189a1837c8e549c99405bec\"\ndependencies = [\"futures-util\", \"native-tls\", \"thiserror\", \"url\"]\n\n[[package]]\nname = \"async-std\"\nversion = \"1.12.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"62565bb4402e926b29953c785397c6dc0391b7b446e45008b0049eb43cec6f5d\"\ndependencies = [\"async-channel 1.9.0\", \"async-global-executor\", \"async-io 1.13.0\", \"async-lock 2.8.0\", \"crossbeam-utils\", \"futures-channel\", \"futures-core\", \"futures-io\", \"futures-lite 1.13.0\", \"gloo-timers\", \"kv-log-macro\", \"log\", \"memchr\", \"once_cell\", \"pin-project-lite\", \"pin-utils\", \"slab\", \"wasm-bindgen-futures\"]\n\n[[package]]\nname = \"async-task\"\nversion = \"4.7.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"fbb36e985947064623dbd357f727af08ffd077f93d696782f3c56365fa2e2799\"\n\n[[package]]\nname = \"async-tls\"\nversion = \"0.13.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"b2ae3c9eba89d472a0e4fe1dea433df78fbbe63d2b764addaf2ba3a6bde89a5e\"\ndependencies = [\"futures-core\", \"futures-io\", \"rustls\", \"rustls-pemfile\", \"webpki-roots\"]\n\n[[package]]\nname = \"async-tungstenite\"\nversion = \"0.24.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"3609af4bbf701ddaf1f6bb4e6257dff4ff8932327d0e685d3f653724c258b1ac\"\ndependencies = [\"async-native-tls\", \"async-std\", \"futures-io\", \"futures-util\", \"log\", \"pin-project-lite\", \"tungstenite\"]\n\n[[package]]\nname = \"atoi\"\nversion = \"2.0.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"f28d99ec8bfea296261ca1af174f24225171fea9664ba9003cbebee704810528\"\ndependencies = [\"num-traits\"]\n\n[[package]]\nname = \"atomic-waker\"\nversion = \"1.1.2\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0\"\n\n[[package]]\nname = \"atomic-write-file\"\nversion = \"0.1.2\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"edcdbedc2236483ab103a53415653d6b4442ea6141baf1ffa85df29635e88436\"\ndependencies = [\"nix\", \"rand\"]\n\n[[package]]\nname = \"autocfg\"\nversion = \"1.1.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa\"\n\n[[package]]\nname = \"backtrace\"\nversion = \"0.3.69\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837\"\ndependencies = [\"addr2line\", \"cc\", \"cfg-if\", \"libc\", \"miniz_oxide\", \"object\", \"rustc-demangle\"]\n\n[[package]]\nname = \"base64\"\nversion = \"0.21.7\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567\"\n\n[[package]]\nname = \"base64ct\"\nversion = \"1.6.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b\"\n\n[[package]]\nname = \"bigdecimal\"\nversion = \"0.3.1\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"a6773ddc0eafc0e509fb60e48dff7f450f8e674a0686ae8605e8d9901bd5eefa\"\ndependencies = [\"num-bigint\", \"num-integer\", \"num-traits\", \"serde\"]\n\n[[package]]\nname = \"bitflags\"\nversion = \"1.3.2\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a\"\n\n[[package]]\nname = \"bitflags\"\nversion = \"2.4.2\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf\"\ndependencies = [\"serde\"]\n\n[[package]]\nname = \"block-buffer\"\nversion = \"0.10.4\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71\"\ndependencies = [\"generic-array\"]\n\n[[package]]\nname = \"blocking\"\nversion = \"1.5.1\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"6a37913e8dc4ddcc604f0c6d3bf2887c995153af3611de9e23c352b44c1b9118\"\ndependencies = [\"async-channel 2.2.0\", \"async-lock 3.3.0\", \"async-task\", \"fastrand 2.0.1\", \"futures-io\", \"futures-lite 2.2.0\", \"piper\", \"tracing\"]\n\n[[package]]\nname = \"bumpalo\"\nversion = \"3.15.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"d32a994c2b3ca201d9b263612a374263f05e7adde37c4707f693dcd375076d1f\"\n\n[[package]]\nname = \"byteorder\"\nversion = \"1.5.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b\"\n\n[[package]]\nname = \"bytes\"\nversion = \"1.5.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223\"\n\n[[package]]\nname = \"cc\"\nversion = \"1.0.83\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0\"\ndependencies = [\"libc\"]\n\n[[package]]\nname = \"cfg-if\"\nversion = \"1.0.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd\"\n\n[[package]]\nname = \"chrono\"\nversion = \"0.4.34\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"5bc015644b92d5890fab7489e49d21f879d5c990186827d42ec511919404f38b\"\ndependencies = [\"android-tzdata\", \"iana-time-zone\", \"js-sys\", \"num-traits\", \"wasm-bindgen\", \"windows-targets 0.52.0\"]\n\n[[package]]\nname = \"chrono-tz\"\nversion = \"0.8.6\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"d59ae0466b83e838b81a54256c39d5d7c20b9d7daa10510a242d9b75abd5936e\"\ndependencies = [\"chrono\", \"chrono-tz-build\", \"phf\"]\n\n[[package]]\nname = \"chrono-tz-build\"\nversion = \"0.2.1\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"433e39f13c9a060046954e0592a8d0a4bcb1040125cbf91cb8ee58964cfb350f\"\ndependencies = [\"parse-zoneinfo\", \"phf\", \"phf_codegen\"]\n\n[[package]]\nname = \"common\"\nversion = \"0.0.1\"\ndependencies = [\"bigdecimal\", \"chrono\", \"chrono-tz\", \"sqlx\"]\n\n[[package]]\nname = \"concurrent-queue\"\nversion = \"2.4.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"d16048cd947b08fa32c24458a22f5dc5e835264f689f4f5653210c69fd107363\"\ndependencies = [\"crossbeam-utils\"]\n\n[[package]]\nname = \"const-oid\"\nversion = \"0.9.6\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8\"\n\n[[package]]\nname = \"core-foundation\"\nversion = \"0.9.4\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f\"\ndependencies = [\"core-foundation-sys\", \"libc\"]\n\n[[package]]\nname = \"core-foundation-sys\"\nversion = \"0.8.6\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f\"\n\n[[package]]\nname = \"cpufeatures\"\nversion = \"0.2.12\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504\"\ndependencies = [\"libc\"]\n\n[[package]]\nname = \"crc\"\nversion = \"3.0.1\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"86ec7a15cbe22e59248fc7eadb1907dab5ba09372595da4d73dd805ed4417dfe\"\ndependencies = [\"crc-catalog\"]\n\n[[package]]\nname = \"crc-catalog\"\nversion = \"2.4.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"19d374276b40fb8bbdee95aef7c7fa6b5316ec764510eb64b8dd0e2ed0d7e7f5\"\n\n[[package]]\nname = \"crossbeam-queue\"\nversion = \"0.3.11\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"df0346b5d5e76ac2fe4e327c5fd1118d6be7c51dfb18f9b7922923f287471e35\"\ndependencies = [\"crossbeam-utils\"]\n\n[[package]]\nname = \"crossbeam-utils\"\nversion = \"0.8.19\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345\"\n\n[[package]]\nname = \"crypto-common\"\nversion = \"0.1.6\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3\"\ndependencies = [\"generic-array\", \"typenum\"]\n\n[[package]]\nname = \"data-encoding\"\nversion = \"2.5.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5\"\n\n[[package]]\nname = \"der\"\nversion = \"0.7.8\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"fffa369a668c8af7dbf8b5e56c9f744fbd399949ed171606040001947de40b1c\"\ndependencies = [\"const-oid\", \"pem-rfc7468\", \"zeroize\"]\n\n[[package]]\nname = \"digest\"\nversion = \"0.10.7\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292\"\ndependencies = [\"block-buffer\", \"const-oid\", \"crypto-common\", \"subtle\"]\n\n[[package]]\nname = \"dotenvy\"\nversion = \"0.15.7\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"1aaf95b3e5c8f23aa320147307562d361db0ae0d51242340f558153b4eb2439b\"\n\n[[package]]\nname = \"either\"\nversion = \"1.10.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a\"\ndependencies = [\"serde\"]\n\n[[package]]\nname = \"env_logger\"\nversion = \"0.7.1\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36\"\ndependencies = [\"log\"]\n\n[[package]]\nname = \"equivalent\"\nversion = \"1.0.1\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5\"\n\n[[package]]\nname = \"erased-serde\"\nversion = \"0.4.2\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"55d05712b2d8d88102bc9868020c9e5c7a1f5527c452b9b97450a1d006140ba7\"\ndependencies = [\"serde\"]\n\n[[package]]\nname = \"errno\"\nversion = \"0.3.8\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245\"\ndependencies = [\"libc\", \"windows-sys 0.52.0\"]\n\n[[package]]\nname = \"etcetera\"\nversion = \"0.8.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"136d1b5283a1ab77bd9257427ffd09d8667ced0570b6f938942bc7568ed5b943\"\ndependencies = [\"cfg-if\", \"home\", \"windows-sys 0.48.0\"]\n\n[[package]]\nname = \"event-listener\"\nversion = \"2.5.3\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0\"\n\n[[package]]\nname = \"event-listener\"\nversion = \"4.0.3\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"67b215c49b2b248c855fb73579eb1f4f26c38ffdc12973e20e07b91d78d5646e\"\ndependencies = [\"concurrent-queue\", \"parking\", \"pin-project-lite\"]\n\n[[package]]\nname = \"event-listener\"\nversion = \"5.0.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"b72557800024fabbaa2449dd4bf24e37b93702d457a4d4f2b0dd1f0f039f20c1\"\ndependencies = [\"concurrent-queue\", \"parking\", \"pin-project-lite\"]\n\n[[package]]\nname = \"event-listener-strategy\"\nversion = \"0.4.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"958e4d70b6d5e81971bebec42271ec641e7ff4e170a6fa605f2b8a8b65cb97d3\"\ndependencies = [\"event-listener 4.0.3\", \"pin-project-lite\"]\n\n[[package]]\nname = \"event-listener-strategy\"\nversion = \"0.5.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"feedafcaa9b749175d5ac357452a9d41ea2911da598fde46ce1fe02c37751291\"\ndependencies = [\"event-listener 5.0.0\", \"pin-project-lite\"]\n\n[[package]]\nname = \"fastrand\"\nversion = \"1.9.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be\"\ndependencies = [\"instant\"]\n\n[[package]]\nname = \"fastrand\"\nversion = \"2.0.1\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5\"\n\n[[package]]\nname = \"finl_unicode\"\nversion = \"1.2.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"8fcfdc7a0362c9f4444381a9e697c79d435fe65b52a37466fc2c1184cee9edc6\"\n\n[[package]]\nname = \"flume\"\nversion = \"0.11.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"55ac459de2512911e4b674ce33cf20befaba382d05b62b008afc1c8b57cbf181\"\ndependencies = [\"futures-core\", \"futures-sink\", \"spin 0.9.8\"]\n\n[[package]]\nname = \"fnv\"\nversion = \"1.0.7\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1\"\n\n[[package]]\nname = \"foreign-types\"\nversion = \"0.3.2\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1\"\ndependencies = [\"foreign-types-shared\"]\n\n[[package]]\nname = \"foreign-types-shared\"\nversion = \"0.1.1\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b\"\n\n[[package]]\nname = \"form_urlencoded\"\nversion = \"1.2.1\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456\"\ndependencies = [\"percent-encoding\"]\n\n[[package]]\nname = \"futures\"\nversion = \"0.3.30\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0\"\ndependencies = [\"futures-channel\", \"futures-core\", \"futures-executor\", \"futures-io\", \"futures-sink\", \"futures-task\", \"futures-util\"]\n\n[[package]]\nname = \"futures-channel\"\nversion = \"0.3.30\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78\"\ndependencies = [\"futures-core\", \"futures-sink\"]\n\n[[package]]\nname = \"futures-core\"\nversion = \"0.3.30\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d\"\n\n[[package]]\nname = \"futures-executor\"\nversion = \"0.3.30\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d\"\ndependencies = [\"futures-core\", \"futures-task\", \"futures-util\"]\n\n[[package]]\nname = \"futures-intrusive\"\nversion = \"0.5.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"1d930c203dd0b6ff06e0201a4a2fe9149b43c684fd4420555b26d21b1a02956f\"\ndependencies = [\"futures-core\", \"lock_api\", \"parking_lot\"]\n\n[[package]]\nname = \"futures-io\"\nversion = \"0.3.30\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1\"\n\n[[package]]\nname = \"futures-lite\"\nversion = \"1.13.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce\"\ndependencies = [\"fastrand 1.9.0\", \"futures-core\", \"futures-io\", \"memchr\", \"parking\", \"pin-project-lite\", \"waker-fn\"]\n\n[[package]]\nname = \"futures-lite\"\nversion = \"2.2.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"445ba825b27408685aaecefd65178908c36c6e96aaf6d8599419d46e624192ba\"\ndependencies = [\"fastrand 2.0.1\", \"futures-core\", \"futures-io\", \"parking\", \"pin-project-lite\"]\n\n[[package]]\nname = \"futures-macro\"\nversion = \"0.3.30\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac\"\ndependencies = [\"proc-macro2\", \"quote\", \"syn 2.0.49\"]\n\n[[package]]\nname = \"futures-sink\"\nversion = \"0.3.30\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5\"\n\n[[package]]\nname = \"futures-task\"\nversion = \"0.3.30\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004\"\n\n[[package]]\nname = \"futures-util\"\nversion = \"0.3.30\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48\"\ndependencies = [\"futures-channel\", \"futures-core\", \"futures-io\", \"futures-macro\", \"futures-sink\", \"futures-task\", \"memchr\", \"pin-project-lite\", \"pin-utils\", \"slab\"]\n\n[[package]]\nname = \"generic-array\"\nversion = \"0.14.7\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a\"\ndependencies = [\"typenum\", \"version_check\"]\n\n[[package]]\nname = \"getrandom\"\nversion = \"0.2.12\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5\"\ndependencies = [\"cfg-if\", \"libc\", \"wasi\"]\n\n[[package]]\nname = \"gimli\"\nversion = \"0.28.1\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253\"\n\n[[package]]\nname = \"gloo-timers\"\nversion = \"0.2.6\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"9b995a66bb87bebce9a0f4a95aed01daca4872c050bfcb21653361c03bc35e5c\"\ndependencies = [\"futures-channel\", \"futures-core\", \"js-sys\", \"wasm-bindgen\"]\n\n[[package]]\nname = \"hashbrown\"\nversion = \"0.14.3\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604\"\ndependencies = [\"ahash\", \"allocator-api2\"]\n\n[[package]]\nname = \"hashlink\"\nversion = \"0.8.4\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"e8094feaf31ff591f651a2664fb9cfd92bba7a60ce3197265e9482ebe753c8f7\"\ndependencies = [\"hashbrown\"]\n\n[[package]]\nname = \"heck\"\nversion = \"0.4.1\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8\"\ndependencies = [\"unicode-segmentation\"]\n\n[[package]]\nname = \"hermit-abi\"\nversion = \"0.3.6\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"bd5256b483761cd23699d0da46cc6fd2ee3be420bbe6d020ae4a091e70b7e9fd\"\n\n[[package]]\nname = \"hex\"\nversion = \"0.4.3\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70\"\n\n[[package]]\nname = \"hkdf\"\nversion = \"0.12.4\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"7b5f8eb2ad728638ea2c7d47a21db23b7b58a72ed6a38256b8a1849f15fbbdf7\"\ndependencies = [\"hmac\"]\n\n[[package]]\nname = \"hmac\"\nversion = \"0.12.1\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e\"\ndependencies = [\"digest\"]\n\n[[package]]\nname = \"home\"\nversion = \"0.5.9\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5\"\ndependencies = [\"windows-sys 0.52.0\"]\n\n[[package]]\nname = \"http\"\nversion = \"1.0.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"b32afd38673a8016f7c9ae69e5af41a58f81b1d31689040f2f1959594ce194ea\"\ndependencies = [\"bytes\", \"fnv\", \"itoa\"]\n\n[[package]]\nname = \"http_client\"\nversion = \"0.1.0\"\nsource = \"git+https://github.com/brandonros/http_client.git?rev=f229cab785b3a4b24b48ef747d34071064f93e8e#f229cab785b3a4b24b48ef747d34071064f93e8e\"\ndependencies = [\"async-std\", \"async-tls\", \"futures\", \"http\", \"log\"]\n\n[[package]]\nname = \"httparse\"\nversion = \"1.8.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904\"\n\n[[package]]\nname = \"iana-time-zone\"\nversion = \"0.1.60\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141\"\ndependencies = [\"android_system_properties\", \"core-foundation-sys\", \"iana-time-zone-haiku\", \"js-sys\", \"wasm-bindgen\", \"windows-core\"]\n\n[[package]]\nname = \"iana-time-zone-haiku\"\nversion = \"0.1.2\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f\"\ndependencies = [\"cc\"]\n\n[[package]]\nname = \"idna\"\nversion = \"0.5.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6\"\ndependencies = [\"unicode-bidi\", \"unicode-normalization\"]\n\n[[package]]\nname = \"indexmap\"\nversion = \"2.2.3\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"233cf39063f058ea2caae4091bf4a3ef70a653afbc026f5c4a4135d114e3c177\"\ndependencies = [\"equivalent\", \"hashbrown\"]\n\n[[package]]\nname = \"instant\"\nversion = \"0.1.12\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c\"\ndependencies = [\"cfg-if\"]\n\n[[package]]\nname = \"io-lifetimes\"\nversion = \"1.0.11\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2\"\ndependencies = [\"hermit-abi\", \"libc\", \"windows-sys 0.48.0\"]\n\n[[package]]\nname = \"itertools\"\nversion = \"0.12.1\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569\"\ndependencies = [\"either\"]\n\n[[package]]\nname = \"itoa\"\nversion = \"1.0.10\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c\"\n\n[[package]]\nname = \"js-sys\"\nversion = \"0.3.68\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"406cda4b368d531c842222cf9d2600a9a4acce8d29423695379c6868a143a9ee\"\ndependencies = [\"wasm-bindgen\"]\n\n[[package]]\nname = \"json-patch\"\nversion = \"1.2.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"55ff1e1486799e3f64129f8ccad108b38290df9cd7015cd31bed17239f0789d6\"\ndependencies = [\"serde\", \"serde_json\", \"thiserror\", \"treediff\"]\n\n[[package]]\nname = \"json_env_logger\"\nversion = \"0.1.1\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"4e2ec540ea0448b187d3a8b4a9f13e75527d06ef76b3a2baa1cd982aecb62ce2\"\ndependencies = [\"env_logger\", \"kv-log-macro\", \"log\", \"serde_json\"]\n\n[[package]]\nname = \"kv-log-macro\"\nversion = \"1.0.7\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"0de8b303297635ad57c9f5059fd9cee7a47f8e8daa09df0fcd07dd39fb22977f\"\ndependencies = [\"log\"]\n\n[[package]]\nname = \"lazy_static\"\nversion = \"1.4.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646\"\ndependencies = [\"spin 0.5.2\"]\n\n[[package]]\nname = \"libc\"\nversion = \"0.2.153\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd\"\n\n[[package]]\nname = \"libm\"\nversion = \"0.2.8\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058\"\n\n[[package]]\nname = \"libsqlite3-sys\"\nversion = \"0.27.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"cf4e226dcd58b4be396f7bd3c20da8fdee2911400705297ba7d2d7cc2c30f716\"\ndependencies = [\"cc\", \"pkg-config\", \"vcpkg\"]\n\n[[package]]\nname = \"linux-raw-sys\"\nversion = \"0.3.8\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519\"\n\n[[package]]\nname = \"linux-raw-sys\"\nversion = \"0.4.13\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c\"\n\n[[package]]\nname = \"lock_api\"\nversion = \"0.4.11\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45\"\ndependencies = [\"autocfg\", \"scopeguard\"]\n\n[[package]]\nname = \"log\"\nversion = \"0.4.20\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f\"\ndependencies = [\"value-bag\"]\n\n[[package]]\nname = \"log-panics\"\nversion = \"2.1.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"68f9dd8546191c1850ecf67d22f5ff00a935b890d0e84713159a55495cc2ac5f\"\ndependencies = [\"backtrace\", \"log\"]\n\n[[package]]\nname = \"md-5\"\nversion = \"0.10.6\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"d89e7ee0cfbedfc4da3340218492196241d89eefb6dab27de5df917a6d2e78cf\"\ndependencies = [\"cfg-if\", \"digest\"]\n\n[[package]]\nname = \"memchr\"\nversion = \"2.7.1\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149\"\n\n[[package]]\nname = \"minimal-lexical\"\nversion = \"0.2.1\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a\"\n\n[[package]]\nname = \"miniz_oxide\"\nversion = \"0.7.2\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7\"\ndependencies = [\"adler\"]\n\n[[package]]\nname = \"native-tls\"\nversion = \"0.2.11\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e\"\ndependencies = [\"lazy_static\", \"libc\", \"log\", \"openssl\", \"openssl-probe\", \"openssl-sys\", \"schannel\", \"security-framework\", \"security-framework-sys\", \"tempfile\"]\n\n[[package]]\nname = \"nix\"\nversion = \"0.27.1\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"2eb04e9c688eff1c89d72b407f168cf79bb9e867a9d3323ed6c01519eb9cc053\"\ndependencies = [\"bitflags 2.4.2\", \"cfg-if\", \"libc\"]\n\n[[package]]\nname = \"nom\"\nversion = \"7.1.3\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a\"\ndependencies = [\"memchr\", \"minimal-lexical\"]\n\n[[package]]\nname = \"num-bigint\"\nversion = \"0.4.4\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0\"\ndependencies = [\"autocfg\", \"num-integer\", \"num-traits\"]\n\n[[package]]\nname = \"num-bigint-dig\"\nversion = \"0.8.4\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151\"\ndependencies = [\"byteorder\", \"lazy_static\", \"libm\", \"num-integer\", \"num-iter\", \"num-traits\", \"rand\", \"smallvec\", \"zeroize\"]\n\n[[package]]\nname = \"num-integer\"\nversion = \"0.1.46\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f\"\ndependencies = [\"num-traits\"]\n\n[[package]]\nname = \"num-iter\"\nversion = \"0.1.44\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"d869c01cc0c455284163fd0092f1f93835385ccab5a98a0dcc497b2f8bf055a9\"\ndependencies = [\"autocfg\", \"num-integer\", \"num-traits\"]\n\n[[package]]\nname = \"num-traits\"\nversion = \"0.2.18\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a\"\ndependencies = [\"autocfg\", \"libm\"]\n\n[[package]]\nname = \"object\"\nversion = \"0.32.2\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441\"\ndependencies = [\"memchr\"]\n\n[[package]]\nname = \"once_cell\"\nversion = \"1.19.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92\"\n\n[[package]]\nname = \"openssl\"\nversion = \"0.10.63\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"15c9d69dd87a29568d4d017cfe8ec518706046a05184e5aea92d0af890b803c8\"\ndependencies = [\"bitflags 2.4.2\", \"cfg-if\", \"foreign-types\", \"libc\", \"once_cell\", \"openssl-macros\", \"openssl-sys\"]\n\n[[package]]\nname = \"openssl-macros\"\nversion = \"0.1.1\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c\"\ndependencies = [\"proc-macro2\", \"quote\", \"syn 2.0.49\"]\n\n[[package]]\nname = \"openssl-probe\"\nversion = \"0.1.5\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf\"\n\n[[package]]\nname = \"openssl-sys\"\nversion = \"0.9.99\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"22e1bf214306098e4832460f797824c05d25aacdf896f64a985fb0fd992454ae\"\ndependencies = [\"cc\", \"libc\", \"pkg-config\", \"vcpkg\"]\n\n[[package]]\nname = \"parking\"\nversion = \"2.2.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"bb813b8af86854136c6922af0598d719255ecb2179515e6e7730d468f05c9cae\"\n\n[[package]]\nname = \"parking_lot\"\nversion = \"0.12.1\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f\"\ndependencies = [\"lock_api\", \"parking_lot_core\"]\n\n[[package]]\nname = \"parking_lot_core\"\nversion = \"0.9.9\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e\"\ndependencies = [\"cfg-if\", \"libc\", \"redox_syscall\", \"smallvec\", \"windows-targets 0.48.5\"]\n\n[[package]]\nname = \"parse-zoneinfo\"\nversion = \"0.3.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"c705f256449c60da65e11ff6626e0c16a0a0b96aaa348de61376b249bc340f41\"\ndependencies = [\"regex\"]\n\n[[package]]\nname = \"paste\"\nversion = \"1.0.14\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c\"\n\n[[package]]\nname = \"pem-rfc7468\"\nversion = \"0.7.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412\"\ndependencies = [\"base64ct\"]\n\n[[package]]\nname = \"percent-encoding\"\nversion = \"2.3.1\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e\"\n\n[[package]]\nname = \"phf\"\nversion = \"0.11.2\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc\"\ndependencies = [\"phf_shared\"]\n\n[[package]]\nname = \"phf_codegen\"\nversion = \"0.11.2\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"e8d39688d359e6b34654d328e262234662d16cc0f60ec8dcbe5e718709342a5a\"\ndependencies = [\"phf_generator\", \"phf_shared\"]\n\n[[package]]\nname = \"phf_generator\"\nversion = \"0.11.2\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0\"\ndependencies = [\"phf_shared\", \"rand\"]\n\n[[package]]\nname = \"phf_shared\"\nversion = \"0.11.2\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b\"\ndependencies = [\"siphasher\"]\n\n[[package]]\nname = \"pin-project-lite\"\nversion = \"0.2.13\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58\"\n\n[[package]]\nname = \"pin-utils\"\nversion = \"0.1.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184\"\n\n[[package]]\nname = \"piper\"\nversion = \"0.2.1\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"668d31b1c4eba19242f2088b2bf3316b82ca31082a8335764db4e083db7485d4\"\ndependencies = [\"atomic-waker\", \"fastrand 2.0.1\", \"futures-io\"]\n\n[[package]]\nname = \"pkcs1\"\nversion = \"0.7.5\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f\"\ndependencies = [\"der\", \"pkcs8\", \"spki\"]\n\n[[package]]\nname = \"pkcs8\"\nversion = \"0.10.2\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7\"\ndependencies = [\"der\", \"spki\"]\n\n[[package]]\nname = \"pkg-config\"\nversion = \"0.3.30\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"d231b230927b5e4ad203db57bbcbee2802f6bce620b1e4a9024a07d94e2907ec\"\n\n[[package]]\nname = \"polling\"\nversion = \"2.8.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce\"\ndependencies = [\"autocfg\", \"bitflags 1.3.2\", \"cfg-if\", \"concurrent-queue\", \"libc\", \"log\", \"pin-project-lite\", \"windows-sys 0.48.0\"]\n\n[[package]]\nname = \"polling\"\nversion = \"3.4.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"30054e72317ab98eddd8561db0f6524df3367636884b7b21b703e4b280a84a14\"\ndependencies = [\"cfg-if\", \"concurrent-queue\", \"pin-project-lite\", \"rustix 0.38.31\", \"tracing\", \"windows-sys 0.52.0\"]\n\n[[package]]\nname = \"ppv-lite86\"\nversion = \"0.2.17\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de\"\n\n[[package]]\nname = \"proc-macro2\"\nversion = \"1.0.78\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae\"\ndependencies = [\"unicode-ident\"]\n\n[[package]]\nname = \"quote\"\nversion = \"1.0.35\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef\"\ndependencies = [\"proc-macro2\"]\n\n[[package]]\nname = \"rand\"\nversion = \"0.8.5\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404\"\ndependencies = [\"libc\", \"rand_chacha\", \"rand_core\"]\n\n[[package]]\nname = \"rand_chacha\"\nversion = \"0.3.1\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88\"\ndependencies = [\"ppv-lite86\", \"rand_core\"]\n\n[[package]]\nname = \"rand_core\"\nversion = \"0.6.4\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c\"\ndependencies = [\"getrandom\"]\n\n[[package]]\nname = \"redox_syscall\"\nversion = \"0.4.1\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa\"\ndependencies = [\"bitflags 1.3.2\"]\n\n[[package]]\nname = \"regex\"\nversion = \"1.10.3\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15\"\ndependencies = [\"aho-corasick\", \"memchr\", \"regex-automata\", \"regex-syntax\"]\n\n[[package]]\nname = \"regex-automata\"\nversion = \"0.4.5\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd\"\ndependencies = [\"aho-corasick\", \"memchr\", \"regex-syntax\"]\n\n[[package]]\nname = \"regex-syntax\"\nversion = \"0.8.2\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f\"\n\n[[package]]\nname = \"ring\"\nversion = \"0.17.7\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"688c63d65483050968b2a8937f7995f443e27041a0f7700aa59b0822aedebb74\"\ndependencies = [\"cc\", \"getrandom\", \"libc\", \"spin 0.9.8\", \"untrusted\", \"windows-sys 0.48.0\"]\n\n[[package]]\nname = \"robinhood_scraper\"\nversion = \"0.0.1\"\ndependencies = [\"async-std\", \"bigdecimal\", \"chrono\", \"chrono-tz\", \"common\", \"dotenvy\", \"http\", \"http_client\", \"json_env_logger\", \"log\", \"log-panics\", \"serde\", \"serde_json\", \"sqlx\", \"url\"]\n\n[[package]]\nname = \"rsa\"\nversion = \"0.9.6\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"5d0e5124fcb30e76a7e79bfee683a2746db83784b86289f6251b54b7950a0dfc\"\ndependencies = [\"const-oid\", \"digest\", \"num-bigint-dig\", \"num-integer\", \"num-traits\", \"pkcs1\", \"pkcs8\", \"rand_core\", \"signature\", \"spki\", \"subtle\", \"zeroize\"]\n\n[[package]]\nname = \"rustc-demangle\"\nversion = \"0.1.23\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76\"\n\n[[package]]\nname = \"rustix\"\nversion = \"0.37.27\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"fea8ca367a3a01fe35e6943c400addf443c0f57670e6ec51196f71a4b8762dd2\"\ndependencies = [\"bitflags 1.3.2\", \"errno\", \"io-lifetimes\", \"libc\", \"linux-raw-sys 0.3.8\", \"windows-sys 0.48.0\"]\n\n[[package]]\nname = \"rustix\"\nversion = \"0.38.31\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949\"\ndependencies = [\"bitflags 2.4.2\", \"errno\", \"libc\", \"linux-raw-sys 0.4.13\", \"windows-sys 0.52.0\"]\n\n[[package]]\nname = \"rustls\"\nversion = \"0.21.10\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba\"\ndependencies = [\"log\", \"ring\", \"rustls-webpki\", \"sct\"]\n\n[[package]]\nname = \"rustls-pemfile\"\nversion = \"1.0.4\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"1c74cae0a4cf6ccbbf5f359f08efdf8ee7e1dc532573bf0db71968cb56b1448c\"\ndependencies = [\"base64\"]\n\n[[package]]\nname = \"rustls-webpki\"\nversion = \"0.101.7\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"8b6275d1ee7a1cd780b64aca7726599a1dbc893b1e64144529e55c3c2f745765\"\ndependencies = [\"ring\", \"untrusted\"]\n\n[[package]]\nname = \"ryu\"\nversion = \"1.0.16\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c\"\n\n[[package]]\nname = \"schannel\"\nversion = \"0.1.23\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534\"\ndependencies = [\"windows-sys 0.52.0\"]\n\n[[package]]\nname = \"scopeguard\"\nversion = \"1.2.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49\"\n\n[[package]]\nname = \"sct\"\nversion = \"0.7.1\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"da046153aa2352493d6cb7da4b6e5c0c057d8a1d0a9aa8560baffdd945acd414\"\ndependencies = [\"ring\", \"untrusted\"]\n\n[[package]]\nname = \"security-framework\"\nversion = \"2.9.2\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de\"\ndependencies = [\"bitflags 1.3.2\", \"core-foundation\", \"core-foundation-sys\", \"libc\", \"security-framework-sys\"]\n\n[[package]]\nname = \"security-framework-sys\"\nversion = \"2.9.1\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a\"\ndependencies = [\"core-foundation-sys\", \"libc\"]\n\n[[package]]\nname = \"serde\"\nversion = \"1.0.196\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32\"\ndependencies = [\"serde_derive\"]\n\n[[package]]\nname = \"serde_derive\"\nversion = \"1.0.196\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67\"\ndependencies = [\"proc-macro2\", \"quote\", \"syn 2.0.49\"]\n\n[[package]]\nname = \"serde_fmt\"\nversion = \"1.0.3\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"e1d4ddca14104cd60529e8c7f7ba71a2c8acd8f7f5cfcdc2faf97eeb7c3010a4\"\ndependencies = [\"serde\"]\n\n[[package]]\nname = \"serde_json\"\nversion = \"1.0.113\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"69801b70b1c3dac963ecb03a364ba0ceda9cf60c71cfe475e99864759c8b8a79\"\ndependencies = [\"itoa\", \"ryu\", \"serde\"]\n\n[[package]]\nname = \"sha1\"\nversion = \"0.10.6\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba\"\ndependencies = [\"cfg-if\", \"cpufeatures\", \"digest\"]\n\n[[package]]\nname = \"sha2\"\nversion = \"0.10.8\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8\"\ndependencies = [\"cfg-if\", \"cpufeatures\", \"digest\"]\n\n[[package]]\nname = \"signature\"\nversion = \"2.2.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de\"\ndependencies = [\"digest\", \"rand_core\"]\n\n[[package]]\nname = \"siphasher\"\nversion = \"0.3.11\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d\"\n\n[[package]]\nname = \"slab\"\nversion = \"0.4.9\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67\"\ndependencies = [\"autocfg\"]\n\n[[package]]\nname = \"smallvec\"\nversion = \"1.13.1\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7\"\n\n[[package]]\nname = \"socket2\"\nversion = \"0.4.10\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d\"\ndependencies = [\"libc\", \"winapi\"]\n\n[[package]]\nname = \"spin\"\nversion = \"0.5.2\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d\"\n\n[[package]]\nname = \"spin\"\nversion = \"0.9.8\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67\"\ndependencies = [\"lock_api\"]\n\n[[package]]\nname = \"spki\"\nversion = \"0.7.3\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d\"\ndependencies = [\"base64ct\", \"der\"]\n\n[[package]]\nname = \"sqlformat\"\nversion = \"0.2.3\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"ce81b7bd7c4493975347ef60d8c7e8b742d4694f4c49f93e0a12ea263938176c\"\ndependencies = [\"itertools\", \"nom\", \"unicode_categories\"]\n\n[[package]]\nname = \"sqlx\"\nversion = \"0.7.3\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"dba03c279da73694ef99763320dea58b51095dfe87d001b1d4b5fe78ba8763cf\"\ndependencies = [\"sqlx-core\", \"sqlx-macros\", \"sqlx-mysql\", \"sqlx-postgres\", \"sqlx-sqlite\"]\n\n[[package]]\nname = \"sqlx-core\"\nversion = \"0.7.3\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"d84b0a3c3739e220d94b3239fd69fb1f74bc36e16643423bd99de3b43c21bfbd\"\ndependencies = [\"ahash\", \"async-io 1.13.0\", \"async-std\", \"atoi\", \"bigdecimal\", \"byteorder\", \"bytes\", \"chrono\", \"crc\", \"crossbeam-queue\", \"dotenvy\", \"either\", \"event-listener 2.5.3\", \"futures-channel\", \"futures-core\", \"futures-intrusive\", \"futures-io\", \"futures-util\", \"hashlink\", \"hex\", \"indexmap\", \"log\", \"memchr\", \"once_cell\", \"paste\", \"percent-encoding\", \"serde\", \"serde_json\", \"sha2\", \"smallvec\", \"sqlformat\", \"thiserror\", \"tracing\", \"url\"]\n\n[[package]]\nname = \"sqlx-macros\"\nversion = \"0.7.3\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"89961c00dc4d7dffb7aee214964b065072bff69e36ddb9e2c107541f75e4f2a5\"\ndependencies = [\"proc-macro2\", \"quote\", \"sqlx-core\", \"sqlx-macros-core\", \"syn 1.0.109\"]\n\n[[package]]\nname = \"sqlx-macros-core\"\nversion = \"0.7.3\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"d0bd4519486723648186a08785143599760f7cc81c52334a55d6a83ea1e20841\"\ndependencies = [\"async-std\", \"atomic-write-file\", \"dotenvy\", \"either\", \"heck\", \"hex\", \"once_cell\", \"proc-macro2\", \"quote\", \"serde\", \"serde_json\", \"sha2\", \"sqlx-core\", \"sqlx-mysql\", \"sqlx-postgres\", \"sqlx-sqlite\", \"syn 1.0.109\", \"tempfile\", \"url\"]\n\n[[package]]\nname = \"sqlx-mysql\"\nversion = \"0.7.3\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"e37195395df71fd068f6e2082247891bc11e3289624bbc776a0cdfa1ca7f1ea4\"\ndependencies = [\"atoi\", \"base64\", \"bigdecimal\", \"bitflags 2.4.2\", \"byteorder\", \"bytes\", \"chrono\", \"crc\", \"digest\", \"dotenvy\", \"either\", \"futures-channel\", \"futures-core\", \"futures-io\", \"futures-util\", \"generic-array\", \"hex\", \"hkdf\", \"hmac\", \"itoa\", \"log\", \"md-5\", \"memchr\", \"once_cell\", \"percent-encoding\", \"rand\", \"rsa\", \"serde\", \"sha1\", \"sha2\", \"smallvec\", \"sqlx-core\", \"stringprep\", \"thiserror\", \"tracing\", \"whoami\"]\n\n[[package]]\nname = \"sqlx-postgres\"\nversion = \"0.7.3\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"d6ac0ac3b7ccd10cc96c7ab29791a7dd236bd94021f31eec7ba3d46a74aa1c24\"\ndependencies = [\"atoi\", \"base64\", \"bigdecimal\", \"bitflags 2.4.2\", \"byteorder\", \"chrono\", \"crc\", \"dotenvy\", \"etcetera\", \"futures-channel\", \"futures-core\", \"futures-io\", \"futures-util\", \"hex\", \"hkdf\", \"hmac\", \"home\", \"itoa\", \"log\", \"md-5\", \"memchr\", \"num-bigint\", \"once_cell\", \"rand\", \"serde\", \"serde_json\", \"sha1\", \"sha2\", \"smallvec\", \"sqlx-core\", \"stringprep\", \"thiserror\", \"tracing\", \"whoami\"]\n\n[[package]]\nname = \"sqlx-sqlite\"\nversion = \"0.7.3\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"210976b7d948c7ba9fced8ca835b11cbb2d677c59c79de41ac0d397e14547490\"\ndependencies = [\"atoi\", \"chrono\", \"flume\", \"futures-channel\", \"futures-core\", \"futures-executor\", \"futures-intrusive\", \"futures-util\", \"libsqlite3-sys\", \"log\", \"percent-encoding\", \"serde\", \"sqlx-core\", \"tracing\", \"url\", \"urlencoding\"]\n\n[[package]]\nname = \"stringprep\"\nversion = \"0.1.4\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"bb41d74e231a107a1b4ee36bd1214b11285b77768d2e3824aedafa988fd36ee6\"\ndependencies = [\"finl_unicode\", \"unicode-bidi\", \"unicode-normalization\"]\n\n[[package]]\nname = \"subtle\"\nversion = \"2.5.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc\"\n\n[[package]]\nname = \"sval\"\nversion = \"2.11.1\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"82a2386bea23a121e4e72450306b1dd01078b6399af11b93897bf84640a28a59\"\n\n[[package]]\nname = \"sval_buffer\"\nversion = \"2.11.1\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"b16c047898a0e19002005512243bc9ef1c1037aad7d03d6c594e234efec80795\"\ndependencies = [\"sval\", \"sval_ref\"]\n\n[[package]]\nname = \"sval_dynamic\"\nversion = \"2.11.1\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"a74fb116e2ecdcb280b0108aa2ee4434df50606c3208c47ac95432730eaac20c\"\ndependencies = [\"sval\"]\n\n[[package]]\nname = \"sval_fmt\"\nversion = \"2.11.1\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"10837b4f0feccef271b2b1c03784e08f6d0bb6d23272ec9e8c777bfadbb8f1b8\"\ndependencies = [\"itoa\", \"ryu\", \"sval\"]\n\n[[package]]\nname = \"sval_json\"\nversion = \"2.11.1\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"891f5ecdf34ce61a8ab2d10f9cfdc303347b0afec4dad6702757419d2d8312a9\"\ndependencies = [\"itoa\", \"ryu\", \"sval\"]\n\n[[package]]\nname = \"sval_nested\"\nversion = \"2.11.1\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"63fcffb4b79c531f38e3090788b64f3f4d54a180aacf02d69c42fa4e4bf284c3\"\ndependencies = [\"sval\", \"sval_buffer\", \"sval_ref\"]\n\n[[package]]\nname = \"sval_ref\"\nversion = \"2.11.1\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"af725f9c2aa7cec4ca9c47da2cc90920c4c82d3fa537094c66c77a5459f5809d\"\ndependencies = [\"sval\"]\n\n[[package]]\nname = \"sval_serde\"\nversion = \"2.11.1\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"3d7589c649a03d21df40b9a926787d2c64937fa1dccec8d87c6cd82989a2e0a4\"\ndependencies = [\"serde\", \"sval\", \"sval_nested\"]\n\n[[package]]\nname = \"syn\"\nversion = \"1.0.109\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237\"\ndependencies = [\"proc-macro2\", \"quote\", \"unicode-ident\"]\n\n[[package]]\nname = \"syn\"\nversion = \"2.0.49\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"915aea9e586f80826ee59f8453c1101f9d1c4b3964cd2460185ee8e299ada496\"\ndependencies = [\"proc-macro2\", \"quote\", \"unicode-ident\"]\n\n[[package]]\nname = \"tempfile\"\nversion = \"3.10.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"a365e8cd18e44762ef95d87f284f4b5cd04107fec2ff3052bd6a3e6069669e67\"\ndependencies = [\"cfg-if\", \"fastrand 2.0.1\", \"rustix 0.38.31\", \"windows-sys 0.52.0\"]\n\n[[package]]\nname = \"thinkorswim_scraper\"\nversion = \"0.0.1\"\ndependencies = [\"async-native-tls\", \"async-std\", \"async-tungstenite\", \"bigdecimal\", \"chrono\", \"chrono-tz\", \"common\", \"dotenvy\", \"futures\", \"http\", \"json-patch\", \"json_env_logger\", \"log\", \"log-panics\", \"once_cell\", \"serde\", \"serde_json\", \"sqlx\"]\n\n[[package]]\nname = \"thiserror\"\nversion = \"1.0.57\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"1e45bcbe8ed29775f228095caf2cd67af7a4ccf756ebff23a306bf3e8b47b24b\"\ndependencies = [\"thiserror-impl\"]\n\n[[package]]\nname = \"thiserror-impl\"\nversion = \"1.0.57\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"a953cb265bef375dae3de6663da4d3804eee9682ea80d8e2542529b73c531c81\"\ndependencies = [\"proc-macro2\", \"quote\", \"syn 2.0.49\"]\n\n[[package]]\nname = \"tinyvec\"\nversion = \"1.6.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50\"\ndependencies = [\"tinyvec_macros\"]\n\n[[package]]\nname = \"tinyvec_macros\"\nversion = \"0.1.1\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20\"\n\n[[package]]\nname = \"tracing\"\nversion = \"0.1.40\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef\"\ndependencies = [\"log\", \"pin-project-lite\", \"tracing-attributes\", \"tracing-core\"]\n\n[[package]]\nname = \"tracing-attributes\"\nversion = \"0.1.27\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7\"\ndependencies = [\"proc-macro2\", \"quote\", \"syn 2.0.49\"]\n\n[[package]]\nname = \"tracing-core\"\nversion = \"0.1.32\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54\"\ndependencies = [\"once_cell\"]\n\n[[package]]\nname = \"treediff\"\nversion = \"4.0.3\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"4d127780145176e2b5d16611cc25a900150e86e9fd79d3bde6ff3a37359c9cb5\"\ndependencies = [\"serde_json\"]\n\n[[package]]\nname = \"tungstenite\"\nversion = \"0.21.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"9ef1a641ea34f399a848dea702823bbecfb4c486f911735368f1f137cb8257e1\"\ndependencies = [\"byteorder\", \"bytes\", \"data-encoding\", \"http\", \"httparse\", \"log\", \"native-tls\", \"rand\", \"sha1\", \"thiserror\", \"url\", \"utf-8\"]\n\n[[package]]\nname = \"typenum\"\nversion = \"1.17.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825\"\n\n[[package]]\nname = \"unicode-bidi\"\nversion = \"0.3.15\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75\"\n\n[[package]]\nname = \"unicode-ident\"\nversion = \"1.0.12\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b\"\n\n[[package]]\nname = \"unicode-normalization\"\nversion = \"0.1.22\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921\"\ndependencies = [\"tinyvec\"]\n\n[[package]]\nname = \"unicode-segmentation\"\nversion = \"1.11.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"d4c87d22b6e3f4a18d4d40ef354e97c90fcb14dd91d7dc0aa9d8a1172ebf7202\"\n\n[[package]]\nname = \"unicode_categories\"\nversion = \"0.1.1\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"39ec24b3121d976906ece63c9daad25b85969647682eee313cb5779fdd69e14e\"\n\n[[package]]\nname = \"untrusted\"\nversion = \"0.9.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1\"\n\n[[package]]\nname = \"url\"\nversion = \"2.5.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633\"\ndependencies = [\"form_urlencoded\", \"idna\", \"percent-encoding\"]\n\n[[package]]\nname = \"urlencoding\"\nversion = \"2.1.3\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"daf8dba3b7eb870caf1ddeed7bc9d2a049f3cfdfae7cb521b087cc33ae4c49da\"\n\n[[package]]\nname = \"utf-8\"\nversion = \"0.7.6\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9\"\n\n[[package]]\nname = \"value-bag\"\nversion = \"1.7.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"126e423afe2dd9ac52142e7e9d5ce4135d7e13776c529d27fd6bc49f19e3280b\"\ndependencies = [\"value-bag-serde1\", \"value-bag-sval2\"]\n\n[[package]]\nname = \"value-bag-serde1\"\nversion = \"1.7.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"ede32f342edc46e84bd41fd394ce2192b553de11725dd83b6223150610c21b44\"\ndependencies = [\"erased-serde\", \"serde\", \"serde_fmt\"]\n\n[[package]]\nname = \"value-bag-sval2\"\nversion = \"1.7.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"0024e44b25144c2f4d0ed35d39688e0090d57753e20fef38d08e0c1a40bdf23d\"\ndependencies = [\"sval\", \"sval_buffer\", \"sval_dynamic\", \"sval_fmt\", \"sval_json\", \"sval_ref\", \"sval_serde\"]\n\n[[package]]\nname = \"vcpkg\"\nversion = \"0.2.15\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426\"\n\n[[package]]\nname = \"version_check\"\nversion = \"0.9.4\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f\"\n\n[[package]]\nname = \"waker-fn\"\nversion = \"1.1.1\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"f3c4517f54858c779bbcbf228f4fca63d121bf85fbecb2dc578cdf4a39395690\"\n\n[[package]]\nname = \"wasi\"\nversion = \"0.11.0+wasi-snapshot-preview1\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423\"\n\n[[package]]\nname = \"wasm-bindgen\"\nversion = \"0.2.91\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"c1e124130aee3fb58c5bdd6b639a0509486b0338acaaae0c84a5124b0f588b7f\"\ndependencies = [\"cfg-if\", \"wasm-bindgen-macro\"]\n\n[[package]]\nname = \"wasm-bindgen-backend\"\nversion = \"0.2.91\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"c9e7e1900c352b609c8488ad12639a311045f40a35491fb69ba8c12f758af70b\"\ndependencies = [\"bumpalo\", \"log\", \"once_cell\", \"proc-macro2\", \"quote\", \"syn 2.0.49\", \"wasm-bindgen-shared\"]\n\n[[package]]\nname = \"wasm-bindgen-futures\"\nversion = \"0.4.41\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"877b9c3f61ceea0e56331985743b13f3d25c406a7098d45180fb5f09bc19ed97\"\ndependencies = [\"cfg-if\", \"js-sys\", \"wasm-bindgen\", \"web-sys\"]\n\n[[package]]\nname = \"wasm-bindgen-macro\"\nversion = \"0.2.91\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"b30af9e2d358182b5c7449424f017eba305ed32a7010509ede96cdc4696c46ed\"\ndependencies = [\"quote\", \"wasm-bindgen-macro-support\"]\n\n[[package]]\nname = \"wasm-bindgen-macro-support\"\nversion = \"0.2.91\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"642f325be6301eb8107a83d12a8ac6c1e1c54345a7ef1a9261962dfefda09e66\"\ndependencies = [\"proc-macro2\", \"quote\", \"syn 2.0.49\", \"wasm-bindgen-backend\", \"wasm-bindgen-shared\"]\n\n[[package]]\nname = \"wasm-bindgen-shared\"\nversion = \"0.2.91\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"4f186bd2dcf04330886ce82d6f33dd75a7bfcf69ecf5763b89fcde53b6ac9838\"\n\n[[package]]\nname = \"web-sys\"\nversion = \"0.3.68\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"96565907687f7aceb35bc5fc03770a8a0471d82e479f25832f54a0e3f4b28446\"\ndependencies = [\"js-sys\", \"wasm-bindgen\"]\n\n[[package]]\nname = \"webpki\"\nversion = \"0.22.4\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"ed63aea5ce73d0ff405984102c42de94fc55a6b75765d621c65262469b3c9b53\"\ndependencies = [\"ring\", \"untrusted\"]\n\n[[package]]\nname = \"webpki-roots\"\nversion = \"0.22.6\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"b6c71e40d7d2c34a5106301fb632274ca37242cd0c9d3e64dbece371a40a2d87\"\ndependencies = [\"webpki\"]\n\n[[package]]\nname = \"whoami\"\nversion = \"1.4.1\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"22fc3756b8a9133049b26c7f61ab35416c130e8c09b660f5b3958b446f52cc50\"\n\n[[package]]\nname = \"winapi\"\nversion = \"0.3.9\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419\"\ndependencies = [\"winapi-i686-pc-windows-gnu\", \"winapi-x86_64-pc-windows-gnu\"]\n\n[[package]]\nname = \"winapi-i686-pc-windows-gnu\"\nversion = \"0.4.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6\"\n\n[[package]]\nname = \"winapi-x86_64-pc-windows-gnu\"\nversion = \"0.4.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f\"\n\n[[package]]\nname = \"windows-core\"\nversion = \"0.52.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9\"\ndependencies = [\"windows-targets 0.52.0\"]\n\n[[package]]\nname = \"windows-sys\"\nversion = \"0.48.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9\"\ndependencies = [\"windows-targets 0.48.5\"]\n\n[[package]]\nname = \"windows-sys\"\nversion = \"0.52.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d\"\ndependencies = [\"windows-targets 0.52.0\"]\n\n[[package]]\nname = \"windows-targets\"\nversion = \"0.48.5\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c\"\ndependencies = [\"windows_aarch64_gnullvm 0.48.5\", \"windows_aarch64_msvc 0.48.5\", \"windows_i686_gnu 0.48.5\", \"windows_i686_msvc 0.48.5\", \"windows_x86_64_gnu 0.48.5\", \"windows_x86_64_gnullvm 0.48.5\", \"windows_x86_64_msvc 0.48.5\"]\n\n[[package]]\nname = \"windows-targets\"\nversion = \"0.52.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd\"\ndependencies = [\"windows_aarch64_gnullvm 0.52.0\", \"windows_aarch64_msvc 0.52.0\", \"windows_i686_gnu 0.52.0\", \"windows_i686_msvc 0.52.0\", \"windows_x86_64_gnu 0.52.0\", \"windows_x86_64_gnullvm 0.52.0\", \"windows_x86_64_msvc 0.52.0\"]\n\n[[package]]\nname = \"windows_aarch64_gnullvm\"\nversion = \"0.48.5\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8\"\n\n[[package]]\nname = \"windows_aarch64_gnullvm\"\nversion = \"0.52.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea\"\n\n[[package]]\nname = \"windows_aarch64_msvc\"\nversion = \"0.48.5\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc\"\n\n[[package]]\nname = \"windows_aarch64_msvc\"\nversion = \"0.52.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef\"\n\n[[package]]\nname = \"windows_i686_gnu\"\nversion = \"0.48.5\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e\"\n\n[[package]]\nname = \"windows_i686_gnu\"\nversion = \"0.52.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313\"\n\n[[package]]\nname = \"windows_i686_msvc\"\nversion = \"0.48.5\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406\"\n\n[[package]]\nname = \"windows_i686_msvc\"\nversion = \"0.52.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a\"\n\n[[package]]\nname = \"windows_x86_64_gnu\"\nversion = \"0.48.5\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e\"\n\n[[package]]\nname = \"windows_x86_64_gnu\"\nversion = \"0.52.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd\"\n\n[[package]]\nname = \"windows_x86_64_gnullvm\"\nversion = \"0.48.5\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc\"\n\n[[package]]\nname = \"windows_x86_64_gnullvm\"\nversion = \"0.52.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e\"\n\n[[package]]\nname = \"windows_x86_64_msvc\"\nversion = \"0.48.5\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538\"\n\n[[package]]\nname = \"windows_x86_64_msvc\"\nversion = \"0.52.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04\"\n\n[[package]]\nname = \"zerocopy\"\nversion = \"0.7.32\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be\"\ndependencies = [\"zerocopy-derive\"]\n\n[[package]]\nname = \"zerocopy-derive\"\nversion = \"0.7.32\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6\"\ndependencies = [\"proc-macro2\", \"quote\", \"syn 2.0.49\"]\n\n[[package]]\nname = \"zeroize\"\nversion = \"1.7.0\"\nsource = \"registry+https://github.com/rust-lang/crates.io-index\"\nchecksum = \"525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d\"\n"
  }
}

I think this is the same issue you have (I would not expect recipe.json output to talk about thinkorswim_scraper because I supplied --bin robinhood_scraper) but I'm not using nested directories...