From c2dcbe0f25a3e8bd60a4ccf377bbdd47f4794871 Mon Sep 17 00:00:00 2001 From: Louis Pilfold Date: Tue, 26 Mar 2024 13:57:31 +0000 Subject: Document opaque types Closes https://github.com/gleam-lang/language-tour/issues/63 --- .../lesson06_externals/code.gleam | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 src/content/chapter5_advanced_features/lesson06_externals/code.gleam (limited to 'src/content/chapter5_advanced_features/lesson06_externals/code.gleam') diff --git a/src/content/chapter5_advanced_features/lesson06_externals/code.gleam b/src/content/chapter5_advanced_features/lesson06_externals/code.gleam new file mode 100644 index 0000000..1101b82 --- /dev/null +++ b/src/content/chapter5_advanced_features/lesson06_externals/code.gleam @@ -0,0 +1,17 @@ +import gleam/io + +// A type with no Gleam constructors +pub type DateTime + +// An external function that creates an instance of the type +@external(javascript, "./my_package_ffi.mjs", "now") +pub fn now() -> DateTime + +// The `now` function in `./my_package_ffi.mjs` looks like this: +// export function now() { +// return new Date(); +// } + +pub fn main() { + io.debug(now()) +} -- cgit v1.2.3