use crate::codegen_request::node::annotation::Annotation;
use crate::codegen_request::node::brand::Brand;
use capnp::schema_capnp;
use capnp_conv2::capnp_conv;
use serde::{Deserialize, Serialize};
#[capnp_conv(schema_capnp::node::interface)]
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct InterfaceNode {
pub methods: Vec<Method>,
pub superclasses: Vec<Superclass>,
}
#[capnp_conv(schema_capnp::method)]
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Method {
pub name: String,
pub code_order: u16,
pub implicit_parameters: Vec<Parameter>,
pub param_struct_type: u64,
pub param_brand: Brand,
pub result_struct_type: u64,
pub result_brand: Brand,
pub annotations: Vec<Annotation>,
}
#[capnp_conv(schema_capnp::superclass)]
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Superclass {
pub id: u64,
pub brand: Brand,
}
#[capnp_conv(schema_capnp::node::parameter)]
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct Parameter {
pub name: String,
}