pub struct CSharpConfig {
pub capsule_types: HashMap<String, HostCapsuleTypeConfig>,
pub namespace: Option<String>,
pub package_id: Option<String>,
pub target_framework: Option<String>,
pub features: Option<Vec<String>>,
pub serde_rename_all: Option<String>,
pub rename_fields: HashMap<String, String>,
pub run_wrapper: Option<String>,
pub extra_lint_paths: Vec<String>,
pub project_file: Option<String>,
pub exclude_types: Vec<String>,
pub exclude_functions: Vec<String>,
}Fields§
§capsule_types: HashMap<String, HostCapsuleTypeConfig>Map of Rust type name -> host-native capsule (Language-passthrough) config.
When set, functions returning the type construct the host runtime’s native
Language (e.g. TreeSitter.Language) from the raw C grammar pointer (an
IntPtr) instead of an opaque handle. See crate::core::config::HostCapsuleTypeConfig.
namespace: Option<String>§package_id: Option<String>NuGet <PackageId> to publish under. When unset, falls back to namespace.
Use this when the published artifact id must differ from the C# RootNamespace —
e.g. when the unprefixed name is owned by a third party on nuget.org and
you publish under a vendor-prefixed id like SampleCrateDev.<Lib>.
target_framework: Option<String>§features: Option<Vec<String>>§serde_rename_all: Option<String>Override the serde rename_all strategy for JSON field names (e.g. “camelCase”, “snake_case”). When set, this takes priority over the IR type-level serde_rename_all.
rename_fields: HashMap<String, String>Per-field name remapping for this language. Key is TypeName.field_name, value is the
desired binding field name. Applied after automatic keyword escaping.
run_wrapper: Option<String>Prefix wrapper for default tool invocations. When set, prepends this string to default commands across all pipelines (lint, test, build, etc.).
extra_lint_paths: Vec<String>Extra paths to append to default lint commands (format, check, typecheck). Ignored when project_file is set.
project_file: Option<String>Project file for C# (e.g., “MyProject.csproj”, “MySolution.sln”). When set, default lint/build/test commands target this file instead of the output directory.
exclude_types: Vec<String>Types to exclude from C# binding generation.
C# bindings call the generated C FFI through P/Invoke, so types excluded from
[crates.ffi].exclude_types are also excluded automatically by the C# backend.
exclude_functions: Vec<String>Functions to exclude from C# binding generation (e.g., functions not present in the C FFI layer). Excluded functions are omitted from both NativeMethods.cs and the wrapper class.
Trait Implementations§
Source§impl Clone for CSharpConfig
impl Clone for CSharpConfig
Source§fn clone(&self) -> CSharpConfig
fn clone(&self) -> CSharpConfig
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for CSharpConfig
impl Debug for CSharpConfig
Source§impl<'de> Deserialize<'de> for CSharpConfig
impl<'de> Deserialize<'de> for CSharpConfig
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl JsonSchema for CSharpConfig
impl JsonSchema for CSharpConfig
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
$ref keyword. Read moreAuto Trait Implementations§
impl Freeze for CSharpConfig
impl RefUnwindSafe for CSharpConfig
impl Send for CSharpConfig
impl Sync for CSharpConfig
impl Unpin for CSharpConfig
impl UnsafeUnpin for CSharpConfig
impl UnwindSafe for CSharpConfig
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more