Uma linguagem específica de domínio (DSL) é uma linguagem pequena, otimizada para um domínio específico. Como uma DSL é direcionada a um domínio, ela pode aumentar muito a produtividade e a compreensão, pois permite que quem escreve declare o que quer, em vez de como.
Uma das áreas em que elas são aplicadas é a de customizações e configurações complexas.
Por exemplo, a linguagem DOT permite escrever uma descrição textual de um grafo, que depois é transformada em uma imagem por uma das ferramentas do Graphviz (como o dot).
Um grafo simples se parece com isto:
graph {
graph [bgcolor="yellow"]
a [color="red"]
b [color="blue"]
a -- b [color="green"]
}
Colocando isso em um arquivo example.dot e rodando dot example.dot -T png -o example.png, você cria uma imagem example.png com um círculo vermelho e um azul ligados por uma linha verde sobre um fundo amarelo.
Escreva uma linguagem específica de domínio parecida com a linguagem dot do Graphviz.
Nossa DSL é parecida com a linguagem dot do Graphviz no sentido de que será usada para criar estruturas de dados de grafo. No entanto, ao contrário da linguagem DOT, nossa DSL será uma DSL interna, para uso apenas na nossa linguagem.
Saiba mais sobre a diferença entre DSLs internas e externas.
Este exercício espera que você construa várias structs usando o builder pattern.
Em resumo, esse padrão permite dividir a função de construção da sua struct, que contém muitos argumentos, em
várias funções separadas. Essa abordagem dá a você os meios de construir e configurar structs de forma compacta, mas altamente flexível.
Você pode ler mais sobre isso na página a seguir.
Crie sua conta no Exercism para aprender e dominar Rust com 99 exercícios e mentoria humana de verdade, tudo de graça.