Skip to main content

cell_model/
bridge.rs

1// SPDX-License-Identifier: MIT
2// Copyright (c) 2025 Leif Rydenfalk – https://github.com/Leif-Rydenfalk/cell
3
4use alloc::string::String;
5use rkyv::{Archive, Serialize as RkyvSerialize, Deserialize as RkyvDeserialize};
6use serde::{Deserialize, Serialize};
7
8#[derive(Archive, RkyvSerialize, RkyvDeserialize, Serialize, Deserialize, Debug, Clone)]
9#[archive(check_bytes)]
10pub enum BridgeRequest {
11    /// "I want to talk to this target. Make it exist locally."
12    /// target: can be a simple name "ledger" or a URI "mavlink:drone"
13    Mount { target: String },
14}
15
16#[derive(Archive, RkyvSerialize, RkyvDeserialize, Serialize, Deserialize, Debug, Clone)]
17#[archive(check_bytes)]
18pub enum BridgeResponse {
19    /// "Ready. Connect to this Unix socket path."
20    Mounted { socket_path: String },
21    /// "I don't know how to reach that target."
22    NotFound,
23    /// "Something went wrong."
24    Error { message: String },
25}