35concept ImageConcept =
requires (T&& obj,
const void* dataPtr, uint n) {
38 RemoveRef<T>(std::string());
39 RemoveRef<T>(dataPtr, n, n);
40 RemoveRef<T>(dataPtr, n, n,
bool());
42 { obj.isNull() } -> std::same_as<bool>;
43 { obj.height() } -> std::same_as<int>;
44 { obj.width() } -> std::same_as<int>;
46 { obj.sizeInBytes() } -> std::same_as<std::size_t>;
50 { obj.data() } -> std::same_as<const unsigned char*>;
52 { obj.save(std::string()) } -> std::same_as<void>;
53 { obj.save(std::string(), uint()) } -> std::same_as<void>;
57 { obj.load(std::string()) } -> std::same_as<bool>;
59 { obj.mirror() } -> std::same_as<void>;
60 { obj.mirror(
bool()) } -> std::same_as<void>;
61 { obj.mirror(
bool(),
bool()) } -> std::same_as<void>;