#nushell-plugin #dhall #nu #parse #add

bin+lib nu_plugin_from_dhall

Nushell 插件,用于添加 Dhall 支持

1 个不稳定版本

0.0.1 2021 年 6 月 18 日

#5#dhall

MIT 和可能 CC-PDDC

17KB
123

nu_plugin_from_dhall

Check Test

这是一个为 Nushell 开发的插件,可以将 Dhall 文件打开到 nu 的结构化数据类型。

安装

cargo install nu_plugin_from_dhall

用法

给定一个 Dhall 文件

> cat example.dhall
let AccountType = < Guest | User | Admin >

let Person =
      { name : Text
      , age : Natural
      , accountType : AccountType
      , nickname : Optional Text
      }

let alice
    : Person
    = { name = "Alice"
      , age = 24
      , accountType = AccountType.Admin
      , nickname = Some "Cool Alice"
      }

let bob
    : Person
    = { name = "Bob"
      , age = 49
      , accountType = AccountType.User
      , nickname = None Text
      }

let carlo
    : Person
    = { name = "Carlo"
      , age = 20
      , accountType = AccountType.Guest
      , nickname = Some "Cooler Carlo"
      }

in  [ alice, bob, carlo ]

使用 open 将 Dhall 表达式解析成 Nushell 可以管道传输的结构化数据

> open example.dhall
───┬─────────────┬─────┬───────┬──────────────
 # │ accountType │ age │ name  │   nickname
───┼─────────────┼─────┼───────┼──────────────
 0 │ [row Admin] │  24 │ Alice │ Cool Alice
 1 │ [row User]  │  49 │ Bob   │
 2 │ [row Guest] │  20 │ Carlo │ Cooler Carlo
───┴─────────────┴─────┴───────┴──────────────

> open example.dhall | where age > 20 | get name
───┬───────
 0 │ Alice
 1 │ Bob
───┴───────

依赖

~30–64MB
~1M SLoC