From 1707d31bab68a3f291812f157c133ee73b8e2f0c Mon Sep 17 00:00:00 2001 From: Guillaume Hivert Date: Tue, 17 Sep 2024 18:35:26 +0200 Subject: [PATCH] Fix correct signature for `cache` on Erlang target --- sketch/src/sketch/error.gleam | 4 ++++ sketch/src/sketch/internals/cache/setup.gleam | 9 ++++++--- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/sketch/src/sketch/error.gleam b/sketch/src/sketch/error.gleam index ccb3588..d03f8e6 100644 --- a/sketch/src/sketch/error.gleam +++ b/sketch/src/sketch/error.gleam @@ -1,5 +1,9 @@ //// Defines standard error returned by sketch. +import gleam/otp/actor + +/// NotABrowser is unused nowadays. It will be removed in v4. pub type SketchError { NotABrowser + OtpError(actor.StartError) } diff --git a/sketch/src/sketch/internals/cache/setup.gleam b/sketch/src/sketch/internals/cache/setup.gleam index d9bf217..1344d29 100644 --- a/sketch/src/sketch/internals/cache/setup.gleam +++ b/sketch/src/sketch/internals/cache/setup.gleam @@ -6,6 +6,7 @@ import gleam/list import gleam/otp/actor import gleam/pair import gleam/result +import sketch/error.{type SketchError} import sketch/internals/cache/state import sketch/internals/style @@ -21,9 +22,11 @@ pub fn ephemeral() { } @target(erlang) -pub fn persistent() -> Result(Cache, Nil) { - let assert Ok(subject) = actor.start(style.persistent(), state.loop) - Ok(PersistentCache(subject)) +pub fn persistent() -> Result(Cache, SketchError) { + let subject = actor.start(style.persistent(), state.loop) + subject + |> result.map(PersistentCache) + |> result.map_error(error.OtpError) } @target(erlang)