wit_bindgen_csharp/
lib.rsuse wit_bindgen_core::WorldGenerator;
use wit_component::StringEncoding;
mod csharp_ident;
mod csproj;
mod function;
mod interface;
mod world_generator;
pub use csproj::CSProject;
#[derive(Default, Debug, Clone)]
#[cfg_attr(feature = "clap", derive(clap::Args))]
pub struct Opts {
#[cfg_attr(feature = "clap", arg(long, default_value_t = StringEncoding::default()))]
pub string_encoding: StringEncoding,
#[cfg_attr(feature = "clap", arg(long))]
pub generate_stub: bool,
#[cfg_attr(feature = "clap", arg(short, long, value_enum))]
pub runtime: CSharpRuntime,
#[cfg_attr(feature = "clap", arg(long))]
pub internal: bool,
#[cfg_attr(feature = "clap", arg(long))]
pub skip_support_files: bool,
}
impl Opts {
pub fn build(&self) -> Box<dyn WorldGenerator> {
Box::new(world_generator::CSharp {
opts: self.clone(),
..world_generator::CSharp::default()
})
}
}
#[derive(Default, Debug, Clone, Copy, PartialEq, Eq)]
#[cfg_attr(feature = "clap", derive(clap::ValueEnum))]
pub enum CSharpRuntime {
#[default]
NativeAOT,
Mono,
}