module Language.Java.Class.ThisAccessFlags(
ThisAccessFlags(..)
, ThisAccessFlagsError(..)
, AsThisAccessFlagsUnexpectedEof(..)
, thisAccessFlagsUnexpectedEof
, thisAccessFlags
) where
import Control.Lens(Optic', Profunctor, iso, ( # ))
import Control.Monad(return)
import Data.Eq(Eq)
import Data.Functor(Functor)
import Data.Functor.Identity(Identity)
import Data.Ord(Ord)
import Data.Tagged(Tagged)
import Data.Tickle(Get, word16be, (!-))
import Data.Word(Word16)
import Prelude(Show)
newtype ThisAccessFlags =
ThisAccessFlags Word16
deriving (Eq, Ord, Show)
data ThisAccessFlagsError =
ThisAccessFlagsUnexpectedEof
deriving (Eq, Ord, Show)
class AsThisAccessFlagsUnexpectedEof p f s where
_ThisAccessFlagsUnexpectedEof ::
Optic' p f s ()
instance (Profunctor p, Functor f) => AsThisAccessFlagsUnexpectedEof p f ThisAccessFlagsError where
_ThisAccessFlagsUnexpectedEof =
iso
(\_ -> ())
(\() -> ThisAccessFlagsUnexpectedEof)
thisAccessFlagsUnexpectedEof ::
AsThisAccessFlagsUnexpectedEof Tagged Identity t =>
t
thisAccessFlagsUnexpectedEof =
_ThisAccessFlagsUnexpectedEof # ()
thisAccessFlags ::
AsThisAccessFlagsUnexpectedEof Tagged Identity e =>
Get e ThisAccessFlags
thisAccessFlags =
do af <- thisAccessFlagsUnexpectedEof !- word16be
return (ThisAccessFlags af)