beam_core/backend_kind.rs
1use serde::{Deserialize, Serialize};
2
3/// Terminal multiplexer / agent runtime backend for a Beam session.
4///
5/// Existing deployments default to [`BackendKind::Zellij`]; Herdr is an
6/// opt-in first-class backend selected per daemon or per bot. The value is
7/// persisted on `Session` at create/adopt time so a later config flip cannot
8/// silently move an existing session to the wrong mux.
9#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq, Default)]
10#[serde(rename_all = "snake_case")]
11pub enum BackendKind {
12 #[default]
13 Zellij,
14 Herdr,
15}
16
17impl BackendKind {
18 pub fn as_str(self) -> &'static str {
19 match self {
20 BackendKind::Zellij => "zellij",
21 BackendKind::Herdr => "herdr",
22 }
23 }
24}