Logo
Explore Help
Sign In
logos-messaging/libchat
1
0
Fork 0
You've already forked libchat
mirror of https://github.com/logos-messaging/libchat.git synced 2026-04-02 01:23:11 +00:00
Code Issues Packages Projects Releases Wiki Activity
libchat/crates/client/src/errors.rs

16 lines
334 B
Rust
Raw Normal View History

feat: implement Client crate and C FFI bindings Implement a `client` crate that wraps the `libchat` context behind a simple `ChatClient<D>` API. The delivery strategy is pluggable via a `DeliveryService` trait, with two implementations provided: - `InProcessDelivery` — shared `MessageBus` for single-process tests - `CDelivery` — C function-pointer callback for the FFI layer Add a `client-ffi` crate that exposes the client as a C API via `safer-ffi`. A `generate-headers` binary produces the companion C header. Include two runnable examples: - `examples/in-process` — Alice/Bob exchange using in-process delivery - `examples/c-ffi` — same exchange written entirely in C; smoketested under valgrind (to catch memory leaks) in CI iterates: #71
2026-03-26 21:34:09 +01:00
use libchat::ChatError;
#[derive(Debug)]
pub enum ClientError<D> {
Chat(ChatError),
/// Crypto state advanced but at least one envelope failed delivery.
/// Caller decides whether to retry.
Delivery(D),
}
impl<D> From<ChatError> for ClientError<D> {
fn from(e: ChatError) -> Self {
Self::Chat(e)
}
}
Reference in New Issue Copy Permalink
Powered by Gitea Version: 1.23.0 Page: 38ms Template: 2ms
English
Bahasa Indonesia Deutsch English Español Français Gaeilge Italiano Latviešu Magyar nyelv Nederlands Polski Português de Portugal Português do Brasil Suomi Svenska Türkçe Čeština Ελληνικά Български Русский Українська فارسی മലയാളം 日本語 简体中文 繁體中文(台灣) 繁體中文(香港) 한국어
Licenses API