package p.studio.compiler.source.tables;

import p.studio.compiler.source.identifiers.CallableShapeId;
import p.studio.compiler.source.identifiers.TypeSurfaceId;
import p.studio.utilities.structures.ReadOnlyList;

public class CallableShapeTable extends InternTable<CallableShapeId, CallableShapeRef> {

    public CallableShapeTable() {
        super(CallableShapeId::new);
    }

    public CallableShapeId register(
            final ReadOnlyList<TypeSurfaceId> parameterTypeSurfaces,
            final TypeSurfaceId outputTypeSurface) {
        return register(new CallableShapeRef(parameterTypeSurfaces, outputTypeSurface));
    }
}
