# Copyright 2015 The Bazel Authors. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#    http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

"""Module with Rust definitions required to write custom Rust rules."""

load(
    "//rust/private:common.bzl",
    _COMMON_PROVIDERS = "COMMON_PROVIDERS",
    _rust_common = "rust_common",
)
load(
    "//rust/private:providers.bzl",
    _BuildInfo = "BuildInfo",
    _ClippyInfo = "ClippyInfo",
    _CrateGroupInfo = "CrateGroupInfo",
    _CrateInfo = "CrateInfo",
    _DepInfo = "DepInfo",
    _DepVariantInfo = "DepVariantInfo",
    _TestCrateInfo = "TestCrateInfo",
    _UnstableRustFeaturesInfo = "UnstableRustFeaturesInfo",
)
load("//rust/private:rustc.bzl", _UnstableSelfProfileInfo = "UnstableSelfProfileInfo")

BuildInfo = _BuildInfo
ClippyInfo = _ClippyInfo
CrateGroupInfo = _CrateGroupInfo
CrateInfo = _CrateInfo
DepInfo = _DepInfo
DepVariantInfo = _DepVariantInfo
TestCrateInfo = _TestCrateInfo
UnstableRustFeaturesInfo = _UnstableRustFeaturesInfo
UnstableSelfProfileInfo = _UnstableSelfProfileInfo
COMMON_PROVIDERS = _COMMON_PROVIDERS

rust_common = _rust_common
