bwidgets/inc/basic_widgets/core/type/size.hpp

38 lines
713 B
C++

#ifndef BWIDGETS_SIZE_HPP
#define BWIDGETS_SIZE_HPP
#include <basic_widgets/core/type/concepts.hpp>
namespace bwidgets
{
struct Size
{
int w;
int h;
};
[[nodiscard]] inline auto operator+(Size a, Size b) noexcept -> Size
{
return {a.w + b.w, a.h + b.h};
}
[[nodiscard]] inline auto operator-(Size a, Size b) noexcept -> Size
{
return {a.w - b.w, a.h - b.h};
}
template<Numeric N>
[[nodiscard]] inline auto operator*(Size a, N b) noexcept -> Size
{
return {a.w * b, a.h * b};
}
template<Numeric N>
[[nodiscard]] inline auto operator*(N a, Size b) noexcept -> Size
{
return b * a;
}
}
#endif