mirror of
https://github.com/bitcoinresearchkit/brk.git
synced 2026-07-28 19:28:11 -07:00
bindgen: works
This commit is contained in:
@@ -534,7 +534,11 @@ pub fn generate_pattern_structs(
|
||||
|
||||
writeln!(output, "}}\n").unwrap();
|
||||
|
||||
// Generate impl block with constructor for ALL patterns
|
||||
// Skip constructor for non-parameterizable patterns (inlined at tree level)
|
||||
if !metadata.is_parameterizable(&pattern.name) {
|
||||
continue;
|
||||
}
|
||||
|
||||
let impl_generic = if pattern.is_generic {
|
||||
"<T: DeserializeOwned>"
|
||||
} else {
|
||||
|
||||
@@ -99,15 +99,11 @@ fn generate_tree_node(
|
||||
} else {
|
||||
// Pattern type - use ::new() constructor
|
||||
let pattern = metadata.find_pattern(&child.field.rust_type);
|
||||
if pattern.is_some_and(|p| p.is_templated()) {
|
||||
// Templated pattern: pass base and disc
|
||||
let disc = child
|
||||
.base_result
|
||||
.field_parts
|
||||
.values()
|
||||
.filter(|v| !v.is_empty())
|
||||
.min_by_key(|v| v.len())
|
||||
.cloned()
|
||||
if let Some(pat) = pattern
|
||||
&& pat.is_templated()
|
||||
{
|
||||
let disc = pat
|
||||
.extract_disc_from_instance(&child.base_result.field_parts)
|
||||
.unwrap_or_default();
|
||||
writeln!(
|
||||
output,
|
||||
|
||||
Reference in New Issue
Block a user