module Language.Java.Class.MethodAccessFlags(
MethodAccessFlags(..)
, MethodAccessFlagsError(..)
, AsMethodAccessFlagsUnexpectedEof(..)
, methodAccessFlagsUnexpectedEof
, methodAccessFlags
) 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 MethodAccessFlags =
MethodAccessFlags
Word16
deriving (Eq, Ord, Show)
data MethodAccessFlagsError =
MethodAccessFlagsUnexpectedEof
deriving (Eq, Ord, Show)
class AsMethodAccessFlagsUnexpectedEof p f s where
_MethodAccessFlagsUnexpectedEof ::
Optic' p f s ()
instance (Profunctor p, Functor f) => AsMethodAccessFlagsUnexpectedEof p f MethodAccessFlagsError where
_MethodAccessFlagsUnexpectedEof =
iso
(\_ -> ())
(\() -> MethodAccessFlagsUnexpectedEof)
methodAccessFlagsUnexpectedEof ::
AsMethodAccessFlagsUnexpectedEof Tagged Identity t =>
t
methodAccessFlagsUnexpectedEof =
_MethodAccessFlagsUnexpectedEof # ()
methodAccessFlags ::
AsMethodAccessFlagsUnexpectedEof Tagged Identity e =>
Get e MethodAccessFlags
methodAccessFlags =
do af <- methodAccessFlagsUnexpectedEof !- word16be
return (MethodAccessFlags af)