♻️ [minimal] Incorpora paste! a las utilidades
This commit is contained in:
parent
7b23e9c1ea
commit
144b1eee45
7 changed files with 42 additions and 14 deletions
6
Cargo.lock
generated
6
Cargo.lock
generated
|
|
@ -1580,7 +1580,6 @@ dependencies = [
|
||||||
"pagetop-minimal",
|
"pagetop-minimal",
|
||||||
"pagetop-statics",
|
"pagetop-statics",
|
||||||
"parking_lot",
|
"parking_lot",
|
||||||
"pastey",
|
|
||||||
"serde",
|
"serde",
|
||||||
"serde_json",
|
"serde_json",
|
||||||
"substring",
|
"substring",
|
||||||
|
|
@ -1634,6 +1633,7 @@ version = "0.0.10"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"concat-string",
|
"concat-string",
|
||||||
"indoc",
|
"indoc",
|
||||||
|
"pastey",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
|
@ -1673,9 +1673,9 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pastey"
|
name = "pastey"
|
||||||
version = "0.1.1"
|
version = "0.2.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "35fb2e5f958ec131621fdd531e9fc186ed768cbe395337403ae56c17a74c68ec"
|
checksum = "57d6c094ee800037dff99e02cab0eaf3142826586742a270ab3d7a62656bd27a"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "path-matchers"
|
name = "path-matchers"
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,6 @@ figlet-rs = "0.1"
|
||||||
getter-methods = "2.0"
|
getter-methods = "2.0"
|
||||||
itoa = "1.0"
|
itoa = "1.0"
|
||||||
parking_lot = "0.12"
|
parking_lot = "0.12"
|
||||||
paste = { package = "pastey", version = "0.1" }
|
|
||||||
substring = "1.4"
|
substring = "1.4"
|
||||||
terminal_size = "0.4"
|
terminal_size = "0.4"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -18,3 +18,4 @@ authors.workspace = true
|
||||||
[dependencies]
|
[dependencies]
|
||||||
concat-string = "1.0"
|
concat-string = "1.0"
|
||||||
indoc = "2.0"
|
indoc = "2.0"
|
||||||
|
pastey = "0.2"
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,3 @@
|
||||||
/*!
|
|
||||||
<div align="center">
|
<div align="center">
|
||||||
|
|
||||||
<h1>PageTop Minimal</h1>
|
<h1>PageTop Minimal</h1>
|
||||||
|
|
@ -30,10 +29,14 @@ Las macros para texto multilínea **`indoc!`**, **`formatdoc!`** y **`concatdoc!
|
||||||
*crate* [indoc](https://crates.io/crates/indoc) de [David Tolnay](https://crates.io/users/dtolnay).
|
*crate* [indoc](https://crates.io/crates/indoc) de [David Tolnay](https://crates.io/users/dtolnay).
|
||||||
|
|
||||||
Las macros para la concatenación de cadenas **`join!`** y **`join_pair!`** se apoyan internamente en
|
Las macros para la concatenación de cadenas **`join!`** y **`join_pair!`** se apoyan internamente en
|
||||||
el **crate** [concat-string](https://crates.io/crates/concat_string), desarrollado por
|
el *crate* [concat-string](https://crates.io/crates/concat_string), desarrollado por
|
||||||
[FaultyRAM](https://crates.io/users/FaultyRAM), para evitar el uso del formato de cadenas cuando la
|
[FaultyRAM](https://crates.io/users/FaultyRAM), para evitar el formato de cadenas cuando la
|
||||||
eficiencia pueda ser relevante.
|
eficiencia pueda ser relevante.
|
||||||
|
|
||||||
|
La macro para generar identificadores dinámicos **`paste!`** se reexporta del *crate*
|
||||||
|
[pastey](https://crates.io/crates/pastey), una implementación avanzada y soportada del popular
|
||||||
|
`paste!` de [David Tolnay](https://crates.io/users/dtolnay).
|
||||||
|
|
||||||
|
|
||||||
# 🚧 Advertencia
|
# 🚧 Advertencia
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -30,9 +30,13 @@ Las macros para texto multilínea **`indoc!`**, **`formatdoc!`** y **`concatdoc!
|
||||||
*crate* [indoc](https://crates.io/crates/indoc) de [David Tolnay](https://crates.io/users/dtolnay).
|
*crate* [indoc](https://crates.io/crates/indoc) de [David Tolnay](https://crates.io/users/dtolnay).
|
||||||
|
|
||||||
Las macros para la concatenación de cadenas **`join!`** y **`join_pair!`** se apoyan internamente en
|
Las macros para la concatenación de cadenas **`join!`** y **`join_pair!`** se apoyan internamente en
|
||||||
el **crate** [concat-string](https://crates.io/crates/concat_string), desarrollado por
|
el *crate* [concat-string](https://crates.io/crates/concat_string), desarrollado por
|
||||||
[FaultyRAM](https://crates.io/users/FaultyRAM), para evitar el uso del formato de cadenas cuando la
|
[FaultyRAM](https://crates.io/users/FaultyRAM), para evitar el formato de cadenas cuando la
|
||||||
eficiencia pueda ser relevante.
|
eficiencia pueda ser relevante.
|
||||||
|
|
||||||
|
La macro para generar identificadores dinámicos **`paste!`** se reexporta del *crate*
|
||||||
|
[pastey](https://crates.io/crates/pastey), una implementación avanzada y soportada del popular
|
||||||
|
`paste!` de [David Tolnay](https://crates.io/users/dtolnay).
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#![doc(
|
#![doc(
|
||||||
|
|
@ -44,6 +48,18 @@ pub use concat_string::concat_string;
|
||||||
|
|
||||||
pub use indoc::{concatdoc, formatdoc, indoc};
|
pub use indoc::{concatdoc, formatdoc, indoc};
|
||||||
|
|
||||||
|
/// Permite *pegar* tokens y generar identificadores a partir de otros.
|
||||||
|
///
|
||||||
|
/// Dentro de `paste!`, los identificadores escritos como `[< ... >]` se combinan en uno solo que
|
||||||
|
/// puede reutilizarse para referirse a items existentes o para definir nuevos (funciones,
|
||||||
|
/// estructuras, métodos, etc.).
|
||||||
|
///
|
||||||
|
/// También admite modificadores de estilo (`lower`, `upper`, `snake`, `camel`, etc.) para
|
||||||
|
/// transformar fragmentos interpolados antes de construir el nuevo identificador.
|
||||||
|
pub use pastey::paste;
|
||||||
|
// La documentación anterior se copia en `pagetop::util::paste!` porque el *crate* original no la
|
||||||
|
// define y `pagetop` no la hereda automáticamente.
|
||||||
|
|
||||||
/// Concatena eficientemente varios fragmentos en un [`String`].
|
/// Concatena eficientemente varios fragmentos en un [`String`].
|
||||||
///
|
///
|
||||||
/// Esta macro exporta [`concat_string!`](https://docs.rs/concat-string). Acepta cualquier número de
|
/// Esta macro exporta [`concat_string!`](https://docs.rs/concat-string). Acepta cualquier número de
|
||||||
|
|
|
||||||
|
|
@ -15,9 +15,6 @@ pub use pagetop_statics::ResourceFiles;
|
||||||
#[doc(hidden)]
|
#[doc(hidden)]
|
||||||
pub use actix_web::test;
|
pub use actix_web::test;
|
||||||
|
|
||||||
#[doc(hidden)]
|
|
||||||
pub use paste::paste;
|
|
||||||
|
|
||||||
/// Configura un servicio web para publicar archivos estáticos.
|
/// Configura un servicio web para publicar archivos estáticos.
|
||||||
///
|
///
|
||||||
/// La macro ofrece tres modos para configurar el servicio:
|
/// La macro ofrece tres modos para configurar el servicio:
|
||||||
|
|
@ -75,7 +72,7 @@ macro_rules! static_files_service {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if serve_embedded {
|
if serve_embedded {
|
||||||
$crate::service::paste! {
|
$crate::util::paste! {
|
||||||
mod [<static_files_ $bundle>] {
|
mod [<static_files_ $bundle>] {
|
||||||
include!(concat!(env!("OUT_DIR"), "/", stringify!($bundle), ".rs"));
|
include!(concat!(env!("OUT_DIR"), "/", stringify!($bundle), ".rs"));
|
||||||
}
|
}
|
||||||
|
|
@ -95,7 +92,7 @@ macro_rules! static_files_service {
|
||||||
route = $route,
|
route = $route,
|
||||||
);
|
);
|
||||||
let _ = span.in_scope(|| {
|
let _ = span.in_scope(|| {
|
||||||
$crate::service::paste! {
|
$crate::util::paste! {
|
||||||
mod [<static_files_ $bundle>] {
|
mod [<static_files_ $bundle>] {
|
||||||
include!(concat!(env!("OUT_DIR"), "/", stringify!($bundle), ".rs"));
|
include!(concat!(env!("OUT_DIR"), "/", stringify!($bundle), ".rs"));
|
||||||
}
|
}
|
||||||
|
|
|
||||||
12
src/util.rs
12
src/util.rs
|
|
@ -10,6 +10,18 @@ use std::path::{Path, PathBuf};
|
||||||
|
|
||||||
pub use pagetop_minimal::{concatdoc, formatdoc, indoc, join, join_pair, kv};
|
pub use pagetop_minimal::{concatdoc, formatdoc, indoc, join, join_pair, kv};
|
||||||
|
|
||||||
|
/// Permite *pegar* tokens y generar identificadores a partir de otros.
|
||||||
|
///
|
||||||
|
/// Dentro de `paste!`, los identificadores escritos como `[< ... >]` se combinan en uno solo que
|
||||||
|
/// puede reutilizarse para referirse a items existentes o para definir nuevos (funciones,
|
||||||
|
/// estructuras, métodos, etc.).
|
||||||
|
///
|
||||||
|
/// También admite modificadores de estilo (`lower`, `upper`, `snake`, `camel`, etc.) para
|
||||||
|
/// transformar fragmentos interpolados antes de construir el nuevo identificador.
|
||||||
|
pub use pagetop_minimal::paste;
|
||||||
|
// La documentación anterior está copiada de `pagetop_minimal::paste!` porque el *crate* original
|
||||||
|
// no la define y la de `pagetop_minimal` no se hereda automáticamente.
|
||||||
|
|
||||||
// **< FUNCIONES ÚTILES >***************************************************************************
|
// **< FUNCIONES ÚTILES >***************************************************************************
|
||||||
|
|
||||||
/// Resuelve y valida la ruta de un directorio existente, devolviendo una ruta absoluta.
|
/// Resuelve y valida la ruta de un directorio existente, devolviendo una ruta absoluta.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue