-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | A Stringable type class, in the spirit of Foldable and Traversable -- -- Data.Stringable provides a type class with a set of functions -- for converting to and from the most often used string-linke types in -- Haskell. @package stringable @version 0.1.3 module Data.Stringable class Stringable a where toText = pack . toString fromText = fromString . unpack toLazyText = pack . toString fromLazyText = fromString . unpack toByteString = encodeUtf8 . toText fromByteString = fromText . decodeUtf8 toLazyByteString = encodeUtf8 . toLazyText fromLazyByteString = fromLazyText . decodeUtf8 toFilePath = fromText . toText fromFilePath = fromText . either (error "Error in conversion") id . toText toString :: Stringable a => a -> String fromString :: Stringable a => String -> a length :: Stringable a => a -> Int toText :: Stringable a => a -> Text fromText :: Stringable a => Text -> a toLazyText :: Stringable a => a -> Text fromLazyText :: Stringable a => Text -> a toByteString :: Stringable a => a -> ByteString fromByteString :: Stringable a => ByteString -> a toLazyByteString :: Stringable a => a -> ByteString fromLazyByteString :: Stringable a => ByteString -> a toFilePath :: Stringable a => a -> FilePath fromFilePath :: Stringable a => FilePath -> a class Stringable a => CStringable a where withCStringable = withCString . toString withCStringLenable str f = withCStringLen (toString str) (uncurry f) withCStringable :: CStringable a => a -> (CString -> IO b) -> IO b withCStringLenable :: CStringable a => a -> (CString -> Int -> IO b) -> IO b instance CStringable ByteString instance CStringable ByteString instance CStringable Text instance CStringable Text instance CStringable String instance Stringable FilePath instance Stringable ByteString instance Stringable ByteString instance Stringable Text instance Stringable Text instance Stringable String