mirror of
https://github.com/haskell-nix/hnix-store.git
synced 2024-09-11 18:05:56 +03:00
remote, LoggerOpCode Int -> Word64
This commit is contained in:
parent
78639b8396
commit
2c46d342b0
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user