diff --git a/WORKSPACE b/WORKSPACE index c95d7623f..2ac284a44 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -249,6 +249,21 @@ crate_universe_dependencies() load("@rules_rust//crate_universe:defs.bzl", "crates_repository") +# If we don't specify which platforms to build, rust_*_library targets will +# select() across platforms that are not guaranteed to exist in the local Bazel, +# which breaks the build. +# +# This is probably a Bazel bug, because rules_rust +# specifies the correct module dependency and Bazel just ignores it and fetches +# an old version. +# +# TODO(the80srobot): Find the right Bazel subproject and file a bug. +RUST_SUPPORTED_PLATFORM_TRIPLES = [ + "i686-apple-darwin", + "x86_64-apple-darwin", + "aarch64-apple-darwin", +] + crates_repository( name = "crate_index", cargo_lockfile = "//:Cargo.lock", @@ -259,15 +274,32 @@ crates_repository( # the root Cargo file. "//:Source/santad/Logs/EndpointSecurity/ParquetLogger/Cargo.toml", ], - # Removing this causes rust_*_library targets to select across platforms that - # might not be defined, breaking the build. - supported_platform_triples = [ - "i686-apple-darwin", - "x86_64-apple-darwin", - "aarch64-apple-darwin", - ], + supported_platform_triples = RUST_SUPPORTED_PLATFORM_TRIPLES, ) load("@crate_index//:defs.bzl", "crate_repositories") crate_repositories() + +# cxxbridge is a codegen tool for Rust/C++ bindings. To understand why this is +# set up the way it is, read +# http://bazelbuild.github.io/rules_rust/crate_universe.html#binary-dependencies. +http_archive( + name = "cxxbridge-cmd", + build_file = "//external_patches/cxxbridge-cmd:BUILD", + sha256 = "dc5db43c367778010dff55b602f71eccff712b8edf54a3f08687bd1c7cbad6df", + strip_prefix = "cxxbridge-cmd-1.0.110", + type = "tar.gz", + urls = ["https://crates.io/api/v1/crates/cxxbridge-cmd/1.0.110/download"], +) + +# See above for notes. +crates_repository( + name = "cxxbridge_cmd_deps", + cargo_lockfile = "//external_patches/cxxbridge-cmd:Cargo.lock", + lockfile = "//external_patches/cxxbridge-cmd:Cargo.Bazel.lock", + manifests = ["@cxxbridge-cmd//:Cargo.toml"], + supported_platform_triples = RUST_SUPPORTED_PLATFORM_TRIPLES, +) +load("@cxxbridge_cmd_deps//:defs.bzl", cxxbridge_cmd_deps = "crate_repositories") +cxxbridge_cmd_deps() diff --git a/external_patches/cxxbridge-cmd/BUILD b/external_patches/cxxbridge-cmd/BUILD new file mode 100644 index 000000000..c5b654f70 --- /dev/null +++ b/external_patches/cxxbridge-cmd/BUILD @@ -0,0 +1,19 @@ +load("@cxxbridge_cmd_deps//:defs.bzl", "aliases", "all_crate_deps") +load("@rules_rust//rust:defs.bzl", "rust_binary") + +licenses(["notice"]) + +# cxxbridge-cmd is a codegen tool for cxx. +# +# Note that you must build this target as @cxxbridge-cmd//:cxxbridge-cmd, not as +# //external_patches/cxxbridge-cmd:cxxbridge-cmd or any other path. +rust_binary( + name = "cxxbridge-cmd", + srcs = glob(["src/**/*.rs"]), + data = [ + "src/gen/include/cxx.h", + ], + edition = "2021", + aliases = aliases(), + deps = all_crate_deps(), +) diff --git a/external_patches/cxxbridge-cmd/Cargo.Bazel.lock b/external_patches/cxxbridge-cmd/Cargo.Bazel.lock new file mode 100644 index 000000000..ef85d37cf --- /dev/null +++ b/external_patches/cxxbridge-cmd/Cargo.Bazel.lock @@ -0,0 +1,788 @@ +{ + "checksum": "3fb76a2b424dc7b23c83784d2b187d9b64c70d142c8ef6738119727803256bdb", + "crates": { + "anstyle 1.0.4": { + "name": "anstyle", + "version": "1.0.4", + "repository": { + "Http": { + "url": "https://crates.io/api/v1/crates/anstyle/1.0.4/download", + "sha256": "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87" + } + }, + "targets": [ + { + "Library": { + "crate_name": "anstyle", + "crate_root": "src/lib.rs", + "srcs": [ + "**/*.rs" + ] + } + } + ], + "library_target_name": "anstyle", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "std" + ], + "selects": {} + }, + "edition": "2021", + "version": "1.0.4" + }, + "license": "MIT OR Apache-2.0" + }, + "clap 4.4.10": { + "name": "clap", + "version": "4.4.10", + "repository": { + "Http": { + "url": "https://crates.io/api/v1/crates/clap/4.4.10/download", + "sha256": "41fffed7514f420abec6d183b1d3acfd9099c79c3a10a06ade4f8203f1411272" + } + }, + "targets": [ + { + "Library": { + "crate_name": "clap", + "crate_root": "src/lib.rs", + "srcs": [ + "**/*.rs" + ] + } + } + ], + "library_target_name": "clap", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "error-context", + "help", + "std", + "suggestions", + "usage" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "clap_builder 4.4.9", + "target": "clap_builder" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "4.4.10" + }, + "license": "MIT OR Apache-2.0" + }, + "clap_builder 4.4.9": { + "name": "clap_builder", + "version": "4.4.9", + "repository": { + "Http": { + "url": "https://crates.io/api/v1/crates/clap_builder/4.4.9/download", + "sha256": "63361bae7eef3771745f02d8d892bec2fee5f6e34af316ba556e7f97a7069ff1" + } + }, + "targets": [ + { + "Library": { + "crate_name": "clap_builder", + "crate_root": "src/lib.rs", + "srcs": [ + "**/*.rs" + ] + } + } + ], + "library_target_name": "clap_builder", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "error-context", + "help", + "std", + "suggestions", + "usage" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "anstyle 1.0.4", + "target": "anstyle" + }, + { + "id": "clap_lex 0.6.0", + "target": "clap_lex" + }, + { + "id": "strsim 0.10.0", + "target": "strsim" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "4.4.9" + }, + "license": "MIT OR Apache-2.0" + }, + "clap_lex 0.6.0": { + "name": "clap_lex", + "version": "0.6.0", + "repository": { + "Http": { + "url": "https://crates.io/api/v1/crates/clap_lex/0.6.0/download", + "sha256": "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1" + } + }, + "targets": [ + { + "Library": { + "crate_name": "clap_lex", + "crate_root": "src/lib.rs", + "srcs": [ + "**/*.rs" + ] + } + } + ], + "library_target_name": "clap_lex", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2021", + "version": "0.6.0" + }, + "license": "MIT OR Apache-2.0" + }, + "codespan-reporting 0.11.1": { + "name": "codespan-reporting", + "version": "0.11.1", + "repository": { + "Http": { + "url": "https://crates.io/api/v1/crates/codespan-reporting/0.11.1/download", + "sha256": "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" + } + }, + "targets": [ + { + "Library": { + "crate_name": "codespan_reporting", + "crate_root": "src/lib.rs", + "srcs": [ + "**/*.rs" + ] + } + } + ], + "library_target_name": "codespan_reporting", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "termcolor 1.4.0", + "target": "termcolor" + }, + { + "id": "unicode-width 0.1.11", + "target": "unicode_width" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "0.11.1" + }, + "license": "Apache-2.0" + }, + "cxxbridge-cmd 1.0.110": { + "name": "cxxbridge-cmd", + "version": "1.0.110", + "repository": null, + "targets": [], + "library_target_name": null, + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "clap 4.4.10", + "target": "clap" + }, + { + "id": "codespan-reporting 0.11.1", + "target": "codespan_reporting" + }, + { + "id": "proc-macro2 1.0.70", + "target": "proc_macro2" + }, + { + "id": "quote 1.0.33", + "target": "quote" + }, + { + "id": "syn 2.0.39", + "target": "syn" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "1.0.110" + }, + "license": "MIT OR Apache-2.0" + }, + "proc-macro2 1.0.70": { + "name": "proc-macro2", + "version": "1.0.70", + "repository": { + "Http": { + "url": "https://crates.io/api/v1/crates/proc-macro2/1.0.70/download", + "sha256": "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b" + } + }, + "targets": [ + { + "Library": { + "crate_name": "proc_macro2", + "crate_root": "src/lib.rs", + "srcs": [ + "**/*.rs" + ] + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": [ + "**/*.rs" + ] + } + } + ], + "library_target_name": "proc_macro2", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "span-locations" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "proc-macro2 1.0.70", + "target": "build_script_build" + }, + { + "id": "unicode-ident 1.0.12", + "target": "unicode_ident" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "1.0.70" + }, + "build_script_attrs": { + "data_glob": [ + "**" + ] + }, + "license": "MIT OR Apache-2.0" + }, + "quote 1.0.33": { + "name": "quote", + "version": "1.0.33", + "repository": { + "Http": { + "url": "https://crates.io/api/v1/crates/quote/1.0.33/download", + "sha256": "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" + } + }, + "targets": [ + { + "Library": { + "crate_name": "quote", + "crate_root": "src/lib.rs", + "srcs": [ + "**/*.rs" + ] + } + } + ], + "library_target_name": "quote", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "proc-macro2 1.0.70", + "target": "proc_macro2" + } + ], + "selects": {} + }, + "edition": "2018", + "version": "1.0.33" + }, + "license": "MIT OR Apache-2.0" + }, + "strsim 0.10.0": { + "name": "strsim", + "version": "0.10.0", + "repository": { + "Http": { + "url": "https://crates.io/api/v1/crates/strsim/0.10.0/download", + "sha256": "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" + } + }, + "targets": [ + { + "Library": { + "crate_name": "strsim", + "crate_root": "src/lib.rs", + "srcs": [ + "**/*.rs" + ] + } + } + ], + "library_target_name": "strsim", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2015", + "version": "0.10.0" + }, + "license": "MIT" + }, + "syn 2.0.39": { + "name": "syn", + "version": "2.0.39", + "repository": { + "Http": { + "url": "https://crates.io/api/v1/crates/syn/2.0.39/download", + "sha256": "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" + } + }, + "targets": [ + { + "Library": { + "crate_name": "syn", + "crate_root": "src/lib.rs", + "srcs": [ + "**/*.rs" + ] + } + } + ], + "library_target_name": "syn", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "clone-impls", + "full", + "parsing", + "printing", + "quote" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "proc-macro2 1.0.70", + "target": "proc_macro2" + }, + { + "id": "quote 1.0.33", + "target": "quote" + }, + { + "id": "unicode-ident 1.0.12", + "target": "unicode_ident" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "2.0.39" + }, + "license": "MIT OR Apache-2.0" + }, + "termcolor 1.4.0": { + "name": "termcolor", + "version": "1.4.0", + "repository": { + "Http": { + "url": "https://crates.io/api/v1/crates/termcolor/1.4.0/download", + "sha256": "ff1bc3d3f05aff0403e8ac0d92ced918ec05b666a43f83297ccef5bea8a3d449" + } + }, + "targets": [ + { + "Library": { + "crate_name": "termcolor", + "crate_root": "src/lib.rs", + "srcs": [ + "**/*.rs" + ] + } + } + ], + "library_target_name": "termcolor", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [], + "selects": { + "cfg(windows)": [ + { + "id": "winapi-util 0.1.6", + "target": "winapi_util" + } + ] + } + }, + "edition": "2018", + "version": "1.4.0" + }, + "license": "Unlicense OR MIT" + }, + "unicode-ident 1.0.12": { + "name": "unicode-ident", + "version": "1.0.12", + "repository": { + "Http": { + "url": "https://crates.io/api/v1/crates/unicode-ident/1.0.12/download", + "sha256": "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + } + }, + "targets": [ + { + "Library": { + "crate_name": "unicode_ident", + "crate_root": "src/lib.rs", + "srcs": [ + "**/*.rs" + ] + } + } + ], + "library_target_name": "unicode_ident", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "edition": "2018", + "version": "1.0.12" + }, + "license": "(MIT OR Apache-2.0) AND Unicode-DFS-2016" + }, + "unicode-width 0.1.11": { + "name": "unicode-width", + "version": "0.1.11", + "repository": { + "Http": { + "url": "https://crates.io/api/v1/crates/unicode-width/0.1.11/download", + "sha256": "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85" + } + }, + "targets": [ + { + "Library": { + "crate_name": "unicode_width", + "crate_root": "src/lib.rs", + "srcs": [ + "**/*.rs" + ] + } + } + ], + "library_target_name": "unicode_width", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default" + ], + "selects": {} + }, + "edition": "2015", + "version": "0.1.11" + }, + "license": "MIT/Apache-2.0" + }, + "winapi 0.3.9": { + "name": "winapi", + "version": "0.3.9", + "repository": { + "Http": { + "url": "https://crates.io/api/v1/crates/winapi/0.3.9/download", + "sha256": "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" + } + }, + "targets": [ + { + "Library": { + "crate_name": "winapi", + "crate_root": "src/lib.rs", + "srcs": [ + "**/*.rs" + ] + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": [ + "**/*.rs" + ] + } + } + ], + "library_target_name": "winapi", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "winapi 0.3.9", + "target": "build_script_build" + } + ], + "selects": { + "i686-pc-windows-gnu": [ + { + "id": "winapi-i686-pc-windows-gnu 0.4.0", + "target": "winapi_i686_pc_windows_gnu" + } + ], + "x86_64-pc-windows-gnu": [ + { + "id": "winapi-x86_64-pc-windows-gnu 0.4.0", + "target": "winapi_x86_64_pc_windows_gnu" + } + ] + } + }, + "edition": "2015", + "version": "0.3.9" + }, + "build_script_attrs": { + "data_glob": [ + "**" + ] + }, + "license": "MIT/Apache-2.0" + }, + "winapi-i686-pc-windows-gnu 0.4.0": { + "name": "winapi-i686-pc-windows-gnu", + "version": "0.4.0", + "repository": { + "Http": { + "url": "https://crates.io/api/v1/crates/winapi-i686-pc-windows-gnu/0.4.0/download", + "sha256": "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + } + }, + "targets": [ + { + "Library": { + "crate_name": "winapi_i686_pc_windows_gnu", + "crate_root": "src/lib.rs", + "srcs": [ + "**/*.rs" + ] + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": [ + "**/*.rs" + ] + } + } + ], + "library_target_name": "winapi_i686_pc_windows_gnu", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "winapi-i686-pc-windows-gnu 0.4.0", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2015", + "version": "0.4.0" + }, + "build_script_attrs": { + "data_glob": [ + "**" + ] + }, + "license": "MIT/Apache-2.0" + }, + "winapi-util 0.1.6": { + "name": "winapi-util", + "version": "0.1.6", + "repository": { + "Http": { + "url": "https://crates.io/api/v1/crates/winapi-util/0.1.6/download", + "sha256": "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" + } + }, + "targets": [ + { + "Library": { + "crate_name": "winapi_util", + "crate_root": "src/lib.rs", + "srcs": [ + "**/*.rs" + ] + } + } + ], + "library_target_name": "winapi_util", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [], + "selects": { + "cfg(windows)": [ + { + "id": "winapi 0.3.9", + "target": "winapi" + } + ] + } + }, + "edition": "2021", + "version": "0.1.6" + }, + "license": "Unlicense/MIT" + }, + "winapi-x86_64-pc-windows-gnu 0.4.0": { + "name": "winapi-x86_64-pc-windows-gnu", + "version": "0.4.0", + "repository": { + "Http": { + "url": "https://crates.io/api/v1/crates/winapi-x86_64-pc-windows-gnu/0.4.0/download", + "sha256": "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + } + }, + "targets": [ + { + "Library": { + "crate_name": "winapi_x86_64_pc_windows_gnu", + "crate_root": "src/lib.rs", + "srcs": [ + "**/*.rs" + ] + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": [ + "**/*.rs" + ] + } + } + ], + "library_target_name": "winapi_x86_64_pc_windows_gnu", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "deps": { + "common": [ + { + "id": "winapi-x86_64-pc-windows-gnu 0.4.0", + "target": "build_script_build" + } + ], + "selects": {} + }, + "edition": "2015", + "version": "0.4.0" + }, + "build_script_attrs": { + "data_glob": [ + "**" + ] + }, + "license": "MIT/Apache-2.0" + } + }, + "binary_crates": [], + "workspace_members": { + "cxxbridge-cmd 1.0.110": "" + }, + "conditions": { + "aarch64-apple-darwin": [ + "aarch64-apple-darwin" + ], + "cfg(windows)": [], + "i686-apple-darwin": [ + "i686-apple-darwin" + ], + "i686-pc-windows-gnu": [], + "x86_64-apple-darwin": [ + "x86_64-apple-darwin" + ], + "x86_64-pc-windows-gnu": [] + } +} diff --git a/external_patches/cxxbridge-cmd/Cargo.lock b/external_patches/cxxbridge-cmd/Cargo.lock new file mode 100644 index 000000000..77f2946bf --- /dev/null +++ b/external_patches/cxxbridge-cmd/Cargo.lock @@ -0,0 +1,143 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "anstyle" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87" + +[[package]] +name = "clap" +version = "4.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41fffed7514f420abec6d183b1d3acfd9099c79c3a10a06ade4f8203f1411272" +dependencies = [ + "clap_builder", +] + +[[package]] +name = "clap_builder" +version = "4.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63361bae7eef3771745f02d8d892bec2fee5f6e34af316ba556e7f97a7069ff1" +dependencies = [ + "anstyle", + "clap_lex", + "strsim", +] + +[[package]] +name = "clap_lex" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1" + +[[package]] +name = "codespan-reporting" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" +dependencies = [ + "termcolor", + "unicode-width", +] + +[[package]] +name = "cxxbridge-cmd" +version = "1.0.110" +dependencies = [ + "clap", + "codespan-reporting", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "proc-macro2" +version = "1.0.70" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "strsim" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" + +[[package]] +name = "syn" +version = "2.0.39" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "termcolor" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff1bc3d3f05aff0403e8ac0d92ced918ec05b666a43f83297ccef5bea8a3d449" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "unicode-ident" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unicode-width" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85" + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" +dependencies = [ + "winapi", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"