Initialising...
Edit the Gleam code below to see the hero update.
View types & encoding
import gleam/io
import gleam/json
// === Types ===
pub type Page {
Page(
name: String,
tagline: String,
links: List(Link),
)
}
pub type Link {
Link(label: String, href: String, external: Bool)
} // === Encoding ===
fn encode_link(link: Link) -> json.Json {
json.object([
#("label", json.string(link.label)),
#("href", json.string(link.href)),
#("external", json.bool(link.external)),
])
}
fn encode_page(p: Page) -> json.Json {
json.object([
#("name", json.string(p.name)),
#("tagline", json.string(p.tagline)),
#("links", json.array(p.links, encode_link)),
])
}
pub fn main() {
page()
|> encode_page
|> json.to_string
|> io.println
}