mod payload;
mod rust;
mod typescript;
use crate::{
error::schema,
model::{Contract, Message},
GenerateError,
};
pub(crate) use payload::{rust as rust_payload, typescript as typescript_payload};
pub(crate) use rust::emit as rust;
pub(crate) use typescript::emit as typescript;
const HEADER: &str = "// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\n// @generated by webui-desktop-build. Do not edit.\n";
fn message<'a>(contract: &'a Contract, name: &str) -> Result<(usize, &'a Message), GenerateError> {
contract
.messages
.iter()
.enumerate()
.find(|(_, m)| m.name == name)
.ok_or_else(|| {
schema(
"ipc-codegen-message",
name,
"missing reachable message",
"report this generator error",
)
})
}
fn short(full: &str) -> &str {
full.rsplit('.').next().unwrap_or(full)
}