microsoft-webui-desktop-build 3.0.2

Build-time typed IPC bindings for the WebUI desktop SDK
Documentation
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT license.

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)
}