1###############################################################################
2# @generated
3# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To
4# regenerate this file, run the following:
5#
6#     bazel run @@//third-party:vendor
7###############################################################################
8"""
9# `crates_repository` API
10
11- [aliases](#aliases)
12- [crate_deps](#crate_deps)
13- [all_crate_deps](#all_crate_deps)
14- [crate_repositories](#crate_repositories)
15
16"""
17
18load("@bazel_skylib//lib:selects.bzl", "selects")
19load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
20load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe")
21
22###############################################################################
23# MACROS API
24###############################################################################
25
26# An identifier that represent common dependencies (unconditional).
27_COMMON_CONDITION = ""
28
29def _flatten_dependency_maps(all_dependency_maps):
30    """Flatten a list of dependency maps into one dictionary.
31
32    Dependency maps have the following structure:
33
34    ```python
35    DEPENDENCIES_MAP = {
36        # The first key in the map is a Bazel package
37        # name of the workspace this file is defined in.
38        "workspace_member_package": {
39
40            # Not all dependencies are supported for all platforms.
41            # the condition key is the condition required to be true
42            # on the host platform.
43            "condition": {
44
45                # An alias to a crate target.     # The label of the crate target the
46                # Aliases are only crate names.   # package name refers to.
47                "package_name":                   "@full//:label",
48            }
49        }
50    }
51    ```
52
53    Args:
54        all_dependency_maps (list): A list of dicts as described above
55
56    Returns:
57        dict: A dictionary as described above
58    """
59    dependencies = {}
60
61    for workspace_deps_map in all_dependency_maps:
62        for pkg_name, conditional_deps_map in workspace_deps_map.items():
63            if pkg_name not in dependencies:
64                non_frozen_map = dict()
65                for key, values in conditional_deps_map.items():
66                    non_frozen_map.update({key: dict(values.items())})
67                dependencies.setdefault(pkg_name, non_frozen_map)
68                continue
69
70            for condition, deps_map in conditional_deps_map.items():
71                # If the condition has not been recorded, do so and continue
72                if condition not in dependencies[pkg_name]:
73                    dependencies[pkg_name].setdefault(condition, dict(deps_map.items()))
74                    continue
75
76                # Alert on any miss-matched dependencies
77                inconsistent_entries = []
78                for crate_name, crate_label in deps_map.items():
79                    existing = dependencies[pkg_name][condition].get(crate_name)
80                    if existing and existing != crate_label:
81                        inconsistent_entries.append((crate_name, existing, crate_label))
82                    dependencies[pkg_name][condition].update({crate_name: crate_label})
83
84    return dependencies
85
86def crate_deps(deps, package_name = None):
87    """Finds the fully qualified label of the requested crates for the package where this macro is called.
88
89    Args:
90        deps (list): The desired list of crate targets.
91        package_name (str, optional): The package name of the set of dependencies to look up.
92            Defaults to `native.package_name()`.
93
94    Returns:
95        list: A list of labels to generated rust targets (str)
96    """
97
98    if not deps:
99        return []
100
101    if package_name == None:
102        package_name = native.package_name()
103
104    # Join both sets of dependencies
105    dependencies = _flatten_dependency_maps([
106        _NORMAL_DEPENDENCIES,
107        _NORMAL_DEV_DEPENDENCIES,
108        _PROC_MACRO_DEPENDENCIES,
109        _PROC_MACRO_DEV_DEPENDENCIES,
110        _BUILD_DEPENDENCIES,
111        _BUILD_PROC_MACRO_DEPENDENCIES,
112    ]).pop(package_name, {})
113
114    # Combine all conditional packages so we can easily index over a flat list
115    # TODO: Perhaps this should actually return select statements and maintain
116    # the conditionals of the dependencies
117    flat_deps = {}
118    for deps_set in dependencies.values():
119        for crate_name, crate_label in deps_set.items():
120            flat_deps.update({crate_name: crate_label})
121
122    missing_crates = []
123    crate_targets = []
124    for crate_target in deps:
125        if crate_target not in flat_deps:
126            missing_crates.append(crate_target)
127        else:
128            crate_targets.append(flat_deps[crate_target])
129
130    if missing_crates:
131        fail("Could not find crates `{}` among dependencies of `{}`. Available dependencies were `{}`".format(
132            missing_crates,
133            package_name,
134            dependencies,
135        ))
136
137    return crate_targets
138
139def all_crate_deps(
140        normal = False,
141        normal_dev = False,
142        proc_macro = False,
143        proc_macro_dev = False,
144        build = False,
145        build_proc_macro = False,
146        package_name = None):
147    """Finds the fully qualified label of all requested direct crate dependencies \
148    for the package where this macro is called.
149
150    If no parameters are set, all normal dependencies are returned. Setting any one flag will
151    otherwise impact the contents of the returned list.
152
153    Args:
154        normal (bool, optional): If True, normal dependencies are included in the
155            output list.
156        normal_dev (bool, optional): If True, normal dev dependencies will be
157            included in the output list..
158        proc_macro (bool, optional): If True, proc_macro dependencies are included
159            in the output list.
160        proc_macro_dev (bool, optional): If True, dev proc_macro dependencies are
161            included in the output list.
162        build (bool, optional): If True, build dependencies are included
163            in the output list.
164        build_proc_macro (bool, optional): If True, build proc_macro dependencies are
165            included in the output list.
166        package_name (str, optional): The package name of the set of dependencies to look up.
167            Defaults to `native.package_name()` when unset.
168
169    Returns:
170        list: A list of labels to generated rust targets (str)
171    """
172
173    if package_name == None:
174        package_name = native.package_name()
175
176    # Determine the relevant maps to use
177    all_dependency_maps = []
178    if normal:
179        all_dependency_maps.append(_NORMAL_DEPENDENCIES)
180    if normal_dev:
181        all_dependency_maps.append(_NORMAL_DEV_DEPENDENCIES)
182    if proc_macro:
183        all_dependency_maps.append(_PROC_MACRO_DEPENDENCIES)
184    if proc_macro_dev:
185        all_dependency_maps.append(_PROC_MACRO_DEV_DEPENDENCIES)
186    if build:
187        all_dependency_maps.append(_BUILD_DEPENDENCIES)
188    if build_proc_macro:
189        all_dependency_maps.append(_BUILD_PROC_MACRO_DEPENDENCIES)
190
191    # Default to always using normal dependencies
192    if not all_dependency_maps:
193        all_dependency_maps.append(_NORMAL_DEPENDENCIES)
194
195    dependencies = _flatten_dependency_maps(all_dependency_maps).pop(package_name, None)
196
197    if not dependencies:
198        if dependencies == None:
199            fail("Tried to get all_crate_deps for package " + package_name + " but that package had no Cargo.toml file")
200        else:
201            return []
202
203    crate_deps = list(dependencies.pop(_COMMON_CONDITION, {}).values())
204    for condition, deps in dependencies.items():
205        crate_deps += selects.with_or({
206            tuple(_CONDITIONS[condition]): deps.values(),
207            "//conditions:default": [],
208        })
209
210    return crate_deps
211
212def aliases(
213        normal = False,
214        normal_dev = False,
215        proc_macro = False,
216        proc_macro_dev = False,
217        build = False,
218        build_proc_macro = False,
219        package_name = None):
220    """Produces a map of Crate alias names to their original label
221
222    If no dependency kinds are specified, `normal` and `proc_macro` are used by default.
223    Setting any one flag will otherwise determine the contents of the returned dict.
224
225    Args:
226        normal (bool, optional): If True, normal dependencies are included in the
227            output list.
228        normal_dev (bool, optional): If True, normal dev dependencies will be
229            included in the output list..
230        proc_macro (bool, optional): If True, proc_macro dependencies are included
231            in the output list.
232        proc_macro_dev (bool, optional): If True, dev proc_macro dependencies are
233            included in the output list.
234        build (bool, optional): If True, build dependencies are included
235            in the output list.
236        build_proc_macro (bool, optional): If True, build proc_macro dependencies are
237            included in the output list.
238        package_name (str, optional): The package name of the set of dependencies to look up.
239            Defaults to `native.package_name()` when unset.
240
241    Returns:
242        dict: The aliases of all associated packages
243    """
244    if package_name == None:
245        package_name = native.package_name()
246
247    # Determine the relevant maps to use
248    all_aliases_maps = []
249    if normal:
250        all_aliases_maps.append(_NORMAL_ALIASES)
251    if normal_dev:
252        all_aliases_maps.append(_NORMAL_DEV_ALIASES)
253    if proc_macro:
254        all_aliases_maps.append(_PROC_MACRO_ALIASES)
255    if proc_macro_dev:
256        all_aliases_maps.append(_PROC_MACRO_DEV_ALIASES)
257    if build:
258        all_aliases_maps.append(_BUILD_ALIASES)
259    if build_proc_macro:
260        all_aliases_maps.append(_BUILD_PROC_MACRO_ALIASES)
261
262    # Default to always using normal aliases
263    if not all_aliases_maps:
264        all_aliases_maps.append(_NORMAL_ALIASES)
265        all_aliases_maps.append(_PROC_MACRO_ALIASES)
266
267    aliases = _flatten_dependency_maps(all_aliases_maps).pop(package_name, None)
268
269    if not aliases:
270        return dict()
271
272    common_items = aliases.pop(_COMMON_CONDITION, {}).items()
273
274    # If there are only common items in the dictionary, immediately return them
275    if not len(aliases.keys()) == 1:
276        return dict(common_items)
277
278    # Build a single select statement where each conditional has accounted for the
279    # common set of aliases.
280    crate_aliases = {"//conditions:default": dict(common_items)}
281    for condition, deps in aliases.items():
282        condition_triples = _CONDITIONS[condition]
283        for triple in condition_triples:
284            if triple in crate_aliases:
285                crate_aliases[triple].update(deps)
286            else:
287                crate_aliases.update({triple: dict(deps.items() + common_items)})
288
289    return select(crate_aliases)
290
291###############################################################################
292# WORKSPACE MEMBER DEPS AND ALIASES
293###############################################################################
294
295_NORMAL_DEPENDENCIES = {
296    "third-party": {
297        _COMMON_CONDITION: {
298            "cc": Label("@vendor__cc-1.0.89//:cc"),
299            "clap": Label("@vendor__clap-4.5.1//:clap"),
300            "codespan-reporting": Label("@vendor__codespan-reporting-0.11.1//:codespan_reporting"),
301            "once_cell": Label("@vendor__once_cell-1.19.0//:once_cell"),
302            "proc-macro2": Label("@vendor__proc-macro2-1.0.78//:proc_macro2"),
303            "quote": Label("@vendor__quote-1.0.35//:quote"),
304            "scratch": Label("@vendor__scratch-1.0.7//:scratch"),
305            "syn": Label("@vendor__syn-2.0.52//:syn"),
306        },
307    },
308}
309
310_NORMAL_ALIASES = {
311    "third-party": {
312        _COMMON_CONDITION: {
313        },
314    },
315}
316
317_NORMAL_DEV_DEPENDENCIES = {
318    "third-party": {
319    },
320}
321
322_NORMAL_DEV_ALIASES = {
323    "third-party": {
324    },
325}
326
327_PROC_MACRO_DEPENDENCIES = {
328    "third-party": {
329    },
330}
331
332_PROC_MACRO_ALIASES = {
333    "third-party": {
334    },
335}
336
337_PROC_MACRO_DEV_DEPENDENCIES = {
338    "third-party": {
339    },
340}
341
342_PROC_MACRO_DEV_ALIASES = {
343    "third-party": {
344    },
345}
346
347_BUILD_DEPENDENCIES = {
348    "third-party": {
349    },
350}
351
352_BUILD_ALIASES = {
353    "third-party": {
354    },
355}
356
357_BUILD_PROC_MACRO_DEPENDENCIES = {
358    "third-party": {
359    },
360}
361
362_BUILD_PROC_MACRO_ALIASES = {
363    "third-party": {
364    },
365}
366
367_CONDITIONS = {
368    "aarch64-apple-darwin": ["@rules_rust//rust/platform:aarch64-apple-darwin"],
369    "aarch64-apple-ios": ["@rules_rust//rust/platform:aarch64-apple-ios"],
370    "aarch64-apple-ios-sim": ["@rules_rust//rust/platform:aarch64-apple-ios-sim"],
371    "aarch64-fuchsia": ["@rules_rust//rust/platform:aarch64-fuchsia"],
372    "aarch64-linux-android": ["@rules_rust//rust/platform:aarch64-linux-android"],
373    "aarch64-pc-windows-msvc": ["@rules_rust//rust/platform:aarch64-pc-windows-msvc"],
374    "aarch64-unknown-linux-gnu": ["@rules_rust//rust/platform:aarch64-unknown-linux-gnu"],
375    "aarch64-unknown-nixos-gnu": ["@rules_rust//rust/platform:aarch64-unknown-nixos-gnu"],
376    "aarch64-unknown-nto-qnx710": ["@rules_rust//rust/platform:aarch64-unknown-nto-qnx710"],
377    "arm-unknown-linux-gnueabi": ["@rules_rust//rust/platform:arm-unknown-linux-gnueabi"],
378    "armv7-linux-androideabi": ["@rules_rust//rust/platform:armv7-linux-androideabi"],
379    "armv7-unknown-linux-gnueabi": ["@rules_rust//rust/platform:armv7-unknown-linux-gnueabi"],
380    "cfg(windows)": ["@rules_rust//rust/platform:aarch64-pc-windows-msvc", "@rules_rust//rust/platform:i686-pc-windows-msvc", "@rules_rust//rust/platform:x86_64-pc-windows-msvc"],
381    "i686-apple-darwin": ["@rules_rust//rust/platform:i686-apple-darwin"],
382    "i686-linux-android": ["@rules_rust//rust/platform:i686-linux-android"],
383    "i686-pc-windows-gnu": [],
384    "i686-pc-windows-msvc": ["@rules_rust//rust/platform:i686-pc-windows-msvc"],
385    "i686-unknown-freebsd": ["@rules_rust//rust/platform:i686-unknown-freebsd"],
386    "i686-unknown-linux-gnu": ["@rules_rust//rust/platform:i686-unknown-linux-gnu"],
387    "powerpc-unknown-linux-gnu": ["@rules_rust//rust/platform:powerpc-unknown-linux-gnu"],
388    "riscv32imc-unknown-none-elf": ["@rules_rust//rust/platform:riscv32imc-unknown-none-elf"],
389    "riscv64gc-unknown-none-elf": ["@rules_rust//rust/platform:riscv64gc-unknown-none-elf"],
390    "s390x-unknown-linux-gnu": ["@rules_rust//rust/platform:s390x-unknown-linux-gnu"],
391    "thumbv7em-none-eabi": ["@rules_rust//rust/platform:thumbv7em-none-eabi"],
392    "thumbv8m.main-none-eabi": ["@rules_rust//rust/platform:thumbv8m.main-none-eabi"],
393    "wasm32-unknown-unknown": ["@rules_rust//rust/platform:wasm32-unknown-unknown"],
394    "wasm32-wasi": ["@rules_rust//rust/platform:wasm32-wasi"],
395    "x86_64-apple-darwin": ["@rules_rust//rust/platform:x86_64-apple-darwin"],
396    "x86_64-apple-ios": ["@rules_rust//rust/platform:x86_64-apple-ios"],
397    "x86_64-fuchsia": ["@rules_rust//rust/platform:x86_64-fuchsia"],
398    "x86_64-linux-android": ["@rules_rust//rust/platform:x86_64-linux-android"],
399    "x86_64-pc-windows-gnu": [],
400    "x86_64-pc-windows-msvc": ["@rules_rust//rust/platform:x86_64-pc-windows-msvc"],
401    "x86_64-unknown-freebsd": ["@rules_rust//rust/platform:x86_64-unknown-freebsd"],
402    "x86_64-unknown-linux-gnu": ["@rules_rust//rust/platform:x86_64-unknown-linux-gnu"],
403    "x86_64-unknown-nixos-gnu": ["@rules_rust//rust/platform:x86_64-unknown-nixos-gnu"],
404    "x86_64-unknown-none": ["@rules_rust//rust/platform:x86_64-unknown-none"],
405}
406
407###############################################################################
408
409def crate_repositories():
410    """A macro for defining repositories for all generated crates.
411
412    Returns:
413      A list of repos visible to the module through the module extension.
414    """
415    maybe(
416        http_archive,
417        name = "vendor__anstyle-1.0.6",
418        sha256 = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc",
419        type = "tar.gz",
420        urls = ["https://crates.io/api/v1/crates/anstyle/1.0.6/download"],
421        strip_prefix = "anstyle-1.0.6",
422        build_file = Label("@//third-party/bazel:BUILD.anstyle-1.0.6.bazel"),
423    )
424
425    maybe(
426        http_archive,
427        name = "vendor__cc-1.0.89",
428        sha256 = "a0ba8f7aaa012f30d5b2861462f6708eccd49c3c39863fe083a308035f63d723",
429        type = "tar.gz",
430        urls = ["https://crates.io/api/v1/crates/cc/1.0.89/download"],
431        strip_prefix = "cc-1.0.89",
432        build_file = Label("@//third-party/bazel:BUILD.cc-1.0.89.bazel"),
433    )
434
435    maybe(
436        http_archive,
437        name = "vendor__clap-4.5.1",
438        sha256 = "c918d541ef2913577a0f9566e9ce27cb35b6df072075769e0b26cb5a554520da",
439        type = "tar.gz",
440        urls = ["https://crates.io/api/v1/crates/clap/4.5.1/download"],
441        strip_prefix = "clap-4.5.1",
442        build_file = Label("@//third-party/bazel:BUILD.clap-4.5.1.bazel"),
443    )
444
445    maybe(
446        http_archive,
447        name = "vendor__clap_builder-4.5.1",
448        sha256 = "9f3e7391dad68afb0c2ede1bf619f579a3dc9c2ec67f089baa397123a2f3d1eb",
449        type = "tar.gz",
450        urls = ["https://crates.io/api/v1/crates/clap_builder/4.5.1/download"],
451        strip_prefix = "clap_builder-4.5.1",
452        build_file = Label("@//third-party/bazel:BUILD.clap_builder-4.5.1.bazel"),
453    )
454
455    maybe(
456        http_archive,
457        name = "vendor__clap_lex-0.7.0",
458        sha256 = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce",
459        type = "tar.gz",
460        urls = ["https://crates.io/api/v1/crates/clap_lex/0.7.0/download"],
461        strip_prefix = "clap_lex-0.7.0",
462        build_file = Label("@//third-party/bazel:BUILD.clap_lex-0.7.0.bazel"),
463    )
464
465    maybe(
466        http_archive,
467        name = "vendor__codespan-reporting-0.11.1",
468        sha256 = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e",
469        type = "tar.gz",
470        urls = ["https://crates.io/api/v1/crates/codespan-reporting/0.11.1/download"],
471        strip_prefix = "codespan-reporting-0.11.1",
472        build_file = Label("@//third-party/bazel:BUILD.codespan-reporting-0.11.1.bazel"),
473    )
474
475    maybe(
476        http_archive,
477        name = "vendor__once_cell-1.19.0",
478        sha256 = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92",
479        type = "tar.gz",
480        urls = ["https://crates.io/api/v1/crates/once_cell/1.19.0/download"],
481        strip_prefix = "once_cell-1.19.0",
482        build_file = Label("@//third-party/bazel:BUILD.once_cell-1.19.0.bazel"),
483    )
484
485    maybe(
486        http_archive,
487        name = "vendor__proc-macro2-1.0.78",
488        sha256 = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae",
489        type = "tar.gz",
490        urls = ["https://crates.io/api/v1/crates/proc-macro2/1.0.78/download"],
491        strip_prefix = "proc-macro2-1.0.78",
492        build_file = Label("@//third-party/bazel:BUILD.proc-macro2-1.0.78.bazel"),
493    )
494
495    maybe(
496        http_archive,
497        name = "vendor__quote-1.0.35",
498        sha256 = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef",
499        type = "tar.gz",
500        urls = ["https://crates.io/api/v1/crates/quote/1.0.35/download"],
501        strip_prefix = "quote-1.0.35",
502        build_file = Label("@//third-party/bazel:BUILD.quote-1.0.35.bazel"),
503    )
504
505    maybe(
506        http_archive,
507        name = "vendor__scratch-1.0.7",
508        sha256 = "a3cf7c11c38cb994f3d40e8a8cde3bbd1f72a435e4c49e85d6553d8312306152",
509        type = "tar.gz",
510        urls = ["https://crates.io/api/v1/crates/scratch/1.0.7/download"],
511        strip_prefix = "scratch-1.0.7",
512        build_file = Label("@//third-party/bazel:BUILD.scratch-1.0.7.bazel"),
513    )
514
515    maybe(
516        http_archive,
517        name = "vendor__syn-2.0.52",
518        sha256 = "b699d15b36d1f02c3e7c69f8ffef53de37aefae075d8488d4ba1a7788d574a07",
519        type = "tar.gz",
520        urls = ["https://crates.io/api/v1/crates/syn/2.0.52/download"],
521        strip_prefix = "syn-2.0.52",
522        build_file = Label("@//third-party/bazel:BUILD.syn-2.0.52.bazel"),
523    )
524
525    maybe(
526        http_archive,
527        name = "vendor__termcolor-1.4.1",
528        sha256 = "06794f8f6c5c898b3275aebefa6b8a1cb24cd2c6c79397ab15774837a0bc5755",
529        type = "tar.gz",
530        urls = ["https://crates.io/api/v1/crates/termcolor/1.4.1/download"],
531        strip_prefix = "termcolor-1.4.1",
532        build_file = Label("@//third-party/bazel:BUILD.termcolor-1.4.1.bazel"),
533    )
534
535    maybe(
536        http_archive,
537        name = "vendor__unicode-ident-1.0.12",
538        sha256 = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b",
539        type = "tar.gz",
540        urls = ["https://crates.io/api/v1/crates/unicode-ident/1.0.12/download"],
541        strip_prefix = "unicode-ident-1.0.12",
542        build_file = Label("@//third-party/bazel:BUILD.unicode-ident-1.0.12.bazel"),
543    )
544
545    maybe(
546        http_archive,
547        name = "vendor__unicode-width-0.1.11",
548        sha256 = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85",
549        type = "tar.gz",
550        urls = ["https://crates.io/api/v1/crates/unicode-width/0.1.11/download"],
551        strip_prefix = "unicode-width-0.1.11",
552        build_file = Label("@//third-party/bazel:BUILD.unicode-width-0.1.11.bazel"),
553    )
554
555    maybe(
556        http_archive,
557        name = "vendor__winapi-0.3.9",
558        sha256 = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419",
559        type = "tar.gz",
560        urls = ["https://crates.io/api/v1/crates/winapi/0.3.9/download"],
561        strip_prefix = "winapi-0.3.9",
562        build_file = Label("@//third-party/bazel:BUILD.winapi-0.3.9.bazel"),
563    )
564
565    maybe(
566        http_archive,
567        name = "vendor__winapi-i686-pc-windows-gnu-0.4.0",
568        sha256 = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6",
569        type = "tar.gz",
570        urls = ["https://crates.io/api/v1/crates/winapi-i686-pc-windows-gnu/0.4.0/download"],
571        strip_prefix = "winapi-i686-pc-windows-gnu-0.4.0",
572        build_file = Label("@//third-party/bazel:BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel"),
573    )
574
575    maybe(
576        http_archive,
577        name = "vendor__winapi-util-0.1.6",
578        sha256 = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596",
579        type = "tar.gz",
580        urls = ["https://crates.io/api/v1/crates/winapi-util/0.1.6/download"],
581        strip_prefix = "winapi-util-0.1.6",
582        build_file = Label("@//third-party/bazel:BUILD.winapi-util-0.1.6.bazel"),
583    )
584
585    maybe(
586        http_archive,
587        name = "vendor__winapi-x86_64-pc-windows-gnu-0.4.0",
588        sha256 = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f",
589        type = "tar.gz",
590        urls = ["https://crates.io/api/v1/crates/winapi-x86_64-pc-windows-gnu/0.4.0/download"],
591        strip_prefix = "winapi-x86_64-pc-windows-gnu-0.4.0",
592        build_file = Label("@//third-party/bazel:BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel"),
593    )
594
595    return [
596        struct(repo = "vendor__cc-1.0.89", is_dev_dep = False),
597        struct(repo = "vendor__clap-4.5.1", is_dev_dep = False),
598        struct(repo = "vendor__codespan-reporting-0.11.1", is_dev_dep = False),
599        struct(repo = "vendor__once_cell-1.19.0", is_dev_dep = False),
600        struct(repo = "vendor__proc-macro2-1.0.78", is_dev_dep = False),
601        struct(repo = "vendor__quote-1.0.35", is_dev_dep = False),
602        struct(repo = "vendor__scratch-1.0.7", is_dev_dep = False),
603        struct(repo = "vendor__syn-2.0.52", is_dev_dep = False),
604    ]
605