use crate::lang::FunctionId;
use crate::lang::TypeId;
use crate::lang::functions::Signature;
use interoptopus::lang::meta::Emission;
pub enum InterfaceKind {
Plugin,
Service,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum MethodKind {
Regular,
Static,
}
pub struct Method {
pub name: String,
pub kind: MethodKind,
pub base: FunctionId,
pub csharp: Signature,
pub rval_id: TypeId,
pub is_async: bool,
}
pub struct Interface {
pub name: String,
pub emission: Emission,
pub kind: InterfaceKind,
pub methods: Vec<Method>,
}