Sou um iniciante em ferrugem e ainda estou muito confuso. No meu módulo atual, estou tentando usar o validtor
create conforme sugerido pelos documentos .
use once_cell::sync::Lazy;
use regex::Regex;
use serde::{Deserialize, Serialize};
use sqlx::types::Uuid;
use validator::Validate;
static RE_PASSWORDS: Lazy<Regex> =
Lazy::new(|| Regex::new(r"^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$").unwrap());
#[derive(Debug, Deserialize, Validate)]
pub struct CreateUserDto {
#[validate(length(min = 1, max = 100))]
pub name: String,
#[validate(email)]
pub email: String,
#[validate(regex = "RE_PASSWORDS")] // <- Unexpected type `string`
pub password: String,
}
Estou vendo o seguinte erro que marquei no recorte: Unexpected type 'string'
.
Tentei a sintaxe alternativa (não tenho certeza qual é a diferença entre as duas, embora o erro sugira que tem a ver com desreferenciação):
#[validate(regex(path = "RE_PASSWORDS"))]
Isso produz um novo erro:
o limite da característica
once_cell::sync::Lazy<regex::Regex>: validator::validation::regex::AsRegex
não é satisfeito, necessário para&once_cell::sync::Lazy<regex::Regex>
implementarvalidator::validation::regex::AsRegex
[dependencies]
[...]
once_cell = "1.19.0"
dotenv = "0.15.0"
regex = "1.10.6"
validator_derive = "0.18.1"
lazy_static = "1.5.0"
Alguém pode ajudar?
O leia-me está desatualizado. Há um problema no repositório aqui com uma correção em
Parece que a forma alternativa sugerida no leia-me atualizado (
validate(regex = *RE_PASSWORDS)
) ainda não funciona.