pub fn nodes(&self) -> Vec<(NodeRef, i32, Context)> {
        self.stmts
            .iter()
            .filter_map(|s|
            // RawStmt  ->  Node   ->    NodeEnum           ->              NodeRef
            s.stmt.as_ref().and_then(|s| s.node.as_ref()).and_then(|n| Some(n.nodes())))
            .flatten()
            .collect()
    }
// Note: this doesn't iterate over every possible node type, since we only care about a subset of nodes.
this doesn't iterate over every possible node type, since we only care about a subset of nodes.
this doesn ' t iterate over every possible node type since we only care about a subset of nodes .
pub fn nodes(&self) -> Vec<(NodeRef, i32, Context)> {
        self.stmts
            .iter()
            .filter_map(|s|
            // RawStmt  ->  Node   ->    NodeEnum           ->              NodeRef
            s.stmt.as_ref().and_then(|s| s.node.as_ref()).and_then(|n| Some(n.nodes())))
            .flatten()
            .collect()
    }
pub fn nodes ( & self ) -> Vec < ( NodeRef , i32 , Context ) > { self . stmts . iter ( ) . filter_map ( | s | // RawStmt  ->  Node   ->    NodeEnum           ->              NodeRef s . stmt . as_ref ( ) . and_then ( | s | s . node . as_ref ( ) ) . and_then ( | n | Some ( n . nodes ( ) ) ) ) . flatten ( ) . collect ( ) }
Note: this doesn't iterate over every possible node type, since we only care about a subset of nodes.
Note : this doesn ' t iterate over every possible node type since we only care about a subset of nodes .
&self
&self