[package] name = "llimphi-layout" version.workspace = true edition.workspace = true license.workspace = true authors.workspace = true publish.workspace = true description = "Layout engine for llimphi (Flexbox + CSS Grid via taffy)." repository.workspace = true [dependencies] # taffy declarado DIRECTO y no `{ workspace = true }`: apagar `default-features` # desde un miembro no tiene efecto si el workspace no lo declaró así (cargo lo # avisa y lo ignora). Y apagarlo es justamente el punto — el `default` de taffy # arrastra `std`, que es lo único que ataba este crate a un sistema operativo. # # Se conservan las demás features del default (grid, block_layout, calc, # content_size): la meta es soltar `std`, no recortar capacidades de layout por # la ventana. # # La excepción es `detailed_layout_info`, y no es una elección de diseño sino un # BUG DE TAFFY 0.9.2: con esa feature + `grid` y sin `std`, su propio código usa # `Box` sin importar `alloc::boxed::Box` y no compila # (`tree/layout.rs:354`, `tree/taffy_tree.rs:511`). Nadie en el repo consume # `DetailedLayoutInfo` —se verificó por grep sobre todos los cuadrantes—, así # que apagarla no cuesta nada. Si algún día hace falta, hay que arreglar taffy # aguas arriba, no reactivarla acá. taffy = { version = "0.12", default-features = false, features = [ "alloc", "taffy_tree", "flexbox", "grid", "block_layout", "calc", "content_size", ] } # `HashMap` sin sistema operativo. Es el mismo mapa que usa la stdlib por # dentro — de hecho `std::collections::HashMap` ES hashbrown con otra cara. hashbrown = { version = "0.17", default-features = false, features = ["default-hasher", "inline-more"] } [dev-dependencies] llimphi-hal = { path = "../llimphi-hal", version = "0.1.0" } llimphi-raster = { path = "../llimphi-raster", version = "0.1.0" } pollster = { workspace = true } [[example]] name = "layout_panels" path = "examples/layout_panels.rs"