diff options
author | Claudius "keldu" Holeksa <mail@keldu.de> | 2023-05-27 19:22:41 +0200 |
---|---|---|
committer | Claudius "keldu" Holeksa <mail@keldu.de> | 2023-05-27 19:22:41 +0200 |
commit | c6c412af6838e48d333212503fff2e122dd1b677 (patch) | |
tree | 7a42f72ffecffe63ba778fa84de5131be2ca2f8d | |
parent | 4ffe4b85c1ba192463aac46f95d0704c0196b7d2 (diff) |
c++: Renamed NamedMember to Member
-rw-r--r-- | src/codec/data.h | 25 | ||||
-rw-r--r-- | src/codec/schema.h | 6 | ||||
-rw-r--r-- | src/window/window.h | 6 |
3 files changed, 30 insertions, 7 deletions
diff --git a/src/codec/data.h b/src/codec/data.h index e181dc4..96345af 100644 --- a/src/codec/data.h +++ b/src/codec/data.h @@ -69,6 +69,21 @@ private: static_assert(always_false<T>, "Type not supported"); }; +template<typename... T, string_literal... literal> +class data<schema::Struct<Member<T, literal>...>, encode::Native> { +private: + std::tuple<data<T,encode::Native>...> value_; +public: + template<string_literal literal> + data<T, encode::Native>& get(){ + + } + + constexpr size_t size() const { + return sizeof...(T); + } +}; + template<typename T> class data<schema::Array<T>, encode::Native> { private: @@ -78,7 +93,7 @@ class data<schema::Array<T>, encode::Native> { value_.resize(size_); } - data<T>& at(size_t i){ + data<T, encode::Native>& at(size_t i){ return value_.at(i); } @@ -99,6 +114,14 @@ public: return value_.size(); } + char get_at(size_t i) const{ + return value_.at(i); + } + + void set_at(size_t i, char val){ + value_.at(i) = val; + } + bool operator==(const data<schema::String, encode::Native>& data){ return value_ == data.value_; } diff --git a/src/codec/schema.h b/src/codec/schema.h index d040a7a..5021d33 100644 --- a/src/codec/schema.h +++ b/src/codec/schema.h @@ -6,7 +6,7 @@ namespace saw { namespace schema { // NOLINTBEGIN -template <typename T, string_literal Literal> struct NamedMember {}; +template <typename T, string_literal Literal> struct Member {}; template <typename... T> struct Struct { static_assert( @@ -15,7 +15,7 @@ template <typename... T> struct Struct { }; template <typename... V, string_literal... K> -struct Struct<NamedMember<V, K>...> {}; +struct Struct<Member<V, K>...> {}; template <typename... T> struct Union { static_assert( @@ -24,7 +24,7 @@ template <typename... T> struct Union { }; template <typename... V, string_literal... K> -struct Union<NamedMember<V, K>...> {}; +struct Union<Member<V, K>...> {}; template <typename T> struct Array {}; diff --git a/src/window/window.h b/src/window/window.h index a6baae1..716b25d 100644 --- a/src/window/window.h +++ b/src/window/window.h @@ -12,11 +12,11 @@ namespace saw { namespace schema { using WindowResize = Struct< - NamedMember<UInt32, "width">, - NamedMember<UInt32, "height"> + Member<UInt32, "width">, + Member<UInt32, "height"> >; using WindowEvents = Union< - NamedMember<WindowResize, "resize"> + Member<WindowResize, "resize"> >; } } |