summaryrefslogtreecommitdiff
path: root/modules/codec-unit/c++/unit.tmpl.hpp
diff options
context:
space:
mode:
authorClaudius 'keldu' Holeksa <mail@keldu.de>2024-09-05 12:51:35 +0200
committerClaudius 'keldu' Holeksa <mail@keldu.de>2024-09-05 12:51:35 +0200
commitf27d397e9ab2d5c020b04dde4361fffa933f103c (patch)
tree624a0890ba2aed0130b5e58f60098d69e4e304fe /modules/codec-unit/c++/unit.tmpl.hpp
parent89c37ae7d84beb08ed99539bee972c241075d45e (diff)
Implemented basic class and operations
Diffstat (limited to 'modules/codec-unit/c++/unit.tmpl.hpp')
-rw-r--r--modules/codec-unit/c++/unit.tmpl.hpp32
1 files changed, 28 insertions, 4 deletions
diff --git a/modules/codec-unit/c++/unit.tmpl.hpp b/modules/codec-unit/c++/unit.tmpl.hpp
index 7412199..08edc4f 100644
--- a/modules/codec-unit/c++/unit.tmpl.hpp
+++ b/modules/codec-unit/c++/unit.tmpl.hpp
@@ -3,17 +3,41 @@ namespace saw {
template<typename BaseSchema, typename... Elements>
data<schema::Unit<BaseSchema, Elements...>, encode::Native>
data<schema::Unit<BaseSchema, Elements...>, encode::Native>::operator+(const
-data<schema::Unit<BaseSchema, Elements...>, encode::Native>& rhs){
+data<schema::Unit<BaseSchema, Elements...>, encode::Native>& rhs) const {
auto add = dat_ + rhs.dat_;
- return {add};
+ return add;
}
template<typename BaseSchema, typename... Elements>
data<schema::Unit<BaseSchema, Elements...>, encode::Native>
data<schema::Unit<BaseSchema, Elements...>, encode::Native>::operator-(const
-data<schema::Unit<BaseSchema, Elements...>, encode::Native>& rhs){
+data<schema::Unit<BaseSchema, Elements...>, encode::Native>& rhs) const {
auto sub = dat_ - rhs.dat_;
- return {sub};
+ return sub;
+}
+
+template<typename BaseSchema, typename... Elements>
+bool
+data<schema::Unit<BaseSchema, Elements...>, encode::Native>::operator==(const data<Schema, encode::Native>& rhs) const {
+ return dat_ == rhs.dat_;
+}
+
+template<typename BaseSchema, typename... Elements>
+template<typename UnitRhs>
+data<typename unit_multiplication<schema::Unit<BaseSchema,Elements...>, UnitRhs>::Schema, encode::Native>
+data<schema::Unit<BaseSchema, Elements...>, encode::Native>::operator*(const
+data<UnitRhs, encode::Native>& rhs) const {
+ auto mult = dat_ * rhs.dat_;
+ return mult;
+}
+
+template<typename BaseSchema, typename... Elements>
+template<typename UnitRhs>
+data<typename unit_division<schema::Unit<BaseSchema,Elements...>, UnitRhs>::Schema, encode::Native>
+data<schema::Unit<BaseSchema, Elements...>, encode::Native>::operator/(const
+data<UnitRhs, encode::Native>& rhs) const {
+ auto div = dat_ / rhs.dat_;
+ return div;
}
}