Pular para o conteúdo

10 · Strings

Literais de string nominais validados

Um literal como Email\"[email protected]\" só é aceito se o predicado do newtype de string validado aceitar seu conteúdo estático na compilação. Strings dinâmicas continuam usando o construtor falível. Templates prefixados por funções existentes preservam sua semântica.

Nesta página

Um literal como Email"[email protected]" só é aceito se o predicado do newtype de string validado aceitar seu conteúdo estático na compilação. Strings dinâmicas continuam usando o construtor falível. Templates prefixados por funções existentes preservam sua semântica.

Exemplo completo

Literais de string nominais validados.

nominal-string-literals.zolo
Playground
// expect: [email protected]

// expect: true

// expect: empty

// expect: [email protected]

// expect: callable

const required = "@"
fn valid_email(value: str) -> bool = value.contains(required)
newtype Email(str) where |value| valid_email(value)
newtype Empty(str) where |value| value == ""
let email = Email"[email protected]"
print(email.unwrap())
let input = "invalid"
print(Email.new(input).is_err())
let empty = Empty""
print(if empty.unwrap() == "" { "empty" } else { "wrong" })
mod address { pub newtype Address(str) where |value| value.contains("@") }
use address::{Address as Mail}
print(Mail"[email protected]".unwrap())
fn callable() -> str { let Email = |parts: [str]| parts[0]; Email"callable" }
print(callable())

Regras e comportamento

Validação, schemas e unidades · Documentação

A partir de um checkout do repositório:

zolo examples/features/nominal-string-literals.zolo

Índice global

Encontre seu caminho pela Zolo

Experimente uma ideia

Comece por aqui

9 resultados

9 resultados

enespt-br