♻️ (pagetop): Migra de actix-web a Axum
Sustituye el módulo `service` por `web` y adapta toda la API al modelo de Axum: router inmutable, extractores via `FromRequestParts` y servicios Tower para archivos estáticos. - `HttpRequest` pasa a ser un tipo propio, mínimo y clonable. - `configure_services` pasa a `configure_routes`. - `EmbeddedFilesService` pasa a `ServeEmbedded`. - Elimina `session_lifetime` de `Server` (va a `pagetop-auth`). - Actualiza tests y ejemplos a la nueva API.
This commit is contained in:
parent
026448e511
commit
9c58d5e1d6
19 changed files with 612 additions and 390 deletions
40
src/core.rs
40
src/core.rs
|
|
@ -30,28 +30,22 @@ impl TypeInfo {
|
|||
}
|
||||
}
|
||||
|
||||
/// Extrae un rango de segmentos de `type_name` (tokens separados por `::`).
|
||||
///
|
||||
/// Los argumentos `start` y `end` identifican los índices de los segmentos teniendo en cuenta:
|
||||
///
|
||||
/// * Los índices positivos cuentan **desde la izquierda**, empezando en `0`.
|
||||
/// * Los índices negativos cuentan **desde la derecha**, `-1` es el último.
|
||||
/// * Si `end` es `None`, el corte llega hasta el último segmento.
|
||||
/// * Si la selección resulta vacía por índices desordenados o segmento inexistente, se devuelve
|
||||
/// la cadena vacía.
|
||||
///
|
||||
/// Ejemplos (con `type_name = "alloc::vec::Vec<i32>"`):
|
||||
///
|
||||
/// | Llamada | Resultado |
|
||||
/// |------------------------------|--------------------------|
|
||||
/// | `partial(..., 0, None)` | `"alloc::vec::Vec<i32>"` |
|
||||
/// | `partial(..., 1, None)` | `"vec::Vec<i32>"` |
|
||||
/// | `partial(..., -1, None)` | `"Vec<i32>"` |
|
||||
/// | `partial(..., 0, Some(-2))` | `"alloc::vec"` |
|
||||
/// | `partial(..., -5, None)` | `"alloc::vec::Vec<i32>"` |
|
||||
///
|
||||
/// La porción devuelta vive tanto como `'static` porque `type_name` es `'static` y sólo se
|
||||
/// presta.
|
||||
// Extrae un rango de segmentos de `type_name` (tokens separados por `::`).
|
||||
//
|
||||
// Los argumentos `start` y `end` identifican los índices de los segmentos teniendo en cuenta:
|
||||
//
|
||||
// * Los índices positivos cuentan desde la izquierda, empezando en 0.
|
||||
// * Los índices negativos cuentan desde la derecha; -1 es el último.
|
||||
// * Si `end` es `None`, el corte llega hasta el último segmento.
|
||||
// * Si la selección resulta vacía por índices desordenados o segmento inexistente, devuelve "".
|
||||
//
|
||||
// Ejemplos con type_name = "alloc::vec::Vec<i32>":
|
||||
//
|
||||
// partial(..., 0, None) => "alloc::vec::Vec<i32>"
|
||||
// partial(..., 1, None) => "vec::Vec<i32>"
|
||||
// partial(..., -1, None) => "Vec<i32>"
|
||||
// partial(..., 0, Some(-2)) => "alloc::vec"
|
||||
// partial(..., -5, None) => "alloc::vec::Vec<i32>"
|
||||
fn partial(type_name: &'static str, start: isize, end: Option<isize>) -> &'static str {
|
||||
let maxlen = type_name.len();
|
||||
|
||||
|
|
@ -59,7 +53,7 @@ impl TypeInfo {
|
|||
let mut segments = Vec::new();
|
||||
let mut segment_start = 0; // Posición inicial del segmento actual.
|
||||
let mut angle_brackets = 0; // Profundidad dentro de '<...>'.
|
||||
let mut previous_char = '\0'; // Se inicializa a carácter nulo, no hay aún carácter previo.
|
||||
let mut previous_char = '\0'; // Control, ningún carácter previo aún.
|
||||
|
||||
for (idx, c) in type_name.char_indices() {
|
||||
match c {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue