xref: /aosp_15_r20/external/bazelbuild-rules_rust/proto/protobuf/3rdparty/crates/defs.bzl (revision d4726bddaa87cc4778e7472feed243fa4b6c267f)
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 @//proto/protobuf/3rdparty:crates_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    "": {
297        _COMMON_CONDITION: {
298            "grpc": Label("@rules_rust_proto__grpc-0.6.2//:grpc"),
299            "grpc-compiler": Label("@rules_rust_proto__grpc-compiler-0.6.2//:grpc_compiler"),
300            "log": Label("@rules_rust_proto__log-0.4.17//:log"),
301            "protobuf": Label("@rules_rust_proto__protobuf-2.8.2//:protobuf"),
302            "protobuf-codegen": Label("@rules_rust_proto__protobuf-codegen-2.8.2//:protobuf_codegen"),
303            "tls-api": Label("@rules_rust_proto__tls-api-0.1.22//:tls_api"),
304            "tls-api-stub": Label("@rules_rust_proto__tls-api-stub-0.1.22//:tls_api_stub"),
305        },
306    },
307}
308
309_NORMAL_ALIASES = {
310    "": {
311        _COMMON_CONDITION: {
312        },
313    },
314}
315
316_NORMAL_DEV_DEPENDENCIES = {
317    "": {
318    },
319}
320
321_NORMAL_DEV_ALIASES = {
322    "": {
323    },
324}
325
326_PROC_MACRO_DEPENDENCIES = {
327    "": {
328    },
329}
330
331_PROC_MACRO_ALIASES = {
332    "": {
333    },
334}
335
336_PROC_MACRO_DEV_DEPENDENCIES = {
337    "": {
338    },
339}
340
341_PROC_MACRO_DEV_ALIASES = {
342    "": {
343    },
344}
345
346_BUILD_DEPENDENCIES = {
347    "": {
348    },
349}
350
351_BUILD_ALIASES = {
352    "": {
353    },
354}
355
356_BUILD_PROC_MACRO_DEPENDENCIES = {
357    "": {
358    },
359}
360
361_BUILD_PROC_MACRO_ALIASES = {
362    "": {
363    },
364}
365
366_CONDITIONS = {
367    "aarch64-apple-darwin": ["@rules_rust//rust/platform:aarch64-apple-darwin"],
368    "aarch64-apple-ios": ["@rules_rust//rust/platform:aarch64-apple-ios"],
369    "aarch64-apple-ios-sim": ["@rules_rust//rust/platform:aarch64-apple-ios-sim"],
370    "aarch64-fuchsia": ["@rules_rust//rust/platform:aarch64-fuchsia"],
371    "aarch64-linux-android": ["@rules_rust//rust/platform:aarch64-linux-android"],
372    "aarch64-pc-windows-msvc": ["@rules_rust//rust/platform:aarch64-pc-windows-msvc"],
373    "aarch64-unknown-linux-gnu": ["@rules_rust//rust/platform:aarch64-unknown-linux-gnu", "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu"],
374    "aarch64-unknown-nixos-gnu": ["@rules_rust//rust/platform:aarch64-unknown-nixos-gnu"],
375    "aarch64-unknown-nto-qnx710": ["@rules_rust//rust/platform:aarch64-unknown-nto-qnx710"],
376    "arm-unknown-linux-gnueabi": ["@rules_rust//rust/platform:arm-unknown-linux-gnueabi"],
377    "armv7-linux-androideabi": ["@rules_rust//rust/platform:armv7-linux-androideabi"],
378    "armv7-unknown-linux-gnueabi": ["@rules_rust//rust/platform:armv7-unknown-linux-gnueabi"],
379    "cfg(all(any(target_arch = \"x86_64\", target_arch = \"aarch64\"), target_os = \"hermit\"))": [],
380    "cfg(any(unix, target_os = \"wasi\"))": ["@rules_rust//rust/platform:aarch64-apple-darwin", "@rules_rust//rust/platform:aarch64-apple-ios", "@rules_rust//rust/platform:aarch64-apple-ios-sim", "@rules_rust//rust/platform:aarch64-fuchsia", "@rules_rust//rust/platform:aarch64-linux-android", "@rules_rust//rust/platform:aarch64-unknown-linux-gnu", "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu", "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710", "@rules_rust//rust/platform:arm-unknown-linux-gnueabi", "@rules_rust//rust/platform:armv7-linux-androideabi", "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi", "@rules_rust//rust/platform:i686-apple-darwin", "@rules_rust//rust/platform:i686-linux-android", "@rules_rust//rust/platform:i686-unknown-freebsd", "@rules_rust//rust/platform:i686-unknown-linux-gnu", "@rules_rust//rust/platform:powerpc-unknown-linux-gnu", "@rules_rust//rust/platform:s390x-unknown-linux-gnu", "@rules_rust//rust/platform:wasm32-wasi", "@rules_rust//rust/platform:x86_64-apple-darwin", "@rules_rust//rust/platform:x86_64-apple-ios", "@rules_rust//rust/platform:x86_64-fuchsia", "@rules_rust//rust/platform:x86_64-linux-android", "@rules_rust//rust/platform:x86_64-unknown-freebsd", "@rules_rust//rust/platform:x86_64-unknown-linux-gnu", "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu"],
381    "cfg(not(windows))": ["@rules_rust//rust/platform:aarch64-apple-darwin", "@rules_rust//rust/platform:aarch64-apple-ios", "@rules_rust//rust/platform:aarch64-apple-ios-sim", "@rules_rust//rust/platform:aarch64-fuchsia", "@rules_rust//rust/platform:aarch64-linux-android", "@rules_rust//rust/platform:aarch64-unknown-linux-gnu", "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu", "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710", "@rules_rust//rust/platform:arm-unknown-linux-gnueabi", "@rules_rust//rust/platform:armv7-linux-androideabi", "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi", "@rules_rust//rust/platform:i686-apple-darwin", "@rules_rust//rust/platform:i686-linux-android", "@rules_rust//rust/platform:i686-unknown-freebsd", "@rules_rust//rust/platform:i686-unknown-linux-gnu", "@rules_rust//rust/platform:powerpc-unknown-linux-gnu", "@rules_rust//rust/platform:riscv32imc-unknown-none-elf", "@rules_rust//rust/platform:riscv64gc-unknown-none-elf", "@rules_rust//rust/platform:s390x-unknown-linux-gnu", "@rules_rust//rust/platform:thumbv7em-none-eabi", "@rules_rust//rust/platform:thumbv8m.main-none-eabi", "@rules_rust//rust/platform:wasm32-unknown-unknown", "@rules_rust//rust/platform:wasm32-wasi", "@rules_rust//rust/platform:x86_64-apple-darwin", "@rules_rust//rust/platform:x86_64-apple-ios", "@rules_rust//rust/platform:x86_64-fuchsia", "@rules_rust//rust/platform:x86_64-linux-android", "@rules_rust//rust/platform:x86_64-unknown-freebsd", "@rules_rust//rust/platform:x86_64-unknown-linux-gnu", "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu", "@rules_rust//rust/platform:x86_64-unknown-none"],
382    "cfg(target_os = \"cloudabi\")": [],
383    "cfg(target_os = \"fuchsia\")": ["@rules_rust//rust/platform:aarch64-fuchsia", "@rules_rust//rust/platform:x86_64-fuchsia"],
384    "cfg(target_os = \"redox\")": [],
385    "cfg(unix)": ["@rules_rust//rust/platform:aarch64-apple-darwin", "@rules_rust//rust/platform:aarch64-apple-ios", "@rules_rust//rust/platform:aarch64-apple-ios-sim", "@rules_rust//rust/platform:aarch64-fuchsia", "@rules_rust//rust/platform:aarch64-linux-android", "@rules_rust//rust/platform:aarch64-unknown-linux-gnu", "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu", "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710", "@rules_rust//rust/platform:arm-unknown-linux-gnueabi", "@rules_rust//rust/platform:armv7-linux-androideabi", "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi", "@rules_rust//rust/platform:i686-apple-darwin", "@rules_rust//rust/platform:i686-linux-android", "@rules_rust//rust/platform:i686-unknown-freebsd", "@rules_rust//rust/platform:i686-unknown-linux-gnu", "@rules_rust//rust/platform:powerpc-unknown-linux-gnu", "@rules_rust//rust/platform:s390x-unknown-linux-gnu", "@rules_rust//rust/platform:x86_64-apple-darwin", "@rules_rust//rust/platform:x86_64-apple-ios", "@rules_rust//rust/platform:x86_64-fuchsia", "@rules_rust//rust/platform:x86_64-linux-android", "@rules_rust//rust/platform:x86_64-unknown-freebsd", "@rules_rust//rust/platform:x86_64-unknown-linux-gnu", "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu"],
386    "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"],
387    "i686-apple-darwin": ["@rules_rust//rust/platform:i686-apple-darwin"],
388    "i686-linux-android": ["@rules_rust//rust/platform:i686-linux-android"],
389    "i686-pc-windows-gnu": [],
390    "i686-pc-windows-msvc": ["@rules_rust//rust/platform:i686-pc-windows-msvc"],
391    "i686-unknown-freebsd": ["@rules_rust//rust/platform:i686-unknown-freebsd"],
392    "i686-unknown-linux-gnu": ["@rules_rust//rust/platform:i686-unknown-linux-gnu"],
393    "powerpc-unknown-linux-gnu": ["@rules_rust//rust/platform:powerpc-unknown-linux-gnu"],
394    "riscv32imc-unknown-none-elf": ["@rules_rust//rust/platform:riscv32imc-unknown-none-elf"],
395    "riscv64gc-unknown-none-elf": ["@rules_rust//rust/platform:riscv64gc-unknown-none-elf"],
396    "s390x-unknown-linux-gnu": ["@rules_rust//rust/platform:s390x-unknown-linux-gnu"],
397    "thumbv7em-none-eabi": ["@rules_rust//rust/platform:thumbv7em-none-eabi"],
398    "thumbv8m.main-none-eabi": ["@rules_rust//rust/platform:thumbv8m.main-none-eabi"],
399    "wasm32-unknown-unknown": ["@rules_rust//rust/platform:wasm32-unknown-unknown"],
400    "wasm32-wasi": ["@rules_rust//rust/platform:wasm32-wasi"],
401    "x86_64-apple-darwin": ["@rules_rust//rust/platform:x86_64-apple-darwin"],
402    "x86_64-apple-ios": ["@rules_rust//rust/platform:x86_64-apple-ios"],
403    "x86_64-fuchsia": ["@rules_rust//rust/platform:x86_64-fuchsia"],
404    "x86_64-linux-android": ["@rules_rust//rust/platform:x86_64-linux-android"],
405    "x86_64-pc-windows-gnu": [],
406    "x86_64-pc-windows-msvc": ["@rules_rust//rust/platform:x86_64-pc-windows-msvc"],
407    "x86_64-unknown-freebsd": ["@rules_rust//rust/platform:x86_64-unknown-freebsd"],
408    "x86_64-unknown-linux-gnu": ["@rules_rust//rust/platform:x86_64-unknown-linux-gnu", "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu"],
409    "x86_64-unknown-nixos-gnu": ["@rules_rust//rust/platform:x86_64-unknown-nixos-gnu"],
410    "x86_64-unknown-none": ["@rules_rust//rust/platform:x86_64-unknown-none"],
411}
412
413###############################################################################
414
415def crate_repositories():
416    """A macro for defining repositories for all generated crates.
417
418    Returns:
419      A list of repos visible to the module through the module extension.
420    """
421    maybe(
422        http_archive,
423        name = "rules_rust_proto__autocfg-1.1.0",
424        sha256 = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa",
425        type = "tar.gz",
426        urls = ["https://static.crates.io/crates/autocfg/1.1.0/download"],
427        strip_prefix = "autocfg-1.1.0",
428        build_file = Label("@rules_rust//proto/protobuf/3rdparty/crates:BUILD.autocfg-1.1.0.bazel"),
429    )
430
431    maybe(
432        http_archive,
433        name = "rules_rust_proto__base64-0.9.3",
434        sha256 = "489d6c0ed21b11d038c31b6ceccca973e65d73ba3bd8ecb9a2babf5546164643",
435        type = "tar.gz",
436        urls = ["https://static.crates.io/crates/base64/0.9.3/download"],
437        strip_prefix = "base64-0.9.3",
438        build_file = Label("@rules_rust//proto/protobuf/3rdparty/crates:BUILD.base64-0.9.3.bazel"),
439    )
440
441    maybe(
442        http_archive,
443        name = "rules_rust_proto__bitflags-1.3.2",
444        sha256 = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a",
445        type = "tar.gz",
446        urls = ["https://static.crates.io/crates/bitflags/1.3.2/download"],
447        strip_prefix = "bitflags-1.3.2",
448        build_file = Label("@rules_rust//proto/protobuf/3rdparty/crates:BUILD.bitflags-1.3.2.bazel"),
449    )
450
451    maybe(
452        http_archive,
453        name = "rules_rust_proto__byteorder-1.4.3",
454        sha256 = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610",
455        type = "tar.gz",
456        urls = ["https://static.crates.io/crates/byteorder/1.4.3/download"],
457        strip_prefix = "byteorder-1.4.3",
458        build_file = Label("@rules_rust//proto/protobuf/3rdparty/crates:BUILD.byteorder-1.4.3.bazel"),
459    )
460
461    maybe(
462        http_archive,
463        name = "rules_rust_proto__bytes-0.4.12",
464        sha256 = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c",
465        type = "tar.gz",
466        urls = ["https://static.crates.io/crates/bytes/0.4.12/download"],
467        strip_prefix = "bytes-0.4.12",
468        build_file = Label("@rules_rust//proto/protobuf/3rdparty/crates:BUILD.bytes-0.4.12.bazel"),
469    )
470
471    maybe(
472        http_archive,
473        name = "rules_rust_proto__cfg-if-0.1.10",
474        sha256 = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822",
475        type = "tar.gz",
476        urls = ["https://static.crates.io/crates/cfg-if/0.1.10/download"],
477        strip_prefix = "cfg-if-0.1.10",
478        build_file = Label("@rules_rust//proto/protobuf/3rdparty/crates:BUILD.cfg-if-0.1.10.bazel"),
479    )
480
481    maybe(
482        http_archive,
483        name = "rules_rust_proto__cfg-if-1.0.0",
484        sha256 = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd",
485        type = "tar.gz",
486        urls = ["https://static.crates.io/crates/cfg-if/1.0.0/download"],
487        strip_prefix = "cfg-if-1.0.0",
488        build_file = Label("@rules_rust//proto/protobuf/3rdparty/crates:BUILD.cfg-if-1.0.0.bazel"),
489    )
490
491    maybe(
492        http_archive,
493        name = "rules_rust_proto__cloudabi-0.0.3",
494        sha256 = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f",
495        type = "tar.gz",
496        urls = ["https://static.crates.io/crates/cloudabi/0.0.3/download"],
497        strip_prefix = "cloudabi-0.0.3",
498        build_file = Label("@rules_rust//proto/protobuf/3rdparty/crates:BUILD.cloudabi-0.0.3.bazel"),
499    )
500
501    maybe(
502        http_archive,
503        name = "rules_rust_proto__crossbeam-deque-0.7.4",
504        sha256 = "c20ff29ded3204c5106278a81a38f4b482636ed4fa1e6cfbeef193291beb29ed",
505        type = "tar.gz",
506        urls = ["https://static.crates.io/crates/crossbeam-deque/0.7.4/download"],
507        strip_prefix = "crossbeam-deque-0.7.4",
508        build_file = Label("@rules_rust//proto/protobuf/3rdparty/crates:BUILD.crossbeam-deque-0.7.4.bazel"),
509    )
510
511    maybe(
512        http_archive,
513        name = "rules_rust_proto__crossbeam-epoch-0.8.2",
514        sha256 = "058ed274caafc1f60c4997b5fc07bf7dc7cca454af7c6e81edffe5f33f70dace",
515        type = "tar.gz",
516        urls = ["https://static.crates.io/crates/crossbeam-epoch/0.8.2/download"],
517        strip_prefix = "crossbeam-epoch-0.8.2",
518        build_file = Label("@rules_rust//proto/protobuf/3rdparty/crates:BUILD.crossbeam-epoch-0.8.2.bazel"),
519    )
520
521    maybe(
522        http_archive,
523        name = "rules_rust_proto__crossbeam-queue-0.2.3",
524        sha256 = "774ba60a54c213d409d5353bda12d49cd68d14e45036a285234c8d6f91f92570",
525        type = "tar.gz",
526        urls = ["https://static.crates.io/crates/crossbeam-queue/0.2.3/download"],
527        strip_prefix = "crossbeam-queue-0.2.3",
528        build_file = Label("@rules_rust//proto/protobuf/3rdparty/crates:BUILD.crossbeam-queue-0.2.3.bazel"),
529    )
530
531    maybe(
532        http_archive,
533        name = "rules_rust_proto__crossbeam-utils-0.7.2",
534        sha256 = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8",
535        type = "tar.gz",
536        urls = ["https://static.crates.io/crates/crossbeam-utils/0.7.2/download"],
537        strip_prefix = "crossbeam-utils-0.7.2",
538        build_file = Label("@rules_rust//proto/protobuf/3rdparty/crates:BUILD.crossbeam-utils-0.7.2.bazel"),
539    )
540
541    maybe(
542        http_archive,
543        name = "rules_rust_proto__fnv-1.0.7",
544        sha256 = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1",
545        type = "tar.gz",
546        urls = ["https://static.crates.io/crates/fnv/1.0.7/download"],
547        strip_prefix = "fnv-1.0.7",
548        build_file = Label("@rules_rust//proto/protobuf/3rdparty/crates:BUILD.fnv-1.0.7.bazel"),
549    )
550
551    maybe(
552        http_archive,
553        name = "rules_rust_proto__fuchsia-zircon-0.3.3",
554        sha256 = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82",
555        type = "tar.gz",
556        urls = ["https://static.crates.io/crates/fuchsia-zircon/0.3.3/download"],
557        strip_prefix = "fuchsia-zircon-0.3.3",
558        build_file = Label("@rules_rust//proto/protobuf/3rdparty/crates:BUILD.fuchsia-zircon-0.3.3.bazel"),
559    )
560
561    maybe(
562        http_archive,
563        name = "rules_rust_proto__fuchsia-zircon-sys-0.3.3",
564        sha256 = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7",
565        type = "tar.gz",
566        urls = ["https://static.crates.io/crates/fuchsia-zircon-sys/0.3.3/download"],
567        strip_prefix = "fuchsia-zircon-sys-0.3.3",
568        build_file = Label("@rules_rust//proto/protobuf/3rdparty/crates:BUILD.fuchsia-zircon-sys-0.3.3.bazel"),
569    )
570
571    maybe(
572        http_archive,
573        name = "rules_rust_proto__futures-0.1.31",
574        sha256 = "3a471a38ef8ed83cd6e40aa59c1ffe17db6855c18e3604d9c4ed8c08ebc28678",
575        type = "tar.gz",
576        urls = ["https://static.crates.io/crates/futures/0.1.31/download"],
577        strip_prefix = "futures-0.1.31",
578        build_file = Label("@rules_rust//proto/protobuf/3rdparty/crates:BUILD.futures-0.1.31.bazel"),
579    )
580
581    maybe(
582        http_archive,
583        name = "rules_rust_proto__futures-cpupool-0.1.8",
584        sha256 = "ab90cde24b3319636588d0c35fe03b1333857621051837ed769faefb4c2162e4",
585        type = "tar.gz",
586        urls = ["https://static.crates.io/crates/futures-cpupool/0.1.8/download"],
587        strip_prefix = "futures-cpupool-0.1.8",
588        build_file = Label("@rules_rust//proto/protobuf/3rdparty/crates:BUILD.futures-cpupool-0.1.8.bazel"),
589    )
590
591    maybe(
592        http_archive,
593        name = "rules_rust_proto__grpc-0.6.2",
594        sha256 = "2aaf1d741fe6f3413f1f9f71b99f5e4e26776d563475a8a53ce53a73a8534c1d",
595        type = "tar.gz",
596        urls = ["https://static.crates.io/crates/grpc/0.6.2/download"],
597        strip_prefix = "grpc-0.6.2",
598        build_file = Label("@rules_rust//proto/protobuf/3rdparty/crates:BUILD.grpc-0.6.2.bazel"),
599    )
600
601    maybe(
602        http_archive,
603        name = "rules_rust_proto__grpc-compiler-0.6.2",
604        sha256 = "907274ce8ee7b40a0d0b0db09022ea22846a47cfb1fc8ad2c983c70001b4ffb1",
605        type = "tar.gz",
606        urls = ["https://static.crates.io/crates/grpc-compiler/0.6.2/download"],
607        strip_prefix = "grpc-compiler-0.6.2",
608        build_file = Label("@rules_rust//proto/protobuf/3rdparty/crates:BUILD.grpc-compiler-0.6.2.bazel"),
609    )
610
611    maybe(
612        http_archive,
613        name = "rules_rust_proto__hermit-abi-0.2.6",
614        sha256 = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7",
615        type = "tar.gz",
616        urls = ["https://static.crates.io/crates/hermit-abi/0.2.6/download"],
617        strip_prefix = "hermit-abi-0.2.6",
618        build_file = Label("@rules_rust//proto/protobuf/3rdparty/crates:BUILD.hermit-abi-0.2.6.bazel"),
619    )
620
621    maybe(
622        http_archive,
623        name = "rules_rust_proto__httpbis-0.7.0",
624        sha256 = "7689cfa896b2a71da4f16206af167542b75d242b6906313e53857972a92d5614",
625        type = "tar.gz",
626        urls = ["https://static.crates.io/crates/httpbis/0.7.0/download"],
627        strip_prefix = "httpbis-0.7.0",
628        build_file = Label("@rules_rust//proto/protobuf/3rdparty/crates:BUILD.httpbis-0.7.0.bazel"),
629    )
630
631    maybe(
632        http_archive,
633        name = "rules_rust_proto__iovec-0.1.4",
634        sha256 = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e",
635        type = "tar.gz",
636        urls = ["https://static.crates.io/crates/iovec/0.1.4/download"],
637        strip_prefix = "iovec-0.1.4",
638        build_file = Label("@rules_rust//proto/protobuf/3rdparty/crates:BUILD.iovec-0.1.4.bazel"),
639    )
640
641    maybe(
642        http_archive,
643        name = "rules_rust_proto__kernel32-sys-0.2.2",
644        sha256 = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d",
645        type = "tar.gz",
646        urls = ["https://static.crates.io/crates/kernel32-sys/0.2.2/download"],
647        strip_prefix = "kernel32-sys-0.2.2",
648        build_file = Label("@rules_rust//proto/protobuf/3rdparty/crates:BUILD.kernel32-sys-0.2.2.bazel"),
649    )
650
651    maybe(
652        http_archive,
653        name = "rules_rust_proto__lazy_static-1.4.0",
654        sha256 = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646",
655        type = "tar.gz",
656        urls = ["https://static.crates.io/crates/lazy_static/1.4.0/download"],
657        strip_prefix = "lazy_static-1.4.0",
658        build_file = Label("@rules_rust//proto/protobuf/3rdparty/crates:BUILD.lazy_static-1.4.0.bazel"),
659    )
660
661    maybe(
662        http_archive,
663        name = "rules_rust_proto__libc-0.2.139",
664        sha256 = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79",
665        type = "tar.gz",
666        urls = ["https://static.crates.io/crates/libc/0.2.139/download"],
667        strip_prefix = "libc-0.2.139",
668        build_file = Label("@rules_rust//proto/protobuf/3rdparty/crates:BUILD.libc-0.2.139.bazel"),
669    )
670
671    maybe(
672        http_archive,
673        name = "rules_rust_proto__lock_api-0.3.4",
674        sha256 = "c4da24a77a3d8a6d4862d95f72e6fdb9c09a643ecdb402d754004a557f2bec75",
675        type = "tar.gz",
676        urls = ["https://static.crates.io/crates/lock_api/0.3.4/download"],
677        strip_prefix = "lock_api-0.3.4",
678        build_file = Label("@rules_rust//proto/protobuf/3rdparty/crates:BUILD.lock_api-0.3.4.bazel"),
679    )
680
681    maybe(
682        http_archive,
683        name = "rules_rust_proto__log-0.3.9",
684        sha256 = "e19e8d5c34a3e0e2223db8e060f9e8264aeeb5c5fc64a4ee9965c062211c024b",
685        type = "tar.gz",
686        urls = ["https://static.crates.io/crates/log/0.3.9/download"],
687        strip_prefix = "log-0.3.9",
688        build_file = Label("@rules_rust//proto/protobuf/3rdparty/crates:BUILD.log-0.3.9.bazel"),
689    )
690
691    maybe(
692        http_archive,
693        name = "rules_rust_proto__log-0.4.17",
694        sha256 = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e",
695        type = "tar.gz",
696        urls = ["https://static.crates.io/crates/log/0.4.17/download"],
697        strip_prefix = "log-0.4.17",
698        build_file = Label("@rules_rust//proto/protobuf/3rdparty/crates:BUILD.log-0.4.17.bazel"),
699    )
700
701    maybe(
702        http_archive,
703        name = "rules_rust_proto__maybe-uninit-2.0.0",
704        sha256 = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00",
705        type = "tar.gz",
706        urls = ["https://static.crates.io/crates/maybe-uninit/2.0.0/download"],
707        strip_prefix = "maybe-uninit-2.0.0",
708        build_file = Label("@rules_rust//proto/protobuf/3rdparty/crates:BUILD.maybe-uninit-2.0.0.bazel"),
709    )
710
711    maybe(
712        http_archive,
713        name = "rules_rust_proto__memoffset-0.5.6",
714        sha256 = "043175f069eda7b85febe4a74abbaeff828d9f8b448515d3151a14a3542811aa",
715        type = "tar.gz",
716        urls = ["https://static.crates.io/crates/memoffset/0.5.6/download"],
717        strip_prefix = "memoffset-0.5.6",
718        build_file = Label("@rules_rust//proto/protobuf/3rdparty/crates:BUILD.memoffset-0.5.6.bazel"),
719    )
720
721    maybe(
722        http_archive,
723        name = "rules_rust_proto__mio-0.6.23",
724        sha256 = "4afd66f5b91bf2a3bc13fad0e21caedac168ca4c707504e75585648ae80e4cc4",
725        type = "tar.gz",
726        urls = ["https://static.crates.io/crates/mio/0.6.23/download"],
727        strip_prefix = "mio-0.6.23",
728        build_file = Label("@rules_rust//proto/protobuf/3rdparty/crates:BUILD.mio-0.6.23.bazel"),
729    )
730
731    maybe(
732        http_archive,
733        name = "rules_rust_proto__mio-uds-0.6.8",
734        sha256 = "afcb699eb26d4332647cc848492bbc15eafb26f08d0304550d5aa1f612e066f0",
735        type = "tar.gz",
736        urls = ["https://static.crates.io/crates/mio-uds/0.6.8/download"],
737        strip_prefix = "mio-uds-0.6.8",
738        build_file = Label("@rules_rust//proto/protobuf/3rdparty/crates:BUILD.mio-uds-0.6.8.bazel"),
739    )
740
741    maybe(
742        http_archive,
743        name = "rules_rust_proto__miow-0.2.2",
744        sha256 = "ebd808424166322d4a38da87083bfddd3ac4c131334ed55856112eb06d46944d",
745        type = "tar.gz",
746        urls = ["https://static.crates.io/crates/miow/0.2.2/download"],
747        strip_prefix = "miow-0.2.2",
748        build_file = Label("@rules_rust//proto/protobuf/3rdparty/crates:BUILD.miow-0.2.2.bazel"),
749    )
750
751    maybe(
752        http_archive,
753        name = "rules_rust_proto__net2-0.2.38",
754        sha256 = "74d0df99cfcd2530b2e694f6e17e7f37b8e26bb23983ac530c0c97408837c631",
755        type = "tar.gz",
756        urls = ["https://static.crates.io/crates/net2/0.2.38/download"],
757        strip_prefix = "net2-0.2.38",
758        build_file = Label("@rules_rust//proto/protobuf/3rdparty/crates:BUILD.net2-0.2.38.bazel"),
759    )
760
761    maybe(
762        http_archive,
763        name = "rules_rust_proto__num_cpus-1.15.0",
764        sha256 = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b",
765        type = "tar.gz",
766        urls = ["https://static.crates.io/crates/num_cpus/1.15.0/download"],
767        strip_prefix = "num_cpus-1.15.0",
768        build_file = Label("@rules_rust//proto/protobuf/3rdparty/crates:BUILD.num_cpus-1.15.0.bazel"),
769    )
770
771    maybe(
772        http_archive,
773        name = "rules_rust_proto__parking_lot-0.9.0",
774        sha256 = "f842b1982eb6c2fe34036a4fbfb06dd185a3f5c8edfaacdf7d1ea10b07de6252",
775        type = "tar.gz",
776        urls = ["https://static.crates.io/crates/parking_lot/0.9.0/download"],
777        strip_prefix = "parking_lot-0.9.0",
778        build_file = Label("@rules_rust//proto/protobuf/3rdparty/crates:BUILD.parking_lot-0.9.0.bazel"),
779    )
780
781    maybe(
782        http_archive,
783        name = "rules_rust_proto__parking_lot_core-0.6.3",
784        sha256 = "bda66b810a62be75176a80873726630147a5ca780cd33921e0b5709033e66b0a",
785        type = "tar.gz",
786        urls = ["https://static.crates.io/crates/parking_lot_core/0.6.3/download"],
787        strip_prefix = "parking_lot_core-0.6.3",
788        build_file = Label("@rules_rust//proto/protobuf/3rdparty/crates:BUILD.parking_lot_core-0.6.3.bazel"),
789    )
790
791    maybe(
792        http_archive,
793        name = "rules_rust_proto__protobuf-2.8.2",
794        patch_args = [
795            "-p1",
796        ],
797        patches = [
798            "@rules_rust//proto/protobuf/3rdparty/patches:protobuf-2.8.2.patch",
799        ],
800        sha256 = "70731852eec72c56d11226c8a5f96ad5058a3dab73647ca5f7ee351e464f2571",
801        type = "tar.gz",
802        urls = ["https://static.crates.io/crates/protobuf/2.8.2/download"],
803        strip_prefix = "protobuf-2.8.2",
804        build_file = Label("@rules_rust//proto/protobuf/3rdparty/crates:BUILD.protobuf-2.8.2.bazel"),
805    )
806
807    maybe(
808        http_archive,
809        name = "rules_rust_proto__protobuf-codegen-2.8.2",
810        sha256 = "3d74b9cbbf2ac9a7169c85a3714ec16c51ee9ec7cfd511549527e9a7df720795",
811        type = "tar.gz",
812        urls = ["https://static.crates.io/crates/protobuf-codegen/2.8.2/download"],
813        strip_prefix = "protobuf-codegen-2.8.2",
814        build_file = Label("@rules_rust//proto/protobuf/3rdparty/crates:BUILD.protobuf-codegen-2.8.2.bazel"),
815    )
816
817    maybe(
818        http_archive,
819        name = "rules_rust_proto__redox_syscall-0.1.57",
820        sha256 = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce",
821        type = "tar.gz",
822        urls = ["https://static.crates.io/crates/redox_syscall/0.1.57/download"],
823        strip_prefix = "redox_syscall-0.1.57",
824        build_file = Label("@rules_rust//proto/protobuf/3rdparty/crates:BUILD.redox_syscall-0.1.57.bazel"),
825    )
826
827    maybe(
828        http_archive,
829        name = "rules_rust_proto__rustc_version-0.2.3",
830        sha256 = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a",
831        type = "tar.gz",
832        urls = ["https://static.crates.io/crates/rustc_version/0.2.3/download"],
833        strip_prefix = "rustc_version-0.2.3",
834        build_file = Label("@rules_rust//proto/protobuf/3rdparty/crates:BUILD.rustc_version-0.2.3.bazel"),
835    )
836
837    maybe(
838        http_archive,
839        name = "rules_rust_proto__safemem-0.3.3",
840        sha256 = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072",
841        type = "tar.gz",
842        urls = ["https://static.crates.io/crates/safemem/0.3.3/download"],
843        strip_prefix = "safemem-0.3.3",
844        build_file = Label("@rules_rust//proto/protobuf/3rdparty/crates:BUILD.safemem-0.3.3.bazel"),
845    )
846
847    maybe(
848        http_archive,
849        name = "rules_rust_proto__scoped-tls-0.1.2",
850        sha256 = "332ffa32bf586782a3efaeb58f127980944bbc8c4d6913a86107ac2a5ab24b28",
851        type = "tar.gz",
852        urls = ["https://static.crates.io/crates/scoped-tls/0.1.2/download"],
853        strip_prefix = "scoped-tls-0.1.2",
854        build_file = Label("@rules_rust//proto/protobuf/3rdparty/crates:BUILD.scoped-tls-0.1.2.bazel"),
855    )
856
857    maybe(
858        http_archive,
859        name = "rules_rust_proto__scopeguard-1.1.0",
860        sha256 = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd",
861        type = "tar.gz",
862        urls = ["https://static.crates.io/crates/scopeguard/1.1.0/download"],
863        strip_prefix = "scopeguard-1.1.0",
864        build_file = Label("@rules_rust//proto/protobuf/3rdparty/crates:BUILD.scopeguard-1.1.0.bazel"),
865    )
866
867    maybe(
868        http_archive,
869        name = "rules_rust_proto__semver-0.9.0",
870        sha256 = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403",
871        type = "tar.gz",
872        urls = ["https://static.crates.io/crates/semver/0.9.0/download"],
873        strip_prefix = "semver-0.9.0",
874        build_file = Label("@rules_rust//proto/protobuf/3rdparty/crates:BUILD.semver-0.9.0.bazel"),
875    )
876
877    maybe(
878        http_archive,
879        name = "rules_rust_proto__semver-parser-0.7.0",
880        sha256 = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3",
881        type = "tar.gz",
882        urls = ["https://static.crates.io/crates/semver-parser/0.7.0/download"],
883        strip_prefix = "semver-parser-0.7.0",
884        build_file = Label("@rules_rust//proto/protobuf/3rdparty/crates:BUILD.semver-parser-0.7.0.bazel"),
885    )
886
887    maybe(
888        http_archive,
889        name = "rules_rust_proto__slab-0.3.0",
890        sha256 = "17b4fcaed89ab08ef143da37bc52adbcc04d4a69014f4c1208d6b51f0c47bc23",
891        type = "tar.gz",
892        urls = ["https://static.crates.io/crates/slab/0.3.0/download"],
893        strip_prefix = "slab-0.3.0",
894        build_file = Label("@rules_rust//proto/protobuf/3rdparty/crates:BUILD.slab-0.3.0.bazel"),
895    )
896
897    maybe(
898        http_archive,
899        name = "rules_rust_proto__slab-0.4.7",
900        sha256 = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef",
901        type = "tar.gz",
902        urls = ["https://static.crates.io/crates/slab/0.4.7/download"],
903        strip_prefix = "slab-0.4.7",
904        build_file = Label("@rules_rust//proto/protobuf/3rdparty/crates:BUILD.slab-0.4.7.bazel"),
905    )
906
907    maybe(
908        http_archive,
909        name = "rules_rust_proto__smallvec-0.6.14",
910        sha256 = "b97fcaeba89edba30f044a10c6a3cc39df9c3f17d7cd829dd1446cab35f890e0",
911        type = "tar.gz",
912        urls = ["https://static.crates.io/crates/smallvec/0.6.14/download"],
913        strip_prefix = "smallvec-0.6.14",
914        build_file = Label("@rules_rust//proto/protobuf/3rdparty/crates:BUILD.smallvec-0.6.14.bazel"),
915    )
916
917    maybe(
918        http_archive,
919        name = "rules_rust_proto__tls-api-0.1.22",
920        sha256 = "049c03787a0595182357fbd487577947f4351b78ce20c3668f6d49f17feb13d1",
921        type = "tar.gz",
922        urls = ["https://static.crates.io/crates/tls-api/0.1.22/download"],
923        strip_prefix = "tls-api-0.1.22",
924        build_file = Label("@rules_rust//proto/protobuf/3rdparty/crates:BUILD.tls-api-0.1.22.bazel"),
925    )
926
927    maybe(
928        http_archive,
929        name = "rules_rust_proto__tls-api-stub-0.1.22",
930        sha256 = "c9a0cc8c149724db9de7d73a0e1bc80b1a74f5394f08c6f301e11f9c35fa061e",
931        type = "tar.gz",
932        urls = ["https://static.crates.io/crates/tls-api-stub/0.1.22/download"],
933        strip_prefix = "tls-api-stub-0.1.22",
934        build_file = Label("@rules_rust//proto/protobuf/3rdparty/crates:BUILD.tls-api-stub-0.1.22.bazel"),
935    )
936
937    maybe(
938        http_archive,
939        name = "rules_rust_proto__tokio-0.1.22",
940        sha256 = "5a09c0b5bb588872ab2f09afa13ee6e9dac11e10a0ec9e8e3ba39a5a5d530af6",
941        type = "tar.gz",
942        urls = ["https://static.crates.io/crates/tokio/0.1.22/download"],
943        strip_prefix = "tokio-0.1.22",
944        build_file = Label("@rules_rust//proto/protobuf/3rdparty/crates:BUILD.tokio-0.1.22.bazel"),
945    )
946
947    maybe(
948        http_archive,
949        name = "rules_rust_proto__tokio-codec-0.1.2",
950        sha256 = "25b2998660ba0e70d18684de5d06b70b70a3a747469af9dea7618cc59e75976b",
951        type = "tar.gz",
952        urls = ["https://static.crates.io/crates/tokio-codec/0.1.2/download"],
953        strip_prefix = "tokio-codec-0.1.2",
954        build_file = Label("@rules_rust//proto/protobuf/3rdparty/crates:BUILD.tokio-codec-0.1.2.bazel"),
955    )
956
957    maybe(
958        http_archive,
959        name = "rules_rust_proto__tokio-core-0.1.18",
960        sha256 = "87b1395334443abca552f63d4f61d0486f12377c2ba8b368e523f89e828cffd4",
961        type = "tar.gz",
962        urls = ["https://static.crates.io/crates/tokio-core/0.1.18/download"],
963        strip_prefix = "tokio-core-0.1.18",
964        build_file = Label("@rules_rust//proto/protobuf/3rdparty/crates:BUILD.tokio-core-0.1.18.bazel"),
965    )
966
967    maybe(
968        http_archive,
969        name = "rules_rust_proto__tokio-current-thread-0.1.7",
970        sha256 = "b1de0e32a83f131e002238d7ccde18211c0a5397f60cbfffcb112868c2e0e20e",
971        type = "tar.gz",
972        urls = ["https://static.crates.io/crates/tokio-current-thread/0.1.7/download"],
973        strip_prefix = "tokio-current-thread-0.1.7",
974        build_file = Label("@rules_rust//proto/protobuf/3rdparty/crates:BUILD.tokio-current-thread-0.1.7.bazel"),
975    )
976
977    maybe(
978        http_archive,
979        name = "rules_rust_proto__tokio-executor-0.1.10",
980        sha256 = "fb2d1b8f4548dbf5e1f7818512e9c406860678f29c300cdf0ebac72d1a3a1671",
981        type = "tar.gz",
982        urls = ["https://static.crates.io/crates/tokio-executor/0.1.10/download"],
983        strip_prefix = "tokio-executor-0.1.10",
984        build_file = Label("@rules_rust//proto/protobuf/3rdparty/crates:BUILD.tokio-executor-0.1.10.bazel"),
985    )
986
987    maybe(
988        http_archive,
989        name = "rules_rust_proto__tokio-fs-0.1.7",
990        sha256 = "297a1206e0ca6302a0eed35b700d292b275256f596e2f3fea7729d5e629b6ff4",
991        type = "tar.gz",
992        urls = ["https://static.crates.io/crates/tokio-fs/0.1.7/download"],
993        strip_prefix = "tokio-fs-0.1.7",
994        build_file = Label("@rules_rust//proto/protobuf/3rdparty/crates:BUILD.tokio-fs-0.1.7.bazel"),
995    )
996
997    maybe(
998        http_archive,
999        name = "rules_rust_proto__tokio-io-0.1.13",
1000        sha256 = "57fc868aae093479e3131e3d165c93b1c7474109d13c90ec0dda2a1bbfff0674",
1001        type = "tar.gz",
1002        urls = ["https://static.crates.io/crates/tokio-io/0.1.13/download"],
1003        strip_prefix = "tokio-io-0.1.13",
1004        build_file = Label("@rules_rust//proto/protobuf/3rdparty/crates:BUILD.tokio-io-0.1.13.bazel"),
1005    )
1006
1007    maybe(
1008        http_archive,
1009        name = "rules_rust_proto__tokio-reactor-0.1.12",
1010        sha256 = "09bc590ec4ba8ba87652da2068d150dcada2cfa2e07faae270a5e0409aa51351",
1011        type = "tar.gz",
1012        urls = ["https://static.crates.io/crates/tokio-reactor/0.1.12/download"],
1013        strip_prefix = "tokio-reactor-0.1.12",
1014        build_file = Label("@rules_rust//proto/protobuf/3rdparty/crates:BUILD.tokio-reactor-0.1.12.bazel"),
1015    )
1016
1017    maybe(
1018        http_archive,
1019        name = "rules_rust_proto__tokio-sync-0.1.8",
1020        sha256 = "edfe50152bc8164fcc456dab7891fa9bf8beaf01c5ee7e1dd43a397c3cf87dee",
1021        type = "tar.gz",
1022        urls = ["https://static.crates.io/crates/tokio-sync/0.1.8/download"],
1023        strip_prefix = "tokio-sync-0.1.8",
1024        build_file = Label("@rules_rust//proto/protobuf/3rdparty/crates:BUILD.tokio-sync-0.1.8.bazel"),
1025    )
1026
1027    maybe(
1028        http_archive,
1029        name = "rules_rust_proto__tokio-tcp-0.1.4",
1030        sha256 = "98df18ed66e3b72e742f185882a9e201892407957e45fbff8da17ae7a7c51f72",
1031        type = "tar.gz",
1032        urls = ["https://static.crates.io/crates/tokio-tcp/0.1.4/download"],
1033        strip_prefix = "tokio-tcp-0.1.4",
1034        build_file = Label("@rules_rust//proto/protobuf/3rdparty/crates:BUILD.tokio-tcp-0.1.4.bazel"),
1035    )
1036
1037    maybe(
1038        http_archive,
1039        name = "rules_rust_proto__tokio-threadpool-0.1.18",
1040        sha256 = "df720b6581784c118f0eb4310796b12b1d242a7eb95f716a8367855325c25f89",
1041        type = "tar.gz",
1042        urls = ["https://static.crates.io/crates/tokio-threadpool/0.1.18/download"],
1043        strip_prefix = "tokio-threadpool-0.1.18",
1044        build_file = Label("@rules_rust//proto/protobuf/3rdparty/crates:BUILD.tokio-threadpool-0.1.18.bazel"),
1045    )
1046
1047    maybe(
1048        http_archive,
1049        name = "rules_rust_proto__tokio-timer-0.1.2",
1050        sha256 = "6131e780037787ff1b3f8aad9da83bca02438b72277850dd6ad0d455e0e20efc",
1051        type = "tar.gz",
1052        urls = ["https://static.crates.io/crates/tokio-timer/0.1.2/download"],
1053        strip_prefix = "tokio-timer-0.1.2",
1054        build_file = Label("@rules_rust//proto/protobuf/3rdparty/crates:BUILD.tokio-timer-0.1.2.bazel"),
1055    )
1056
1057    maybe(
1058        http_archive,
1059        name = "rules_rust_proto__tokio-timer-0.2.13",
1060        sha256 = "93044f2d313c95ff1cb7809ce9a7a05735b012288a888b62d4434fd58c94f296",
1061        type = "tar.gz",
1062        urls = ["https://static.crates.io/crates/tokio-timer/0.2.13/download"],
1063        strip_prefix = "tokio-timer-0.2.13",
1064        build_file = Label("@rules_rust//proto/protobuf/3rdparty/crates:BUILD.tokio-timer-0.2.13.bazel"),
1065    )
1066
1067    maybe(
1068        http_archive,
1069        name = "rules_rust_proto__tokio-tls-api-0.1.22",
1070        sha256 = "68d0e040d5b1f4cfca70ec4f371229886a5de5bb554d272a4a8da73004a7b2c9",
1071        type = "tar.gz",
1072        urls = ["https://static.crates.io/crates/tokio-tls-api/0.1.22/download"],
1073        strip_prefix = "tokio-tls-api-0.1.22",
1074        build_file = Label("@rules_rust//proto/protobuf/3rdparty/crates:BUILD.tokio-tls-api-0.1.22.bazel"),
1075    )
1076
1077    maybe(
1078        http_archive,
1079        name = "rules_rust_proto__tokio-udp-0.1.6",
1080        sha256 = "e2a0b10e610b39c38b031a2fcab08e4b82f16ece36504988dcbd81dbba650d82",
1081        type = "tar.gz",
1082        urls = ["https://static.crates.io/crates/tokio-udp/0.1.6/download"],
1083        strip_prefix = "tokio-udp-0.1.6",
1084        build_file = Label("@rules_rust//proto/protobuf/3rdparty/crates:BUILD.tokio-udp-0.1.6.bazel"),
1085    )
1086
1087    maybe(
1088        http_archive,
1089        name = "rules_rust_proto__tokio-uds-0.1.7",
1090        sha256 = "65ae5d255ce739e8537221ed2942e0445f4b3b813daebac1c0050ddaaa3587f9",
1091        type = "tar.gz",
1092        urls = ["https://static.crates.io/crates/tokio-uds/0.1.7/download"],
1093        strip_prefix = "tokio-uds-0.1.7",
1094        build_file = Label("@rules_rust//proto/protobuf/3rdparty/crates:BUILD.tokio-uds-0.1.7.bazel"),
1095    )
1096
1097    maybe(
1098        http_archive,
1099        name = "rules_rust_proto__tokio-uds-0.2.7",
1100        sha256 = "ab57a4ac4111c8c9dbcf70779f6fc8bc35ae4b2454809febac840ad19bd7e4e0",
1101        type = "tar.gz",
1102        urls = ["https://static.crates.io/crates/tokio-uds/0.2.7/download"],
1103        strip_prefix = "tokio-uds-0.2.7",
1104        build_file = Label("@rules_rust//proto/protobuf/3rdparty/crates:BUILD.tokio-uds-0.2.7.bazel"),
1105    )
1106
1107    maybe(
1108        http_archive,
1109        name = "rules_rust_proto__unix_socket-0.5.0",
1110        sha256 = "6aa2700417c405c38f5e6902d699345241c28c0b7ade4abaad71e35a87eb1564",
1111        type = "tar.gz",
1112        urls = ["https://static.crates.io/crates/unix_socket/0.5.0/download"],
1113        strip_prefix = "unix_socket-0.5.0",
1114        build_file = Label("@rules_rust//proto/protobuf/3rdparty/crates:BUILD.unix_socket-0.5.0.bazel"),
1115    )
1116
1117    maybe(
1118        http_archive,
1119        name = "rules_rust_proto__void-1.0.2",
1120        sha256 = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d",
1121        type = "tar.gz",
1122        urls = ["https://static.crates.io/crates/void/1.0.2/download"],
1123        strip_prefix = "void-1.0.2",
1124        build_file = Label("@rules_rust//proto/protobuf/3rdparty/crates:BUILD.void-1.0.2.bazel"),
1125    )
1126
1127    maybe(
1128        http_archive,
1129        name = "rules_rust_proto__winapi-0.2.8",
1130        sha256 = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a",
1131        type = "tar.gz",
1132        urls = ["https://static.crates.io/crates/winapi/0.2.8/download"],
1133        strip_prefix = "winapi-0.2.8",
1134        build_file = Label("@rules_rust//proto/protobuf/3rdparty/crates:BUILD.winapi-0.2.8.bazel"),
1135    )
1136
1137    maybe(
1138        http_archive,
1139        name = "rules_rust_proto__winapi-0.3.9",
1140        sha256 = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419",
1141        type = "tar.gz",
1142        urls = ["https://static.crates.io/crates/winapi/0.3.9/download"],
1143        strip_prefix = "winapi-0.3.9",
1144        build_file = Label("@rules_rust//proto/protobuf/3rdparty/crates:BUILD.winapi-0.3.9.bazel"),
1145    )
1146
1147    maybe(
1148        http_archive,
1149        name = "rules_rust_proto__winapi-build-0.1.1",
1150        sha256 = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc",
1151        type = "tar.gz",
1152        urls = ["https://static.crates.io/crates/winapi-build/0.1.1/download"],
1153        strip_prefix = "winapi-build-0.1.1",
1154        build_file = Label("@rules_rust//proto/protobuf/3rdparty/crates:BUILD.winapi-build-0.1.1.bazel"),
1155    )
1156
1157    maybe(
1158        http_archive,
1159        name = "rules_rust_proto__winapi-i686-pc-windows-gnu-0.4.0",
1160        sha256 = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6",
1161        type = "tar.gz",
1162        urls = ["https://static.crates.io/crates/winapi-i686-pc-windows-gnu/0.4.0/download"],
1163        strip_prefix = "winapi-i686-pc-windows-gnu-0.4.0",
1164        build_file = Label("@rules_rust//proto/protobuf/3rdparty/crates:BUILD.winapi-i686-pc-windows-gnu-0.4.0.bazel"),
1165    )
1166
1167    maybe(
1168        http_archive,
1169        name = "rules_rust_proto__winapi-x86_64-pc-windows-gnu-0.4.0",
1170        sha256 = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f",
1171        type = "tar.gz",
1172        urls = ["https://static.crates.io/crates/winapi-x86_64-pc-windows-gnu/0.4.0/download"],
1173        strip_prefix = "winapi-x86_64-pc-windows-gnu-0.4.0",
1174        build_file = Label("@rules_rust//proto/protobuf/3rdparty/crates:BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel"),
1175    )
1176
1177    maybe(
1178        http_archive,
1179        name = "rules_rust_proto__ws2_32-sys-0.2.1",
1180        sha256 = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e",
1181        type = "tar.gz",
1182        urls = ["https://static.crates.io/crates/ws2_32-sys/0.2.1/download"],
1183        strip_prefix = "ws2_32-sys-0.2.1",
1184        build_file = Label("@rules_rust//proto/protobuf/3rdparty/crates:BUILD.ws2_32-sys-0.2.1.bazel"),
1185    )
1186
1187    return [
1188        struct(repo = "rules_rust_proto__grpc-0.6.2", is_dev_dep = False),
1189        struct(repo = "rules_rust_proto__grpc-compiler-0.6.2", is_dev_dep = False),
1190        struct(repo = "rules_rust_proto__log-0.4.17", is_dev_dep = False),
1191        struct(repo = "rules_rust_proto__protobuf-2.8.2", is_dev_dep = False),
1192        struct(repo = "rules_rust_proto__protobuf-codegen-2.8.2", is_dev_dep = False),
1193        struct(repo = "rules_rust_proto__tls-api-0.1.22", is_dev_dep = False),
1194        struct(repo = "rules_rust_proto__tls-api-stub-0.1.22", is_dev_dep = False),
1195    ]
1196