From f5c90428f833a0af26d20488f230a69e82891673 Mon Sep 17 00:00:00 2001 From: Claudius 'keldu' Holeksa Date: Sun, 1 Sep 2024 15:05:08 +0200 Subject: Fixing deps on modules and adding minor unit logic --- modules/async/.nix/derivation.nix | 1 + modules/codec-unit/.nix/derivation.nix | 1 - modules/codec-unit/c++/unit.hpp | 25 +++++++++++++++++++++++++ modules/codec-unit/c++/unit.tmpl.hpp | 1 + modules/codec-unit/c++/unit_schema.hpp | 16 ++++++++++++++++ modules/codec-unit/c++/unit_transform.hpp | 19 +++++++++++++++++++ 6 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 modules/codec-unit/c++/unit.hpp create mode 100644 modules/codec-unit/c++/unit.tmpl.hpp create mode 100644 modules/codec-unit/c++/unit_schema.hpp create mode 100644 modules/codec-unit/c++/unit_transform.hpp (limited to 'modules') diff --git a/modules/async/.nix/derivation.nix b/modules/async/.nix/derivation.nix index 96bf173..502c816 100644 --- a/modules/async/.nix/derivation.nix +++ b/modules/async/.nix/derivation.nix @@ -23,6 +23,7 @@ in stdenv.mkDerivation { buildInputs = [ forstio.core forstio.codec + forstio.codec-unit ]; doCheck = true; diff --git a/modules/codec-unit/.nix/derivation.nix b/modules/codec-unit/.nix/derivation.nix index a66450e..eaba6bc 100644 --- a/modules/codec-unit/.nix/derivation.nix +++ b/modules/codec-unit/.nix/derivation.nix @@ -22,7 +22,6 @@ in stdenv.mkDerivation { buildInputs = [ forstio.core - forstio.async forstio.codec ]; diff --git a/modules/codec-unit/c++/unit.hpp b/modules/codec-unit/c++/unit.hpp new file mode 100644 index 0000000..986ca8f --- /dev/null +++ b/modules/codec-unit/c++/unit.hpp @@ -0,0 +1,25 @@ +#pragma once + +#include "unit_schema.hpp" +#include "unit_transform.hpp" + +namespace saw { +template +class data, encode::Native> { +public: + using Schema = schema::Unit; +private: + data dat_; +public: + data() = default; + + data(data&& dat__): + dat_{std::move(dat__)} + {} + + data operator+(const data& rhs) const; + data operator-(const data& rhs) const; +}; +} + +#include "unit.tmpl.h" diff --git a/modules/codec-unit/c++/unit.tmpl.hpp b/modules/codec-unit/c++/unit.tmpl.hpp new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/modules/codec-unit/c++/unit.tmpl.hpp @@ -0,0 +1 @@ + diff --git a/modules/codec-unit/c++/unit_schema.hpp b/modules/codec-unit/c++/unit_schema.hpp new file mode 100644 index 0000000..9ad173f --- /dev/null +++ b/modules/codec-unit/c++/unit_schema.hpp @@ -0,0 +1,16 @@ +#pragma once + +#include + +namespace saw { +namespace schema { +template +struct UnitElement {}; + +template +struct Unit {}; + +template +using Scalar = Unit; +} +} diff --git a/modules/codec-unit/c++/unit_transform.hpp b/modules/codec-unit/c++/unit_transform.hpp new file mode 100644 index 0000000..6f40df5 --- /dev/null +++ b/modules/codec-unit/c++/unit_transform.hpp @@ -0,0 +1,19 @@ +#pragma once + +#include +#include "unit_schema.hpp" + +namespace saw { +namespace impl { + +template +class unit_matching; + +template +class unit_redux_list { + static_assert(sizeof...(T) == 0u, "Template type not supported"); + + using reduced_type = unit_redux_list<>; +}; +} +} -- cgit v1.2.3