♻️ [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-statics",
|
||||
"parking_lot",
|
||||
"pastey",
|
||||
"serde",
|
||||
"serde_json",
|
||||
"substring",
|
||||
|
|
@ -1634,6 +1633,7 @@ version = "0.0.10"
|
|||
dependencies = [
|
||||
"concat-string",
|
||||
"indoc",
|
||||
"pastey",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
|
@ -1673,9 +1673,9 @@ dependencies = [
|
|||
|
||||
[[package]]
|
||||
name = "pastey"
|
||||
version = "0.1.1"
|
||||
version = "0.2.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "35fb2e5f958ec131621fdd531e9fc186ed768cbe395337403ae56c17a74c68ec"
|
||||
checksum = "57d6c094ee800037dff99e02cab0eaf3142826586742a270ab3d7a62656bd27a"
|
||||
|
||||
[[package]]
|
||||
name = "path-matchers"
|
||||
|
|
|
|||
|
|
@ -22,7 +22,6 @@ figlet-rs = "0.1"
|
|||
getter-methods = "2.0"
|
||||
itoa = "1.0"
|
||||
parking_lot = "0.12"
|
||||
paste = { package = "pastey", version = "0.1" }
|
||||
substring = "1.4"
|
||||
terminal_size = "0.4"
|
||||
|
||||
|
|
|
|||
|
|
@ -18,3 +18,4 @@ authors.workspace = true
|
|||
[dependencies]
|
||||
concat-string = "1.0"
|
||||
indoc = "2.0"
|
||||
pastey = "0.2"
|
||||
|
|
|
|||
|
|
@ -1,4 +1,3 @@
|
|||
/*!
|
||||
<div align="center">
|
||||
|
||||
<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).
|
||||
|
||||
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
|
||||
[FaultyRAM](https://crates.io/users/FaultyRAM), para evitar el uso del formato de cadenas cuando la
|
||||
el *crate* [concat-string](https://crates.io/crates/concat_string), desarrollado por
|
||||
[FaultyRAM](https://crates.io/users/FaultyRAM), para evitar el formato de cadenas cuando la
|
||||
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
|
||||
|
||||
|
|
|
|||
|
|
@ -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).
|
||||
|
||||
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
|
||||
[FaultyRAM](https://crates.io/users/FaultyRAM), para evitar el uso del formato de cadenas cuando la
|
||||
el *crate* [concat-string](https://crates.io/crates/concat_string), desarrollado por
|
||||
[FaultyRAM](https://crates.io/users/FaultyRAM), para evitar el formato de cadenas cuando la
|
||||
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(
|
||||
|
|
@ -44,6 +48,18 @@ pub use concat_string::concat_string;
|
|||
|
||||
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`].
|
||||
///
|
||||
/// 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)]
|
||||
pub use actix_web::test;
|
||||
|
||||
#[doc(hidden)]
|
||||
pub use paste::paste;
|
||||
|
||||
/// Configura un servicio web para publicar archivos estáticos.
|
||||
///
|
||||
/// La macro ofrece tres modos para configurar el servicio:
|
||||
|
|
@ -75,7 +72,7 @@ macro_rules! static_files_service {
|
|||
}
|
||||
}
|
||||
if serve_embedded {
|
||||
$crate::service::paste! {
|
||||
$crate::util::paste! {
|
||||
mod [<static_files_ $bundle>] {
|
||||
include!(concat!(env!("OUT_DIR"), "/", stringify!($bundle), ".rs"));
|
||||
}
|
||||
|
|
@ -95,7 +92,7 @@ macro_rules! static_files_service {
|
|||
route = $route,
|
||||
);
|
||||
let _ = span.in_scope(|| {
|
||||
$crate::service::paste! {
|
||||
$crate::util::paste! {
|
||||
mod [<static_files_ $bundle>] {
|
||||
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};
|
||||
|
||||
/// 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 >***************************************************************************
|
||||
|
||||
/// Resuelve y valida la ruta de un directorio existente, devolviendo una ruta absoluta.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue