rust-abci 0.1.0

An implementation of the ABCI protocol used by Tendermint Core. Allows the building of ABCI apps in Rust.
Documentation
#![allow(unused_variables)]
#![allow(unused_must_use)]

extern crate grpc;
extern crate rust_abci;


use rust_abci::new_server;
use rust_abci::types::*;
use rust_abci::types_grpc::*;


struct DummyApp;

unsafe impl Sync for DummyApp {}

unsafe impl Send for DummyApp {}

impl ABCIApplication for DummyApp {
    fn echo(&self, o: ::grpc::RequestOptions, p: RequestEcho) -> ::grpc::SingleResponse<ResponseEcho> {
        println!("Echo");
        let response = ResponseEcho::new();
        ::grpc::SingleResponse::completed(response)
    }

    fn flush(&self, o: ::grpc::RequestOptions, p: RequestFlush) -> ::grpc::SingleResponse<ResponseFlush> {
        println!("Flush");
        let response = ResponseFlush::new();
        ::grpc::SingleResponse::completed(response)
    }

    fn info(&self, o: ::grpc::RequestOptions, p: RequestInfo) -> ::grpc::SingleResponse<ResponseInfo> {
        println!("Info");
        let response = ResponseInfo::new();
        ::grpc::SingleResponse::completed(response)
    }

    fn set_option(&self, o: ::grpc::RequestOptions, p: RequestSetOption) -> ::grpc::SingleResponse<ResponseSetOption> {
        println!("SetOption");
        let response = ResponseSetOption::new();
        ::grpc::SingleResponse::completed(response)
    }

    fn deliver_tx(&self, o: ::grpc::RequestOptions, p: RequestDeliverTx) -> ::grpc::SingleResponse<ResponseDeliverTx> {
        println!("DeliverTx");
        let response = ResponseDeliverTx::new();
        ::grpc::SingleResponse::completed(response)
    }

    fn check_tx(&self, o: ::grpc::RequestOptions, p: RequestCheckTx) -> ::grpc::SingleResponse<ResponseCheckTx> {
        println!("CheckTx");
        let response = ResponseCheckTx::new();
        ::grpc::SingleResponse::completed(response)
    }

    fn query(&self, o: ::grpc::RequestOptions, p: RequestQuery) -> ::grpc::SingleResponse<ResponseQuery> {
        println!("Query");
        let response = ResponseQuery::new();
        ::grpc::SingleResponse::completed(response)
    }

    fn commit(&self, o: ::grpc::RequestOptions, p: RequestCommit) -> ::grpc::SingleResponse<ResponseCommit> {
        println!("Commit");
        let response = ResponseCommit::new();
        ::grpc::SingleResponse::completed(response)
    }

    fn init_chain(&self, o: ::grpc::RequestOptions, p: RequestInitChain) -> ::grpc::SingleResponse<ResponseInitChain> {
        println!("InitChain");
        let response = ResponseInitChain::new();
        ::grpc::SingleResponse::completed(response)
    }

    fn begin_block(&self, o: ::grpc::RequestOptions, p: RequestBeginBlock) -> ::grpc::SingleResponse<ResponseBeginBlock> {
        println!("BeginBlock");
        let response = ResponseBeginBlock::new();
        ::grpc::SingleResponse::completed(response)
    }

    fn end_block(&self, o: ::grpc::RequestOptions, p: RequestEndBlock) -> ::grpc::SingleResponse<ResponseEndBlock> {
        println!("EndBlock");
        let response = ResponseEndBlock::new();
        ::grpc::SingleResponse::completed(response)
    }
}


fn main() {
    use std::env;
    use std::thread;

    let args: Vec<String> = env::args().collect();
    let connection_type: &str = &args[1];
    let listen_addr: &str = &args[2];

    let _server = new_server(listen_addr, connection_type, DummyApp);

    loop {
        thread::park();
    }
}