From a5d1c4833e8236ca2e7b321801fb203200d25910 Mon Sep 17 00:00:00 2001 From: Sam Gateau Date: Mon, 3 Dec 2018 00:00:28 -0800 Subject: [PATCH] Exploring varying with names --- libraries/task/src/task/Varying.h | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/libraries/task/src/task/Varying.h b/libraries/task/src/task/Varying.h index 6b076b0b27..7be49006b9 100644 --- a/libraries/task/src/task/Varying.h +++ b/libraries/task/src/task/Varying.h @@ -17,6 +17,15 @@ #include namespace task { +class Varying; + +template Varying varyingGetSub(const T& data, uint8_t index) { + return Varying(); +} + +template uint8_t varyingGetLength(const T& data) { + return 0; +} // A varying piece of data, to be used as Job/Task I/O class Varying { @@ -66,10 +75,11 @@ protected: virtual ~Model() = default; virtual Varying operator[] (uint8_t index) const override { - Varying var; - return var; + return varyingGetSub(_data, index); + } + virtual uint8_t length() const override { + return varyingGetLength(_data); } - virtual uint8_t length() const override { return 0; } Data _data; }; @@ -106,6 +116,12 @@ public: Varying asVarying() const { return Varying((*this)); } }; +template Varying varyingGetSub(const VaryingSet2& dat, uint8_t index) { + return data[index]; +} +template uint8_t varyingGetLength(const VaryingSet2& data) { + return data.length(); +} template class VaryingSet3 : public std::tuple{