{-# OPTIONS_GHC -Wno-orphans #-}

module LawfulConversions.Relations.LazyByteStringBuilderAndShortByteString where

import qualified Data.ByteString.Builder
import qualified Data.ByteString.Lazy
import qualified Data.ByteString.Short
import LawfulConversions.Classes
import LawfulConversions.Prelude

instance IsSome Data.ByteString.Builder.Builder Data.ByteString.Short.ShortByteString where
  to :: ShortByteString -> Builder
to = ShortByteString -> Builder
Data.ByteString.Builder.shortByteString

instance IsSome Data.ByteString.Short.ShortByteString Data.ByteString.Builder.Builder where
  to :: Builder -> ShortByteString
to = ByteString -> ShortByteString
Data.ByteString.Short.toShort (ByteString -> ShortByteString)
-> (Builder -> ByteString) -> Builder -> ShortByteString
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. LazyByteString -> ByteString
Data.ByteString.Lazy.toStrict (LazyByteString -> ByteString)
-> (Builder -> LazyByteString) -> Builder -> ByteString
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. Builder -> LazyByteString
Data.ByteString.Builder.toLazyByteString
  maybeFrom :: ShortByteString -> Maybe Builder
maybeFrom = Builder -> Maybe Builder
forall a. a -> Maybe a
Just (Builder -> Maybe Builder)
-> (ShortByteString -> Builder) -> ShortByteString -> Maybe Builder
forall b c a. (b -> c) -> (a -> b) -> a -> c
forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k).
Category cat =>
cat b c -> cat a b -> cat a c
. ShortByteString -> Builder
Data.ByteString.Builder.shortByteString

instance IsMany Data.ByteString.Builder.Builder Data.ByteString.Short.ShortByteString

instance IsMany Data.ByteString.Short.ShortByteString Data.ByteString.Builder.Builder

instance Is Data.ByteString.Builder.Builder Data.ByteString.Short.ShortByteString

instance Is Data.ByteString.Short.ShortByteString Data.ByteString.Builder.Builder