From ae66114ca15d395982693ccfba1f127dbdf501dc Mon Sep 17 00:00:00 2001 From: Sven van Heugten Date: Sat, 3 Jan 2026 19:06:58 +0100 Subject: [PATCH] Make the onEventReceived type more explicit --- NightLight.Core/Core.fs | 6 ++++-- NightLight/Program.fs | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/NightLight.Core/Core.fs b/NightLight.Core/Core.fs index 888bc35..d6e972a 100644 --- a/NightLight.Core/Core.fs +++ b/NightLight.Core/Core.fs @@ -22,15 +22,17 @@ type Event = | ReceivedZigbeeEvent of payload: string | TimeChanged of DateTime +type ParseEventError = ParseZigbeeEventError of ParseZigbeeEventError + type State = { Time: DateTime } -let onEventReceived (state: State) (event: Event) = +let onEventReceived (state: State) (event: Event) : Result = result { let partOfDay = getPartOfDay state.Time match event with | ReceivedZigbeeEvent payload -> - let! zigbeeEvent = parseZigbeeEvent payload + let! zigbeeEvent = parseZigbeeEvent payload |> Result.mapError ParseZigbeeEventError return state, diff --git a/NightLight/Program.fs b/NightLight/Program.fs index aa7128a..aa4a49a 100644 --- a/NightLight/Program.fs +++ b/NightLight/Program.fs @@ -44,7 +44,7 @@ let private handleEvent (mqttClient: IMqttClient) (logger: ILogger) (state: Stat do! publishZigbeeCommands mqttClient logger commands return newState } - | Error UnknownType -> async.Return state + | Error(ParseZigbeeEventError UnknownType) -> async.Return state | Error e -> logger.LogError("Error {Error} while {Event}", e, event) async.Return state