feat(taxonomy): add rust sidecar compact surface pipeline

This commit is contained in:
2026-03-12 15:23:10 -04:00
parent f2c25fb9c6
commit 58061af006
84 changed files with 19350 additions and 265 deletions

View File

@@ -0,0 +1,36 @@
//! Single file benchmark
use crabrl::Parser;
use std::env;
use std::fs;
use std::time::Instant;
fn main() {
let args: Vec<String> = env::args().collect();
if args.len() != 2 {
eprintln!("Usage: {} <xbrl-file>", args[0]);
std::process::exit(1);
}
let content = fs::read(&args[1]).expect("Failed to read file");
let parser = Parser::new();
let start = Instant::now();
match parser.parse_bytes(&content) {
Ok(document) => {
let elapsed = start.elapsed();
println!(
"Parsed in {:.3}ms: {} facts, {} contexts, {} units",
elapsed.as_secs_f64() * 1000.0,
document.facts.len(),
document.contexts.len(),
document.units.len()
);
}
Err(e) => {
eprintln!("Parse error: {}", e);
std::process::exit(1);
}
}
}

22
rust/vendor/crabrl/examples/parse.rs vendored Normal file
View File

@@ -0,0 +1,22 @@
//! Parse and display XBRL file info
use crabrl::Parser;
use std::env;
fn main() -> Result<(), Box<dyn std::error::Error>> {
let args: Vec<String> = env::args().collect();
if args.len() != 2 {
eprintln!("Usage: {} <xbrl-file>", args[0]);
std::process::exit(1);
}
let parser = Parser::new();
let doc = parser.parse_file(&args[1])?;
println!("Parsed {}:", args[1]);
println!(" Facts: {}", doc.facts.len());
println!(" Contexts: {}", doc.contexts.len());
println!(" Units: {}", doc.units.len());
Ok(())
}

29
rust/vendor/crabrl/examples/validate.rs vendored Normal file
View File

@@ -0,0 +1,29 @@
//! Validation example
use crabrl::{Parser, Validator};
use std::env;
fn main() -> Result<(), Box<dyn std::error::Error>> {
let args: Vec<String> = env::args().collect();
if args.len() != 2 {
eprintln!("Usage: {} <xbrl-file>", args[0]);
std::process::exit(1);
}
// Parse
let parser = Parser::new();
let doc = parser.parse_file(&args[1])?;
// Validate
let validator = Validator::new();
match validator.validate(&doc) {
Ok(_) => {
println!("✓ Document is valid");
}
Err(e) => {
println!("✗ Validation failed: {}", e);
}
}
Ok(())
}