Line |
Branch |
Exec |
Source |
1 |
|
|
// Copyright (c) 2021-2024 ChilliBits. All rights reserved. |
2 |
|
|
|
3 |
|
|
#pragma once |
4 |
|
|
|
5 |
|
|
#include <string> |
6 |
|
|
#include <utility> |
7 |
|
|
#include <vector> |
8 |
|
|
|
9 |
|
|
#include <model/Function.h> |
10 |
|
|
#include <model/GenericType.h> |
11 |
|
|
#include <model/StructBase.h> |
12 |
|
|
|
13 |
|
|
namespace spice::compiler { |
14 |
|
|
|
15 |
|
|
class Interface : public StructBase { |
16 |
|
|
public: |
17 |
|
|
// Constructors |
18 |
|
73 |
Interface(std::string name, SymbolTableEntry *entry, Scope *scope, std::vector<Function *> methods, |
19 |
|
|
std::vector<GenericType> templateTypes, ASTNode *declNode) |
20 |
|
73 |
: StructBase(std::move(name), entry, scope, std::move(templateTypes), declNode), methods(std::move(methods)) {} |
21 |
|
|
|
22 |
|
|
// Public members |
23 |
|
|
std::vector<Function *> methods; |
24 |
|
|
}; |
25 |
|
|
|
26 |
|
|
} // namespace spice::compiler |
27 |
|
|
|