more OsPath conversion
keyFile has a nice improvement; since a Key is a ShortByteString, it can be converted to an OsPath without needing the copy that was done before. Unfortunately, fileKey has to convert from a ShortByteString to a ByteString in order to use attoparsec, and then the results get converted back to an OsPath, so there are now 2 copies. Maybe attoparsec will eventually get a ShortByteString API, see https://github.com/haskell/attoparsec/issues/225 Sponsored-by: Joshua Antonishen
This commit is contained in:
parent
98a0a9ddff
commit
7ebef6cd1b
5 changed files with 249 additions and 215 deletions
|
@ -10,6 +10,7 @@
|
|||
module Types.UUID where
|
||||
|
||||
import qualified Data.ByteString as B
|
||||
import qualified Data.ByteString.Short as SB
|
||||
import qualified Data.Text as T
|
||||
import qualified Data.Map as M
|
||||
import qualified Data.UUID as U
|
||||
|
@ -54,6 +55,15 @@ instance ToUUID B.ByteString where
|
|||
| B.null b = NoUUID
|
||||
| otherwise = UUID b
|
||||
|
||||
instance FromUUID SB.ShortByteString where
|
||||
fromUUID (UUID u) = SB.toShort u
|
||||
fromUUID NoUUID = SB.empty
|
||||
|
||||
instance ToUUID SB.ShortByteString where
|
||||
toUUID b
|
||||
| SB.null b = NoUUID
|
||||
| otherwise = UUID (SB.fromShort b)
|
||||
|
||||
instance FromUUID String where
|
||||
fromUUID s = decodeBS (fromUUID s)
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue