mirror of
https://github.com/tfausak/witch.git
synced 2024-11-29 22:57:21 +03:00
Add more instances for string types
This commit is contained in:
parent
5e62ab18c1
commit
a4dfd7f2c5
@ -1015,6 +1015,14 @@ instance From.From ByteString.ByteString ShortByteString.ShortByteString where
|
|||||||
instance TryFrom.TryFrom ByteString.ByteString Text.Text where
|
instance TryFrom.TryFrom ByteString.ByteString Text.Text where
|
||||||
tryFrom = Utility.eitherTryFrom Text.decodeUtf8'
|
tryFrom = Utility.eitherTryFrom Text.decodeUtf8'
|
||||||
|
|
||||||
|
-- | Converts via 'Text.Text'.
|
||||||
|
instance TryFrom.TryFrom ByteString.ByteString LazyText.Text where
|
||||||
|
tryFrom = Utility.eitherTryFrom $ fmap (Utility.into @LazyText.Text) . Utility.tryInto @Text.Text
|
||||||
|
|
||||||
|
-- | Converts via 'Text.Text'.
|
||||||
|
instance TryFrom.TryFrom ByteString.ByteString String where
|
||||||
|
tryFrom = Utility.eitherTryFrom $ fmap (Utility.into @String) . Utility.tryInto @Text.Text
|
||||||
|
|
||||||
-- LazyByteString
|
-- LazyByteString
|
||||||
|
|
||||||
-- | Uses 'LazyByteString.pack'.
|
-- | Uses 'LazyByteString.pack'.
|
||||||
@ -1033,6 +1041,14 @@ instance From.From LazyByteString.ByteString ByteString.ByteString where
|
|||||||
instance TryFrom.TryFrom LazyByteString.ByteString LazyText.Text where
|
instance TryFrom.TryFrom LazyByteString.ByteString LazyText.Text where
|
||||||
tryFrom = Utility.eitherTryFrom LazyText.decodeUtf8'
|
tryFrom = Utility.eitherTryFrom LazyText.decodeUtf8'
|
||||||
|
|
||||||
|
-- | Converts via 'LazyText.Text'.
|
||||||
|
instance TryFrom.TryFrom LazyByteString.ByteString Text.Text where
|
||||||
|
tryFrom = Utility.eitherTryFrom $ fmap (Utility.into @Text.Text) . Utility.tryInto @LazyText.Text
|
||||||
|
|
||||||
|
-- | Converts via 'LazyText.Text'.
|
||||||
|
instance TryFrom.TryFrom LazyByteString.ByteString String where
|
||||||
|
tryFrom = Utility.eitherTryFrom $ fmap (Utility.into @String) . Utility.tryInto @LazyText.Text
|
||||||
|
|
||||||
-- ShortByteString
|
-- ShortByteString
|
||||||
|
|
||||||
-- | Uses 'ShortByteString.pack'.
|
-- | Uses 'ShortByteString.pack'.
|
||||||
@ -1057,6 +1073,10 @@ instance From.From Text.Text LazyText.Text where
|
|||||||
instance From.From Text.Text ByteString.ByteString where
|
instance From.From Text.Text ByteString.ByteString where
|
||||||
from = Text.encodeUtf8
|
from = Text.encodeUtf8
|
||||||
|
|
||||||
|
-- | Converts via 'ByteString.ByteString'.
|
||||||
|
instance From.From Text.Text LazyByteString.ByteString where
|
||||||
|
from = Utility.via @ByteString.ByteString
|
||||||
|
|
||||||
-- LazyText
|
-- LazyText
|
||||||
|
|
||||||
-- | Uses 'LazyText.toStrict'.
|
-- | Uses 'LazyText.toStrict'.
|
||||||
@ -1067,6 +1087,10 @@ instance From.From LazyText.Text Text.Text where
|
|||||||
instance From.From LazyText.Text LazyByteString.ByteString where
|
instance From.From LazyText.Text LazyByteString.ByteString where
|
||||||
from = LazyText.encodeUtf8
|
from = LazyText.encodeUtf8
|
||||||
|
|
||||||
|
-- | Converts via 'LazyByteString.ByteString'.
|
||||||
|
instance From.From LazyText.Text ByteString.ByteString where
|
||||||
|
from = Utility.via @LazyByteString.ByteString
|
||||||
|
|
||||||
-- String
|
-- String
|
||||||
|
|
||||||
-- | Uses 'Text.pack'. Some 'Char' values cannot be represented in 'Text.Text'
|
-- | Uses 'Text.pack'. Some 'Char' values cannot be represented in 'Text.Text'
|
||||||
@ -1087,6 +1111,14 @@ instance From.From String LazyText.Text where
|
|||||||
instance From.From LazyText.Text String where
|
instance From.From LazyText.Text String where
|
||||||
from = LazyText.unpack
|
from = LazyText.unpack
|
||||||
|
|
||||||
|
-- | Converts via 'Text.Text'.
|
||||||
|
instance From.From String ByteString.ByteString where
|
||||||
|
from = Utility.via @Text.Text
|
||||||
|
|
||||||
|
-- | Converts via 'LazyText.Text'.
|
||||||
|
instance From.From String LazyByteString.ByteString where
|
||||||
|
from = Utility.via @LazyText.Text
|
||||||
|
|
||||||
-- TryFromException
|
-- TryFromException
|
||||||
|
|
||||||
-- | Uses @coerce@.
|
-- | Uses @coerce@.
|
||||||
|
@ -1601,6 +1601,18 @@ main = runTestTTAndExit $ "Witch" ~:
|
|||||||
, f (ByteString.pack [0x61]) ~?= Just (Text.pack "a")
|
, f (ByteString.pack [0x61]) ~?= Just (Text.pack "a")
|
||||||
, f (ByteString.pack [0xff]) ~?= Nothing
|
, f (ByteString.pack [0xff]) ~?= Nothing
|
||||||
]
|
]
|
||||||
|
, "TryFrom ByteString LazyText" ~:
|
||||||
|
let f = hush . Witch.tryFrom @ByteString.ByteString @LazyText.Text in
|
||||||
|
[ f (ByteString.pack []) ~?= Just (LazyText.pack "")
|
||||||
|
, f (ByteString.pack [0x61]) ~?= Just (LazyText.pack "a")
|
||||||
|
, f (ByteString.pack [0xff]) ~?= Nothing
|
||||||
|
]
|
||||||
|
, "TryFrom ByteString String" ~:
|
||||||
|
let f = hush . Witch.tryFrom @ByteString.ByteString @String in
|
||||||
|
[ f (ByteString.pack []) ~?= Just ""
|
||||||
|
, f (ByteString.pack [0x61]) ~?= Just "a"
|
||||||
|
, f (ByteString.pack [0xff]) ~?= Nothing
|
||||||
|
]
|
||||||
|
|
||||||
-- LazyByteString
|
-- LazyByteString
|
||||||
|
|
||||||
@ -1628,6 +1640,18 @@ main = runTestTTAndExit $ "Witch" ~:
|
|||||||
, f (LazyByteString.pack [0x61]) ~?= Just (LazyText.pack "a")
|
, f (LazyByteString.pack [0x61]) ~?= Just (LazyText.pack "a")
|
||||||
, f (LazyByteString.pack [0xff]) ~?= Nothing
|
, f (LazyByteString.pack [0xff]) ~?= Nothing
|
||||||
]
|
]
|
||||||
|
, "TryFrom LazyByteString Text" ~:
|
||||||
|
let f = hush . Witch.tryFrom @LazyByteString.ByteString @Text.Text in
|
||||||
|
[ f (LazyByteString.pack []) ~?= Just (Text.pack "")
|
||||||
|
, f (LazyByteString.pack [0x61]) ~?= Just (Text.pack "a")
|
||||||
|
, f (LazyByteString.pack [0xff]) ~?= Nothing
|
||||||
|
]
|
||||||
|
, "TryFrom LazyByteString String" ~:
|
||||||
|
let f = hush . Witch.tryFrom @LazyByteString.ByteString @String in
|
||||||
|
[ f (LazyByteString.pack []) ~?= Just ""
|
||||||
|
, f (LazyByteString.pack [0x61]) ~?= Just "a"
|
||||||
|
, f (LazyByteString.pack [0xff]) ~?= Nothing
|
||||||
|
]
|
||||||
|
|
||||||
-- ShortByteString
|
-- ShortByteString
|
||||||
|
|
||||||
@ -1663,6 +1687,11 @@ main = runTestTTAndExit $ "Witch" ~:
|
|||||||
[ f (Text.pack "") ~?= ByteString.pack []
|
[ f (Text.pack "") ~?= ByteString.pack []
|
||||||
, f (Text.pack "a") ~?= ByteString.pack [0x61]
|
, f (Text.pack "a") ~?= ByteString.pack [0x61]
|
||||||
]
|
]
|
||||||
|
, "From Text LazyByteString" ~:
|
||||||
|
let f = Witch.from @Text.Text @LazyByteString.ByteString in
|
||||||
|
[ f (Text.pack "") ~?= LazyByteString.pack []
|
||||||
|
, f (Text.pack "a") ~?= LazyByteString.pack [0x61]
|
||||||
|
]
|
||||||
|
|
||||||
-- LazyText
|
-- LazyText
|
||||||
|
|
||||||
@ -1677,6 +1706,11 @@ main = runTestTTAndExit $ "Witch" ~:
|
|||||||
[ f (LazyText.pack "") ~?= LazyByteString.pack []
|
[ f (LazyText.pack "") ~?= LazyByteString.pack []
|
||||||
, f (LazyText.pack "a") ~?= LazyByteString.pack [0x61]
|
, f (LazyText.pack "a") ~?= LazyByteString.pack [0x61]
|
||||||
]
|
]
|
||||||
|
, "From LazyText ByteString" ~:
|
||||||
|
let f = Witch.from @LazyText.Text @ByteString.ByteString in
|
||||||
|
[ f (LazyText.pack "") ~?= ByteString.pack []
|
||||||
|
, f (LazyText.pack "a") ~?= ByteString.pack [0x61]
|
||||||
|
]
|
||||||
|
|
||||||
-- String
|
-- String
|
||||||
|
|
||||||
@ -1704,6 +1738,16 @@ main = runTestTTAndExit $ "Witch" ~:
|
|||||||
, f (LazyText.pack "a") ~?= "a"
|
, f (LazyText.pack "a") ~?= "a"
|
||||||
, f (LazyText.pack "ab") ~?= "ab"
|
, f (LazyText.pack "ab") ~?= "ab"
|
||||||
]
|
]
|
||||||
|
, "From String ByteString" ~:
|
||||||
|
let f = Witch.from @String @ByteString.ByteString in
|
||||||
|
[ f "" ~?= ByteString.pack []
|
||||||
|
, f "a" ~?= ByteString.pack [0x61]
|
||||||
|
]
|
||||||
|
, "From String LazyByteString" ~:
|
||||||
|
let f = Witch.from @String @LazyByteString.ByteString in
|
||||||
|
[ f "" ~?= LazyByteString.pack []
|
||||||
|
, f "a" ~?= LazyByteString.pack [0x61]
|
||||||
|
]
|
||||||
|
|
||||||
-- Day
|
-- Day
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user