From 9cd4a45fb9e326621e9e77ea14e7043b83caf6e0 Mon Sep 17 00:00:00 2001 From: Sergey Zhukov Date: Tue, 3 Feb 2026 10:44:03 +0400 Subject: [PATCH 1/4] nom parser instead of ad-hoc in examples --- datafusion-examples/Cargo.toml | 1 + .../src/utils/examples_docs.rs | 456 +++++++++++++----- 2 files changed, 330 insertions(+), 127 deletions(-) diff --git a/datafusion-examples/Cargo.toml b/datafusion-examples/Cargo.toml index d07eb731e503d..e56f5ad6b8ca7 100644 --- a/datafusion-examples/Cargo.toml +++ b/datafusion-examples/Cargo.toml @@ -40,6 +40,7 @@ arrow = { workspace = true } arrow-schema = { workspace = true } datafusion = { workspace = true, default-features = true, features = ["parquet_encryption"] } datafusion-common = { workspace = true } +nom = "8.0.0" tempfile = { workspace = true } tokio = { workspace = true, features = ["rt-multi-thread", "parking_lot", "fs"] } diff --git a/datafusion-examples/src/utils/examples_docs.rs b/datafusion-examples/src/utils/examples_docs.rs index 0efa4928c0e0c..e50b3a0ed6a8f 100644 --- a/datafusion-examples/src/utils/examples_docs.rs +++ b/datafusion-examples/src/utils/examples_docs.rs @@ -52,10 +52,18 @@ //! cargo run --bin examples-docs //! ``` +use std::collections::HashSet; use std::fs; use std::path::{Path, PathBuf}; use datafusion::error::{DataFusionError, Result}; +use nom::{ + IResult, Parser, + bytes::complete::{tag, take_until}, + character::complete::multispace0, + combinator::all_consuming, + sequence::{delimited, preceded}, +}; const STATIC_HEADER: &str = r#"