//! A module for representations of starlark constructs mod glob; mod label; mod select; mod select_dict; mod select_list; mod select_scalar; mod select_set; mod serialize; mod target_compatible_with; use std::collections::BTreeSet as Set; use serde::{Serialize, Serializer}; use serde_starlark::{Error as StarlarkError, FunctionCall}; pub(crate) use glob::*; pub(crate) use label::*; pub(crate) use select::*; pub(crate) use select_dict::*; pub(crate) use select_list::*; pub(crate) use select_scalar::*; pub(crate) use select_set::*; pub(crate) use target_compatible_with::*; #[derive(Serialize)] #[serde(untagged)] pub(crate) enum Starlark { Load(Load), Package(Package), PackageInfo(PackageInfo), License(License), ExportsFiles(ExportsFiles), Filegroup(Filegroup), Alias(Alias), CargoBuildScript(CargoBuildScript), #[serde(serialize_with = "serialize::rust_proc_macro")] RustProcMacro(RustProcMacro), #[serde(serialize_with = "serialize::rust_library")] RustLibrary(RustLibrary), #[serde(serialize_with = "serialize::rust_binary")] RustBinary(RustBinary), #[serde(skip_serializing)] Verbatim(String), } pub(crate) struct Load { pub(crate) bzl: String, pub(crate) items: Set, } pub(crate) struct Package { pub(crate) default_package_metadata: Set