connect2axum-codegen 0.1.0

Protoc generators for REST, WebSocket, OpenAPI, and AsyncAPI wrappers over ConnectRPC services
Documentation
//! `protoc-gen-connect2rest` compiler plugin entrypoint.

use buffa::Message as _;
use connect2axum_codegen::CodeGeneratorRequest;
use std::io::{self, Read as _, Write as _};
use uni_error::{ResultContext as _, SimpleResult};

fn main() -> SimpleResult<()> {
    let mut input = Vec::new();
    io::stdin()
        .read_to_end(&mut input)
        .kind_default_context("failed to read CodeGeneratorRequest from stdin")?;

    let request = CodeGeneratorRequest::decode_from_slice(&input)
        .kind_default_context("failed to decode CodeGeneratorRequest")?;

    let response = connect2axum_codegen::generate_rest(&request);
    let output = response.encode_to_vec();

    io::stdout()
        .write_all(&output)
        .kind_default_context("failed to write CodeGeneratorResponse to stdout")?;

    Ok(())
}