Line data Source code
1 : #ifndef ATTRIBUTES_H
2 : #define ATTRIBUTES_H
3 :
4 : #include <cstddef>
5 : #include <memory>
6 : #include <string>
7 : #include <vector>
8 : #include "../../../tables/typeTable/types/type.h"
9 :
10 : namespace nicole {
11 :
12 : class Attributes {
13 : private:
14 : std::vector<std::pair<std::string, std::shared_ptr<Type>>> params_;
15 :
16 : public:
17 : explicit Attributes(
18 : const std::vector<std::pair<std::string, std::shared_ptr<Type>>> ¶ms) noexcept
19 0 : : params_{params} {}
20 :
21 : [[nodiscard]] const std::vector<std::pair<std::string, std::shared_ptr<Type>>> &
22 0 : params() const noexcept {
23 0 : return params_;
24 0 : }
25 :
26 0 : [[nodiscard]] std::size_t size() const noexcept { return params_.size(); }
27 :
28 0 : auto begin() const noexcept { return params_.begin(); }
29 :
30 0 : auto end() const noexcept { return params_.end(); }
31 : };
32 :
33 : } // namespace nicole
34 :
35 : #endif
|