use crate::codegen_request::node::types::Type;
use capnp::schema_capnp;
use capnp_conv2::capnp_conv;
use serde::{Deserialize, Serialize};
#[capnp_conv(schema_capnp::brand)]
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Brand {
pub scopes: Vec<BrandScope>,
}
#[capnp_conv(schema_capnp::brand::scope)]
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct BrandScope {
pub scope_id: u64,
#[capnp_conv(type = "unnamed_union")]
pub kind: BrandScopeKind,
}
#[capnp_conv(schema_capnp::brand::scope)]
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum BrandScopeKind {
Bind(Vec<BrandBinding>),
Inherit(()),
}
#[capnp_conv(schema_capnp::brand::binding)]
#[derive(Debug, Clone, Serialize, Deserialize)]
pub enum BrandBinding {
Unbound(()),
Type(Type),
}