ledger-models 0.1.13

A comprehensive model library for financial products (securities, prices, transactions, etc). Protobuf used for serialization, with language-specific implementations
Documentation
use walkdir::WalkDir;

fn main() {
    print!("{}", "Generating Rust code from ledger-models-protos to ledger-models-rust");

    //find paths of all proto files
    let proto_files: Vec<String> = WalkDir::new("ledger-models-protos")
        .into_iter()
        .filter_map(|e| e.ok())
        .filter(|e| {
            if let Some(ext) = e.path().extension() {
                if ext == "proto" {
                    return true;
                }
                return false;
            }
            return false;
        })
        .filter_map(|e| {
            e.into_path()
                .to_owned()
                .into_os_string()
                .into_string()
                .ok()
        })
        .collect();


    tonic_build::configure()
        .build_client(true)
        .build_server(true)
        .out_dir("ledger-models-rust")
        .compile(&proto_files,
            &["ledger-models-protos"],
        )
        .unwrap()
}