Program Listing for File version.h

Return to documentation for file (include/ros2_ouster/client/version.h)

#include <cstdint>
#include <string>

#pragma once

namespace ouster {
  namespace util {

    struct version
    {
      uint16_t major;
      uint16_t minor;
      uint16_t patch;
    };

    const version invalid_version = {0, 0, 0};

    inline bool operator == (const version & u, const version & v) {
      return u.major == v.major && u.minor == v.minor && u.patch == v.patch;
    }

    inline bool operator < (const version & u, const version & v) {
      return (u.major < v.major) || (u.major == v.major && u.minor < v.minor) ||
             (u.major == v.major && u.minor == v.minor && u.patch < v.patch);
    }

    inline bool operator <= (const version & u, const version & v) {
      return u < v || u == v;
    }

    inline bool operator != (const version & u, const version & v) {return !(u == v);}

    inline bool operator >= (const version & u, const version & v) {return !(u < v);}

    inline bool operator > (const version & u, const version & v) {return !(u <= v);}

    std::string to_string(const version & v);

    version version_of_string(const std::string & s);

  } // namespace util
}  // namespace ouster