tawasuyu

tawasuyu/mirada

Sovereign tiling Wayland compositor + window manager in Rust, on Llimphi.

Rust 519Markdown 113TOML 50RON 1312096 Definiciones

⎇ 3dc85ebdcdd5fda0a1be0db5f8fbce5859266f2e shared/format/src/lib.rs Rust · 48 líneas · 1.9 KB Historia Quién tocó qué crudo

feat: mirada standalone — compositor Wayland + WM sobre Llimphi (build magro) 3dc85ebdc · Sergio ·

1// =============================================================================
2//  renaser :: format — el format del grafo de objetos en disco
3// -----------------------------------------------------------------------------
4//  Hasta la Fase 7a, el format del grafo de objetos —el superbloque, los
5//  registros del log, el manifiesto— vivia disperso entre `kernel/almacen.rs`
6//  y `kernel/manifiesto.rs`. Lo conocia solo el kernel.
7//
8//  La Fase 7b se lo entrega tambien a `boot`: el constructor de imagen de
9//  ANFITRION debe sembrar el disco con el grafo ya poblado —los objetos de
10//  bytecode y el Manifiesto de Genesis— para que el kernel jamas vuelva a
11//  empotrar una sola app. Para ello, kernel y boot han de hablar EXACTAMENTE
12//  el mismo format: la misma serializacion, el mismo hash, el mismo trazado
13//  de registros en el log.
14//
15//  Esta crate es esa unica verdad. Es un nucleo `#![no_std]` —el kernel
16//  bare-metal la enlaza— y, por ser no_std, el anfitrion `boot` la compila sin
17//  friccion. Define los tipos del grafo, su (de)serializacion `postcard`, la
18//  funcion hash BLAKE3 que da identidad a cada objeto y el trazado de un
19//  registro en el log. Ni kernel ni boot vuelven a definir nada de esto.
20// =============================================================================
21
22#![no_std]
23
24extern crate alloc;
25
26use alloc::string::String;
27use alloc::vec;
28use alloc::vec::Vec;
29
30use serde::{Deserialize, Serialize};
31use serde_big_array::BigArray;
32
33// --- Split temático del format (todo pub; API plana preservada con `pub use
34// <mod>::*`). Cada módulo abre con `use super::*` para ver los otros tipos +
35// las imports de alloc/serde del root. Sigue siendo `#![no_std]`. ---
36mod cable;
37mod constantes;
38mod firma;
39mod grafo;
40mod tipos;
41#[cfg(test)]
42mod pruebas;
43
44pub use cable::*;
45pub use constantes::*;
46pub use firma::*;
47pub use grafo::*;
48pub use tipos::*;