lib-ruby-parser 3.0.5

Ruby parser
Documentation
use lib_ruby_parser_nodes::Node;

pub(crate) struct NodeMod<'a> {
    nodes: &'a [Node],
}

impl<'a> NodeMod<'a> {
    pub(crate) fn new(nodes: &'a [Node]) -> Self {
        Self { nodes }
    }

    pub(crate) fn write(&self) {
        let contents = self
            .nodes
            .iter()
            .map(|node| {
                format!(
                    "mod {mod_name};\npub use {mod_name}::{struct_name};\n",
                    mod_name = node.filename,
                    struct_name = node.struct_name
                )
            })
            .collect::<Vec<_>>()
            .join("\n");

        std::fs::write("src/nodes/types/mod.rs", &contents).unwrap();
    }
}