tawasuyu/llimphi
Sovereign retained-mode GPU UI framework in Rust (wgpu+vello+taffy+parley), Elm loop, 40+ widgets.
chore: refresco desde el monorepo — 128 miembros, los 76 widgets y los 11 módulos
1# =============================================================================
2# llimphi-entrada — el modelo de entrada, sin vecinos
3# -----------------------------------------------------------------------------
4# Estos tipos ya se mudaron una vez: vivían en `llimphi-ui` y W4.7 los bajó al
5# compositor, porque «el input no es del shell, es del MODELO» y procesar una
6# tecla no puede arrastrar el windowing de escritorio.
7#
8# Esta es la segunda mitad de esa misma mudanza, y la pidió el caso que aquel
9# comentario ya nombraba: **la jaula**. Un `KeyEvent` que viaja por un socket
10# entre dos procesos necesita serde, y el crate que lo alojaba —el compositor—
11# no compila sin elegir un backend de pintura. El anfitrión pinta con `vello` y
12# el huésped con `wire`, así que el cable que los une no puede depender de
13# ninguno de los dos: un dato de entrada no tiene por qué saber quién dibuja.
14#
15# El compositor lo re-exporta con los mismos nombres, así que ningún consumidor
16# se entera.
17# =============================================================================
18
19[package]
20name = "llimphi-entrada"
21version.workspace = true
22edition.workspace = true
23license.workspace = true
24authors.workspace = true
25publish.workspace = true
26description = "llimphi — el modelo de entrada (KeyEvent, NamedKey, Modifiers, ImeEvent, WheelDelta) como dato puro: sin windowing, sin backend de pintura, opcionalmente serializable."
27
28[dependencies]
29serde = { version = "1", default-features = false, features = ["derive", "alloc"], optional = true }
30
31[features]
32default = []
33# Los tipos viajan por un cable (`llimphi-cable`). Opcional porque el compositor,
34# que es quien los consume siempre, no los serializa nunca.
35serde = ["dep:serde"]