You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: storage.rs
    path of file: ./repos/escanor/src/bin/server
    
    the code of the file until where you have to start completion: use async_raft::{RaftStorage, NodeId, RaftMetrics, AppData};
use crate::codec::{ClientRequest, ServerResponse};
use async_raft::raft::{Entry, MembershipConfig, EntryPayload};
use async_raft::sto
    
pub fn cluster(_: Arc<std::sync::RwLock<Context>>, cmd: &ClusterCmd) -> String {
    let nodes_tree = match SYS_STATE.open_tree(NODE_TREE_KEY) {
        Ok(tree) => {
            tree
        }
        Err(_) => {
            return print_err("internal error");
        }
    };

    let members: Vec<String> = nodes_tree.iter().map(|r| {
        let (k, v) = r.unwrap();
        let node_id = BigEndian::read_u64(&k);
        let addrs = String::from_utf8(v.to_vec()).unwrap_or("NULL".to_owned());
        format!("[{}] {}", node_id, addrs)
    }).collect();
    print_arr(members)
}