// ====================================================================== // \title ImplicitEnumAc.cpp // \author Generated by fpp-to-cpp // \brief cpp file for Implicit enum // ====================================================================== #include #include #include "Fw/Types/Assert.hpp" #include "ImplicitEnumAc.hpp" namespace M { // ---------------------------------------------------------------------- // Operators // ---------------------------------------------------------------------- Implicit& Implicit :: operator=(const Implicit& obj) { this->e = obj.e; return *this; } Implicit& Implicit :: operator=(T e1) { this->e = e1; return *this; } #ifdef BUILD_UT std::ostream& operator<<(std::ostream& os, const Implicit& obj) { Fw::String s; obj.toString(s); os << s; return os; } #endif // ---------------------------------------------------------------------- // Member functions // ---------------------------------------------------------------------- bool Implicit :: isValid() const { return ((e >= X) && (e <= Y)); } Fw::SerializeStatus Implicit :: serializeTo( Fw::SerialBufferBase& buffer, Fw::Endianness mode ) const { const Fw::SerializeStatus status = buffer.serializeFrom( static_cast(this->e), mode ); return status; } Fw::SerializeStatus Implicit :: deserializeFrom( Fw::SerialBufferBase& buffer, Fw::Endianness mode ) { SerialType es; Fw::SerializeStatus status = buffer.deserializeTo(es, mode); if (status == Fw::FW_SERIALIZE_OK) { this->e = static_cast(es); if (!this->isValid()) { status = Fw::FW_DESERIALIZE_FORMAT_ERROR; } } return status; } #if FW_SERIALIZABLE_TO_STRING void Implicit :: toString(Fw::StringBase& sb) const { Fw::String s; switch (e) { case X: s = "X"; break; case Y: s = "Y"; break; default: s = "[invalid]"; break; } sb.format("%s (%" PRIi32 ")", s.toChar(), e); } #elif FW_ENABLE_TEXT_LOGGING void Implicit :: toString(Fw::StringBase& sb) const { sb.format("%" PRIi32 "", e); } #endif }