usb-id-database-0.4.0.1: System/USB/IDDB/Misc.hs
{-# LANGUAGE UnicodeSyntax #-}
{-# LANGUAGE NoImplicitPrelude #-}
module System.USB.IDDB.Misc
( eitherMaybe
, swap
, restOfLine
) where
-- base
import Data.Char ( String )
import Data.Either ( Either, either )
import Data.Function ( ($), const, flip )
import Data.Maybe ( Maybe(..) )
import Data.Tuple ( uncurry )
-- parsimony
import Parsimony (Parser, manyTill)
import Parsimony.Char (anyChar, newline)
eitherMaybe ∷ Either r α → Maybe α
eitherMaybe = either (const Nothing) Just
swap ∷ (α, β) → (β, α)
swap = uncurry $ flip (,)
restOfLine ∷ Parser String String
restOfLine = manyTill anyChar newline