| Crates.io | igni_input_core |
| lib.rs | igni_input_core |
| version | 0.1.2 |
| created_at | 2025-12-02 14:33:21.408448+00 |
| updated_at | 2025-12-03 21:54:59.792103+00 |
| description | Core contracts for the IGNI Engine input system. Defines traits for raw input, processing layers, and mapping layers with zero implementation. |
| homepage | https://github.com/igni-engine/igni_input_core |
| repository | https://github.com/igni-engine/igni_input_core.git |
| max_upload_size | |
| id | 1961966 |
| size | 80,925 |
IGNI INPUT CORE define los contratos mínimos necesarios para la máxima compatibilidad con el futuro motor de videojuegos IGNI ENGINE.
Este crate no implementa ningún comportamiento concreto.
Su propósito exclusivo es ofrecer interfaces (traits) que garantizan:
IGNI INPUT CORE es la base sobre la cual se construirán los sistemas de entrada del motor, del editor visual, de las herramientas externas y de los backends de cada plataforma.
El sistema se divide en tres capas fundamentales, ordenadas desde el nivel más bajo (sin procesar) hasta el nivel lógico más complejo (acciones y contextos).
Cada capa superior depende únicamente de la inferior, nunca al revés.
La capa más cercana al sistema operativo o backend real de entrada.
Debido a su naturaleza puramente descriptiva, esta capa define solo traits de estado, sin control mutante.
Ejemplos conceptuales:
KeyCodeExtKeyStateExtKeyEventExtEstos traits exponen metadatos y propiedades estáticas sobre los elementos crudos, pero nunca mutan estado ni establecen relaciones.
Esta capa recibe los eventos de la Raw Layer y construye a partir de ellos un estado procesado del input.
Ejemplos:
La capa se divide en dos traits:
Permite consultar:
No muta nada.
Permite:
Esta separación garantiza seguridad en tiempo de compilación y claridad en la intención de uso.
La capa más abstracta y orientada a lógica de juego.
Permite construir esquemas de control basados en acciones, contextos y asignaciones dinámicas.
Ejemplos:
La capa define dos traits principales:
Permite consultar:
Retorna slices y referencias para evitar asignaciones innecesarias.
Permite:
Esta capa es la base de:
IGNI INPUT CORE está diseñado bajo cuatro principios:
Separación estricta de responsabilidades
Cada capa hace solo lo que debe hacer, sin conocimiento innecesario de otras capas.
Máximo rendimiento
La lectura del estado debe ser extremadamente rápida, evitando asignaciones y copias.
Extensibilidad total
Cualquier backend (Windows, Linux evdev, XInput, gamepad, VR) puede cumplir los contratos sin restricciones artificiales.
Determinismo y claridad
Los traits definen explícitamente qué se puede hacer y qué no, evitando ambigüedades entre plataformas.
Este crate define exclusivamente los contratos necesarios para construir:
No contiene implementación alguna.
Las implementaciones se desarrollarán en crates separados, manteniendo el núcleo completamente genérico y desacoplado.
The names "IGNI", "IGNI Engine", "IGNI Input", "IGNI Game Core", and all associated logos, branding, and visual identity are trademarks of Cristian Valencia.
These trademarks are not licensed under the MIT license that applies to the source code in this repository.
You may:
You may NOT:
You may state factually:
All rights to the IGNI name, brand, and visual identity belong exclusively to Cristian Valencia.