feat[classfile]: stages the entire file
This commit is contained in:
parent
500bfa349e
commit
f309c5f92c
7 changed files with 117 additions and 57 deletions
|
@ -2,16 +2,28 @@
|
|||
|
||||
{-# LANGUAGE DeriveGeneric #-}
|
||||
{-# LANGUAGE DerivingVia #-}
|
||||
{-# LANGUAGE StandaloneDeriving #-}
|
||||
{-# LANGUAGE FlexibleContexts #-}
|
||||
{-# LANGUAGE UndecidableInstances #-}
|
||||
{-# LANGUAGE StandaloneKindSignatures #-}
|
||||
{-# LANGUAGE DataKinds #-}
|
||||
module Language.Java.Classfile.Interfaces (Interfaces(..)) where
|
||||
import Data.Array.IArray (Array)
|
||||
import Data.Word (Word16)
|
||||
import Language.Java.Classfile.ConstantPool.References (ClassReference)
|
||||
import Language.Java.Classfile.ConstantPool.References (Class)
|
||||
import Language.Java.Classfile.Extractable (Extractable)
|
||||
import GHC.Generics ( Generic, Generically, Generically(..) )
|
||||
import Pretty.Serialize (PrettySerialize)
|
||||
import Language.Java.Classfile.Stage (Stage)
|
||||
import Data.Kind (Type)
|
||||
import Data.Typeable (Typeable)
|
||||
|
||||
-- | A list of classes something implements.
|
||||
|
||||
newtype Interfaces = Interfaces (Array Word16 ClassReference)
|
||||
deriving stock (Show, Generic)
|
||||
deriving (Extractable, PrettySerialize) via Generically Interfaces
|
||||
type Interfaces :: Stage -> Type
|
||||
newtype Interfaces stage = Interfaces (Array Word16 (Class stage))
|
||||
deriving stock (Generic)
|
||||
|
||||
deriving stock instance (Show (Class stage)) => Show (Interfaces stage)
|
||||
deriving via Generically (Interfaces stage) instance (Extractable (Class stage), Typeable stage) => Extractable (Interfaces stage)
|
||||
deriving via Generically (Interfaces stage) instance (PrettySerialize (Class stage), Typeable stage) => PrettySerialize (Interfaces stage)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue