# Part of the Crubit project, under the Apache License v2.0 with LLVM
# Exceptions. See /LICENSE for license information.
# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception

# Automatically @generated Cargo.toml for the Rust crate crubit_feature.

[package]
name = "crubit_feature"
edition.workspace = true

license-file.workspace = true
repository.workspace = true
categories.workspace = true

[lib]
path = "../../../common/crubit_feature.rs"

[dependencies]
flagset.workspace = true
serde.workspace = true
