From 7ff2ac832ce3d0c38358d6da08ebe86d55ff5f65 Mon Sep 17 00:00:00 2001 From: Giacomo Cavalieri Date: Sat, 2 Mar 2024 16:50:16 +0100 Subject: [PATCH 1/2] add prelude type helpers --- src/gleam/package_interface.gleam | 54 +++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/src/gleam/package_interface.gleam b/src/gleam/package_interface.gleam index eb0dbec..48bce9a 100644 --- a/src/gleam/package_interface.gleam +++ b/src/gleam/package_interface.gleam @@ -3,6 +3,60 @@ import gleam/dynamic.{type DecodeErrors, type Decoder, type Dynamic} import gleam/option.{type Option} import gleam/result +// --- GLEAM PRELUDE TYPES ----------------------------------------------------- + +/// The Gleam `Int` type's representation in a pacakge interface. +/// +pub const int = Named(name: "Int", package: "", module: "gleam", parameters: []) + +/// The Gleam `Float` type. +/// +pub const float = Named( + name: "Float", + package: "", + module: "gleam", + parameters: [], +) + +/// The Gleam `String` type's representation in a package interface. +/// +pub const string = Named( + name: "String", + package: "", + module: "gleam", + parameters: [], +) + +/// The Gleam `Bool` type's representation in a package interface. +/// +pub const bool = Named( + name: "Bool", + package: "", + module: "gleam", + parameters: [], +) + +/// The Gleam `BitArray` type's representation in a package interface. +/// +pub const bit_array = Named( + name: "BitArray", + package: "", + module: "gleam", + parameters: [], +) + +/// A Gleam `List` with the given type as its parameter. +/// +pub fn list(of type_: Type) -> Type { + Named(name: "List", package: "", module: "gleam", parameters: [type_]) +} + +/// A Gleam `Result` with the given types as the ok and error parameters. +/// +pub fn result(ok: Type, error: Type) -> Type { + Named(name: "Result", package: "", module: "gleam", parameters: [ok, error]) +} + // --- TYPES ------------------------------------------------------------------- /// A Gleam package. From 9ecaf0a5902e68f545afca0d435087177ba56f4d Mon Sep 17 00:00:00 2001 From: Giacomo Cavalieri Date: Sat, 2 Mar 2024 17:07:55 +0100 Subject: [PATCH 2/2] CHANGELOG! --- CHANGELOG | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/CHANGELOG b/CHANGELOG index 95e06d2..9a32113 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,5 +1,11 @@ # Changelog -# v1.0.0 - 02-29-2024 +## Unreleased + +- The `package_interface` module gains the `list` and `result` functions. +- The `package_interface` module gains the `int`, `float`, `string`, `bool` and + `bit_array` constants. + +## v1.0.0 - 02-29-2024 - 🎉 first release