mod deserialize_json_array_as_stream;
mod detail_doc;
pub(crate) mod types;
pub(crate) mod print;
mod generated_tokens;
use std::fs::File;
use std::io::BufReader;
use std::path::Path;
use crate::Error;
use crate::node_types::deserialize_json_array_as_stream::iter_json_array;
use crate::node_types::types::NodeType;
pub use generated_tokens::GeneratedNodeTokens;
pub fn generate_nodes(path: impl AsRef<Path>, tree_sitter: &syn::Path) -> Result<GeneratedNodeTokens, Error> {
let path = path.as_ref();
let node_types = iter_json_array::<NodeType, _>(BufReader::new(File::open(path)?));
node_types
.map(|node_type| node_type.map(|x| x.print(tree_sitter)).map_err(Error::from))
.collect::<Result<GeneratedNodeTokens, _>>()
}