remote, LoggerOpCode Int -> Word64

This commit is contained in:
sorki 2023-12-01 06:43:30 +01:00
parent 78639b8396
commit 2c46d342b0
3 changed files with 12 additions and 11 deletions

View File

@ -200,8 +200,8 @@ instance Serialize ErrorInfo where
putMany put errorInfoTraces
instance Serialize LoggerOpCode where
get = getInt @Int >>= either fail pure . intToLoggerOpCode
put = putInt @Int . loggerOpCodeToInt
get = getInt >>= either fail pure . word64ToLoggerOpCode
put = putInt . loggerOpCodeToWord64
instance Serialize Verbosity where
get = getEnum

View File

@ -697,7 +697,7 @@ buildResult = Serializer
data LoggerSError
= LoggerSError_Prim SError
| LoggerSError_InvalidOpCode Int
| LoggerSError_InvalidOpCode Word64
| LoggerSError_TooOldForErrorInfo
| LoggerSError_TooNewForBasicError
| LoggerSError_UnknownLogFieldType Word8
@ -800,8 +800,8 @@ loggerOpCode = Serializer
either
(pure $ throwError (LoggerSError_InvalidOpCode c))
pure
$ intToLoggerOpCode c
, putS = putS int . loggerOpCodeToInt
$ word64ToLoggerOpCode c
, putS = putS int . loggerOpCodeToWord64
}
logger

View File

@ -5,13 +5,14 @@ module System.Nix.Store.Remote.Types.Logger
, ErrorInfo(..)
, Logger(..)
, LoggerOpCode(..)
, loggerOpCodeToInt
, intToLoggerOpCode
, loggerOpCodeToWord64
, word64ToLoggerOpCode
, isError
) where
import Data.ByteString (ByteString)
import Data.Text (Text)
import Data.Word (Word64)
import GHC.Generics
import System.Nix.Store.Remote.Types.Activity (Activity, ActivityID, ActivityResult)
import System.Nix.Store.Remote.Types.Verbosity (Verbosity)
@ -55,8 +56,8 @@ data LoggerOpCode
| LoggerOpCode_Result
deriving (Eq, Generic, Ord, Show)
loggerOpCodeToInt :: LoggerOpCode -> Int
loggerOpCodeToInt = \case
loggerOpCodeToWord64 :: LoggerOpCode -> Word64
loggerOpCodeToWord64 = \case
LoggerOpCode_Next -> 0x6f6c6d67
LoggerOpCode_Read -> 0x64617461
LoggerOpCode_Write -> 0x64617416
@ -66,8 +67,8 @@ loggerOpCodeToInt = \case
LoggerOpCode_StopActivity -> 0x53544f50
LoggerOpCode_Result -> 0x52534c54
intToLoggerOpCode :: Int -> Either String LoggerOpCode
intToLoggerOpCode = \case
word64ToLoggerOpCode :: Word64 -> Either String LoggerOpCode
word64ToLoggerOpCode = \case
0x6f6c6d67 -> Right LoggerOpCode_Next
0x64617461 -> Right LoggerOpCode_Read
0x64617416 -> Right LoggerOpCode_Write