55 lines
2.0 KiB
TOML
55 lines
2.0 KiB
TOML
[package]
|
|
name = "pmacs-protocol"
|
|
version = "1.0.0"
|
|
edition = "2024"
|
|
rust-version = "1.95"
|
|
description = "Wire types for the pmacs daemon ↔ frontend protocol (the SemanticFrame family, capabilities, attach handshake)"
|
|
license = "MIT OR Apache-2.0"
|
|
authors = ["Pmacs contributors"]
|
|
readme = "../README.md"
|
|
repository = "https://git.levineuwirth.org/neuwirth/pmacs"
|
|
homepage = "https://levineuwirth.org/essays/pmacs"
|
|
keywords = ["editor", "emacs", "protocol", "ipc"]
|
|
categories = ["text-editors", "data-structures"]
|
|
|
|
[lints.rust]
|
|
unsafe_code = "forbid"
|
|
missing_docs = "warn"
|
|
|
|
[lints.clippy]
|
|
all = { level = "warn", priority = -1 }
|
|
pedantic = { level = "warn", priority = -1 }
|
|
cargo = { level = "warn", priority = -1 }
|
|
# Allows: same set as the root `pmacs` crate, mirrored so wire types
|
|
# moved here don't trip lints the originals didn't.
|
|
module_name_repetitions = "allow"
|
|
must_use_candidate = "allow"
|
|
missing_errors_doc = "allow"
|
|
missing_panics_doc = "allow"
|
|
cast_possible_truncation = "allow"
|
|
cast_sign_loss = "allow"
|
|
cast_precision_loss = "allow"
|
|
similar_names = "allow"
|
|
multiple_crate_versions = "allow"
|
|
|
|
[features]
|
|
# Mirrors the parent `pmacs` crate's `crdt` feature. The wire type
|
|
# set is unconditional (`CrdtOp` is always compiled — see
|
|
# `crdt.rs`); the feature exists so `cfg!(feature = "crdt")` checks
|
|
# inside capability-default helpers (`InstanceCapabilities::default`,
|
|
# `FrontendCapabilities::default`) evaluate to the same value here
|
|
# as in the parent crate. The parent activates it via
|
|
# `pmacs-protocol/crdt` from its own `crdt` feature.
|
|
crdt = []
|
|
|
|
[dependencies]
|
|
serde = { workspace = true }
|
|
postcard = { workspace = true }
|
|
thiserror = { workspace = true }
|
|
# Vterm Stage 3: `TerminalFrame::validate` is the ONE structural policy
|
|
# for terminal cells, so the column-width and wide-continuation rules
|
|
# live here rather than being re-implemented per frontend. That needs a
|
|
# direct width table; pinned through the workspace so this crate and
|
|
# `pmacs`'s terminal screen measure glyphs identically.
|
|
unicode-width = { workspace = true }
|