#![doc = include_str!("../README.md")]
mod errors;
pub use errors::Error;
use std::{fs::File, path::PathBuf};
mod ipc;
pub use ipc::{Client, Server, SocketName};
pub struct MinidumpBinary {
pub file: File,
pub path: PathBuf,
pub contents: Option<Vec<u8>>,
}
#[derive(Copy, Clone, PartialEq, Eq)]
pub enum LoopAction {
Exit,
Continue,
}
pub trait ServerHandler: Send + Sync {
fn create_minidump_file(&self) -> Result<(File, PathBuf), std::io::Error>;
fn on_minidump_created(&self, result: Result<MinidumpBinary, Error>) -> LoopAction;
fn on_message(&self, kind: u32, buffer: Vec<u8>);
fn message_alloc(&self) -> Vec<u8> {
Vec::new()
}
fn on_client_connected(&self, _num_clients: usize) -> LoopAction {
LoopAction::Continue
}
fn on_client_disconnected(&self, _num_clients: usize) -> LoopAction {
LoopAction::Continue
}
}