{-# OPTIONS --safe --cubical #-}

module Spartan6.Architecture.Schema where

open import Spartan6.Prelude
import Spartan6.Architecture.Primitive as Legacy

open Legacy public using
  (PortSpecification; portSpecification; canonicalPortName;
   canonicalPortWidth; scalarPort; inputPortSpecifications;
   outputPortSpecifications; inputPortWidths; outputPortWidths;
   inputPortNames; outputPortNames; inputPortCount; outputPortCount;
   stateBitCount)

record DependencySignature (kind : Legacy.PrimitiveKind) : Type₀ where
  constructor dependencySignature
  field
    requiredPortNames : List String
    producedPortNames : List String

open DependencySignature public

dependencySignatureFor : (kind : Legacy.PrimitiveKind)
  → DependencySignature kind
dependencySignatureFor kind =
  dependencySignature
    (Legacy.inputPortNames kind) (Legacy.outputPortNames kind)