package p.studio.compiler.services;

import p.studio.compiler.models.IRReservedMetadata;
import p.studio.compiler.pbs.PbsFrontendCompiler;
import p.studio.compiler.pbs.ast.PbsAst;
import p.studio.utilities.structures.ReadOnlyList;

record PbsImportedSemanticContext(
        ReadOnlyList<PbsAst.TopDecl> supplementalTopDecls,
        ReadOnlyList<PbsFrontendCompiler.ImportedCallableSurface> importedCallables,
        ReadOnlyList<PbsFrontendCompiler.ImportedGlobalSurface> importedGlobals,
        IRReservedMetadata importedReservedMetadata) {
    static PbsImportedSemanticContext empty() {
        return new PbsImportedSemanticContext(
                ReadOnlyList.empty(),
                ReadOnlyList.empty(),
                ReadOnlyList.empty(),
                IRReservedMetadata.empty());
    }
}
