# An alternate implementation of the proto! macro as a proc macro instead of macro_rules.

# This is only in a separate directory due to the top level package being part of the 'core'
# component, and it not being a resolved decision if we want to add all deps of this proc macro to
# the core component.

load("@rules_pkg//pkg:mappings.bzl", "pkg_filegroup", "pkg_files", "strip_prefix")
load("@rules_rust//rust:defs.bzl", "rust_proc_macro")

PROC_MACRO_SRCS = ["proto_proc_macro_impl.rs"]

rust_proc_macro(
    name = "protobuf_macros",
    srcs = PROC_MACRO_SRCS,
    visibility = ["//rust:__subpackages__"],
    deps = [
        "@crate_index//:quote",
        "@crate_index//:syn",
    ],
)

pkg_files(
    name = "rust_protobuf_macros_src",
    srcs = PROC_MACRO_SRCS,
    strip_prefix = strip_prefix.from_root("rust/protobuf_macros"),
)

pkg_filegroup(
    name = "rust_protobuf_macros_src_dir",
    srcs = [
        ":rust_protobuf_macros_src",
    ],
    prefix = "src",
    visibility = ["//rust/release_crates:__subpackages__"],
)
