Rust a datastructure of a Tree and TreeNode

โš“ Rust    ๐Ÿ“… 2025-09-14    ๐Ÿ‘ค surdeus    ๐Ÿ‘๏ธ 2      

surdeus

Hi,

I translated a simple tree structure from Python and C++ to Rust. The code is straightforward, but due to Rustโ€™s safety requirements, it became quite convoluted :sob:. The API had to be hidden in TreeNodeInner. and json serde serialization required two new structs.

Iโ€™m sure many people have implemented tree data structures in Rust. Could someone give advice on how to simplify this implementation while keeping the same API?

Usage:

        let root = TreeNode::new("project_root");
        let folder1 = TreeNode::new("src");
        let folder2 = TreeNode::new("docs");
        let file1 = TreeNode::new("main.py");
        let file2 = TreeNode::new("README.md");

        root.add(&folder1);
        root.add(&folder2);
        folder1.add(&file1);
        folder2.add(&file2);

Rust implementation:

CPP implementation:

Python implementation:

6 posts - 3 participants

Read full topic

๐Ÿท๏ธ Rust_feed