📄 NDS (Notação de Dados Sol)

Biblioteca para serialização e deserialização de dados no formato Sol nativo.

O que é NDS? NDS é uma alternativa ao JSON que usa sintaxe Sol/Lua, tornando-o mais natural para desenvolvedores Sol. É ideal para arquivos de configuração, persistência de dados e comunicação entre processos Sol.

📝 Formato NDS

O formato NDS é similar a tabelas Sol, sem necessidade de retorne {}:

-- config.nds
servidor = "localhost"
porta = 8080
debug = verdadeiro

banco_dados = {
    host = "127.0.0.1",
    usuario = "admin",
    senha = "secreto"
}

usuarios = {
    {nome = "João", nivel = 10},
    {nome = "Maria", nivel = 5}
}

📚 Funções

nds.carregue (texto)

Converte uma string no formato NDS para uma tabela Sol.

Parâmetros
  • texto: Texto - Conteúdo NDS a ser parseado.
Retorno

Tabela ou (nulo, mensagem de erro).

Exemplo
local dados = nds.carregue([[
    nome = "Maria",
    ativo = verdadeiro
]])
exiba(dados.nome) -- "Maria"

nds.carregue_arquivo (caminho)

Lê um arquivo NDS e retorna seu conteúdo como tabela.

Parâmetros
  • caminho: Texto - Caminho para o arquivo .nds.
Retorno

Tabela ou (nulo, mensagem de erro).

Exemplo
local config = nds.carregue_arquivo("config.nds")
exiba(config.servidor)

nds.converta (tabela)

Converte uma tabela Sol para string no formato NDS.

Parâmetros
  • tabela: Tabela - A tabela a serializar.
Retorno

Texto no formato NDS.

Exemplo
local dados = {nome = "João", idade = 25}
local texto = nds.converta(dados)
exiba(texto)
-- {
--     nome = "João",
--     idade = 25
-- }

nds.salve (caminho, tabela)

Salva uma tabela em um arquivo no formato NDS.

Parâmetros
  • caminho: Texto - Caminho do arquivo de destino.
  • tabela: Tabela - Dados a salvar.
Retorno

verdadeiro ou (falso, mensagem de erro).

Exemplo
local dados = {usuario = "admin", nivel = 10}
nds.salve("usuario.nds", dados)

nds.converta_arquivo (tabela)

Converte uma tabela para string no formato de arquivo NDS (sem o wrapper de tabela).

Parâmetros
  • tabela: Tabela - A tabela a serializar.
Retorno

Texto pronto para salvar em arquivo .nds.

Exemplo
local dados = {nome = "João", idade = 25}
local conteudo = nds.converta_arquivo(dados)
-- nome = "João"
--
-- idade = 25

🔄 NDS vs JSON

NDS

nome = "João"
idade = 30
ativo = verdadeiro
endereco = {
    cidade = "São Paulo",
    cep = "01234-567"
}

JSON

{
    "nome": "João",
    "idade": 30,
    "ativo": true,
    "endereco": {
        "cidade": "São Paulo",
        "cep": "01234-567"
    }
}
Vantagens do NDS:
  • Sintaxe familiar para desenvolvedores Sol/Lua
  • Suporta comentários (-- comentário)
  • Chaves sem aspas quando são identificadores válidos
  • Usa verdadeiro/falso/nulo em vez de true/false/null
```