From fae284be3958719fe1f6b0fe90d4426581cdb2fd Mon Sep 17 00:00:00 2001 From: Nigel Tao Date: Thu, 24 Oct 2024 19:28:35 +1030 Subject: [PATCH] base: re-arrange range and rect types No semantic changes. Just re-sorting the struct definitions to appear in lexicographic order. --- internal/cgen/base/range-public.h | 638 +++++++++++++------------ release/c/wuffs-unsupported-snapshot.c | 638 +++++++++++++------------ 2 files changed, 640 insertions(+), 636 deletions(-) diff --git a/internal/cgen/base/range-public.h b/internal/cgen/base/range-public.h index f0bcea90b..9774e7c2d 100644 --- a/internal/cgen/base/range-public.h +++ b/internal/cgen/base/range-public.h @@ -12,123 +12,6 @@ // See https://github.com/google/wuffs/blob/main/doc/note/ranges-and-rects.md -typedef struct wuffs_base__range_ii_u32__struct { - uint32_t min_incl; - uint32_t max_incl; - -#ifdef __cplusplus - inline bool is_empty() const; - inline bool equals(wuffs_base__range_ii_u32__struct s) const; - inline wuffs_base__range_ii_u32__struct intersect( - wuffs_base__range_ii_u32__struct s) const; - inline wuffs_base__range_ii_u32__struct unite( - wuffs_base__range_ii_u32__struct s) const; - inline bool contains(uint32_t x) const; - inline bool contains_range(wuffs_base__range_ii_u32__struct s) const; -#endif // __cplusplus - -} wuffs_base__range_ii_u32; - -static inline wuffs_base__range_ii_u32 // -wuffs_base__empty_range_ii_u32(void) { - wuffs_base__range_ii_u32 ret; - ret.min_incl = 0; - ret.max_incl = 0; - return ret; -} - -static inline wuffs_base__range_ii_u32 // -wuffs_base__make_range_ii_u32(uint32_t min_incl, uint32_t max_incl) { - wuffs_base__range_ii_u32 ret; - ret.min_incl = min_incl; - ret.max_incl = max_incl; - return ret; -} - -static inline bool // -wuffs_base__range_ii_u32__is_empty(const wuffs_base__range_ii_u32* r) { - return r->min_incl > r->max_incl; -} - -static inline bool // -wuffs_base__range_ii_u32__equals(const wuffs_base__range_ii_u32* r, - wuffs_base__range_ii_u32 s) { - return (r->min_incl == s.min_incl && r->max_incl == s.max_incl) || - (wuffs_base__range_ii_u32__is_empty(r) && - wuffs_base__range_ii_u32__is_empty(&s)); -} - -static inline wuffs_base__range_ii_u32 // -wuffs_base__range_ii_u32__intersect(const wuffs_base__range_ii_u32* r, - wuffs_base__range_ii_u32 s) { - wuffs_base__range_ii_u32 t; - t.min_incl = wuffs_base__u32__max(r->min_incl, s.min_incl); - t.max_incl = wuffs_base__u32__min(r->max_incl, s.max_incl); - return t; -} - -static inline wuffs_base__range_ii_u32 // -wuffs_base__range_ii_u32__unite(const wuffs_base__range_ii_u32* r, - wuffs_base__range_ii_u32 s) { - if (wuffs_base__range_ii_u32__is_empty(r)) { - return s; - } - if (wuffs_base__range_ii_u32__is_empty(&s)) { - return *r; - } - wuffs_base__range_ii_u32 t; - t.min_incl = wuffs_base__u32__min(r->min_incl, s.min_incl); - t.max_incl = wuffs_base__u32__max(r->max_incl, s.max_incl); - return t; -} - -static inline bool // -wuffs_base__range_ii_u32__contains(const wuffs_base__range_ii_u32* r, - uint32_t x) { - return (r->min_incl <= x) && (x <= r->max_incl); -} - -static inline bool // -wuffs_base__range_ii_u32__contains_range(const wuffs_base__range_ii_u32* r, - wuffs_base__range_ii_u32 s) { - return wuffs_base__range_ii_u32__equals( - &s, wuffs_base__range_ii_u32__intersect(r, s)); -} - -#ifdef __cplusplus - -inline bool // -wuffs_base__range_ii_u32::is_empty() const { - return wuffs_base__range_ii_u32__is_empty(this); -} - -inline bool // -wuffs_base__range_ii_u32::equals(wuffs_base__range_ii_u32 s) const { - return wuffs_base__range_ii_u32__equals(this, s); -} - -inline wuffs_base__range_ii_u32 // -wuffs_base__range_ii_u32::intersect(wuffs_base__range_ii_u32 s) const { - return wuffs_base__range_ii_u32__intersect(this, s); -} - -inline wuffs_base__range_ii_u32 // -wuffs_base__range_ii_u32::unite(wuffs_base__range_ii_u32 s) const { - return wuffs_base__range_ii_u32__unite(this, s); -} - -inline bool // -wuffs_base__range_ii_u32::contains(uint32_t x) const { - return wuffs_base__range_ii_u32__contains(this, x); -} - -inline bool // -wuffs_base__range_ii_u32::contains_range(wuffs_base__range_ii_u32 s) const { - return wuffs_base__range_ii_u32__contains_range(this, s); -} - -#endif // __cplusplus - // -------- typedef struct wuffs_base__range_ie_u32__struct { @@ -261,125 +144,6 @@ wuffs_base__range_ie_u32::length() const { // -------- -typedef struct wuffs_base__range_ii_u64__struct { - uint64_t min_incl; - uint64_t max_incl; - -#ifdef __cplusplus - inline bool is_empty() const; - inline bool equals(wuffs_base__range_ii_u64__struct s) const; - inline wuffs_base__range_ii_u64__struct intersect( - wuffs_base__range_ii_u64__struct s) const; - inline wuffs_base__range_ii_u64__struct unite( - wuffs_base__range_ii_u64__struct s) const; - inline bool contains(uint64_t x) const; - inline bool contains_range(wuffs_base__range_ii_u64__struct s) const; -#endif // __cplusplus - -} wuffs_base__range_ii_u64; - -static inline wuffs_base__range_ii_u64 // -wuffs_base__empty_range_ii_u64(void) { - wuffs_base__range_ii_u64 ret; - ret.min_incl = 0; - ret.max_incl = 0; - return ret; -} - -static inline wuffs_base__range_ii_u64 // -wuffs_base__make_range_ii_u64(uint64_t min_incl, uint64_t max_incl) { - wuffs_base__range_ii_u64 ret; - ret.min_incl = min_incl; - ret.max_incl = max_incl; - return ret; -} - -static inline bool // -wuffs_base__range_ii_u64__is_empty(const wuffs_base__range_ii_u64* r) { - return r->min_incl > r->max_incl; -} - -static inline bool // -wuffs_base__range_ii_u64__equals(const wuffs_base__range_ii_u64* r, - wuffs_base__range_ii_u64 s) { - return (r->min_incl == s.min_incl && r->max_incl == s.max_incl) || - (wuffs_base__range_ii_u64__is_empty(r) && - wuffs_base__range_ii_u64__is_empty(&s)); -} - -static inline wuffs_base__range_ii_u64 // -wuffs_base__range_ii_u64__intersect(const wuffs_base__range_ii_u64* r, - wuffs_base__range_ii_u64 s) { - wuffs_base__range_ii_u64 t; - t.min_incl = wuffs_base__u64__max(r->min_incl, s.min_incl); - t.max_incl = wuffs_base__u64__min(r->max_incl, s.max_incl); - return t; -} - -static inline wuffs_base__range_ii_u64 // -wuffs_base__range_ii_u64__unite(const wuffs_base__range_ii_u64* r, - wuffs_base__range_ii_u64 s) { - if (wuffs_base__range_ii_u64__is_empty(r)) { - return s; - } - if (wuffs_base__range_ii_u64__is_empty(&s)) { - return *r; - } - wuffs_base__range_ii_u64 t; - t.min_incl = wuffs_base__u64__min(r->min_incl, s.min_incl); - t.max_incl = wuffs_base__u64__max(r->max_incl, s.max_incl); - return t; -} - -static inline bool // -wuffs_base__range_ii_u64__contains(const wuffs_base__range_ii_u64* r, - uint64_t x) { - return (r->min_incl <= x) && (x <= r->max_incl); -} - -static inline bool // -wuffs_base__range_ii_u64__contains_range(const wuffs_base__range_ii_u64* r, - wuffs_base__range_ii_u64 s) { - return wuffs_base__range_ii_u64__equals( - &s, wuffs_base__range_ii_u64__intersect(r, s)); -} - -#ifdef __cplusplus - -inline bool // -wuffs_base__range_ii_u64::is_empty() const { - return wuffs_base__range_ii_u64__is_empty(this); -} - -inline bool // -wuffs_base__range_ii_u64::equals(wuffs_base__range_ii_u64 s) const { - return wuffs_base__range_ii_u64__equals(this, s); -} - -inline wuffs_base__range_ii_u64 // -wuffs_base__range_ii_u64::intersect(wuffs_base__range_ii_u64 s) const { - return wuffs_base__range_ii_u64__intersect(this, s); -} - -inline wuffs_base__range_ii_u64 // -wuffs_base__range_ii_u64::unite(wuffs_base__range_ii_u64 s) const { - return wuffs_base__range_ii_u64__unite(this, s); -} - -inline bool // -wuffs_base__range_ii_u64::contains(uint64_t x) const { - return wuffs_base__range_ii_u64__contains(this, x); -} - -inline bool // -wuffs_base__range_ii_u64::contains_range(wuffs_base__range_ii_u64 s) const { - return wuffs_base__range_ii_u64__contains_range(this, s); -} - -#endif // __cplusplus - -// -------- - typedef struct wuffs_base__range_ie_u64__struct { uint64_t min_incl; uint64_t max_excl; @@ -510,135 +274,238 @@ wuffs_base__range_ie_u64::length() const { // -------- -typedef struct wuffs_base__rect_ii_u32__struct { - uint32_t min_incl_x; - uint32_t min_incl_y; - uint32_t max_incl_x; - uint32_t max_incl_y; +typedef struct wuffs_base__range_ii_u32__struct { + uint32_t min_incl; + uint32_t max_incl; #ifdef __cplusplus inline bool is_empty() const; - inline bool equals(wuffs_base__rect_ii_u32__struct s) const; - inline wuffs_base__rect_ii_u32__struct intersect( - wuffs_base__rect_ii_u32__struct s) const; - inline wuffs_base__rect_ii_u32__struct unite( - wuffs_base__rect_ii_u32__struct s) const; - inline bool contains(uint32_t x, uint32_t y) const; - inline bool contains_rect(wuffs_base__rect_ii_u32__struct s) const; -#endif // __cplusplus - -} wuffs_base__rect_ii_u32; - -static inline wuffs_base__rect_ii_u32 // -wuffs_base__empty_rect_ii_u32(void) { - wuffs_base__rect_ii_u32 ret; - ret.min_incl_x = 0; - ret.min_incl_y = 0; - ret.max_incl_x = 0; - ret.max_incl_y = 0; + inline bool equals(wuffs_base__range_ii_u32__struct s) const; + inline wuffs_base__range_ii_u32__struct intersect( + wuffs_base__range_ii_u32__struct s) const; + inline wuffs_base__range_ii_u32__struct unite( + wuffs_base__range_ii_u32__struct s) const; + inline bool contains(uint32_t x) const; + inline bool contains_range(wuffs_base__range_ii_u32__struct s) const; +#endif // __cplusplus + +} wuffs_base__range_ii_u32; + +static inline wuffs_base__range_ii_u32 // +wuffs_base__empty_range_ii_u32(void) { + wuffs_base__range_ii_u32 ret; + ret.min_incl = 0; + ret.max_incl = 0; return ret; } -static inline wuffs_base__rect_ii_u32 // -wuffs_base__make_rect_ii_u32(uint32_t min_incl_x, - uint32_t min_incl_y, - uint32_t max_incl_x, - uint32_t max_incl_y) { - wuffs_base__rect_ii_u32 ret; - ret.min_incl_x = min_incl_x; - ret.min_incl_y = min_incl_y; - ret.max_incl_x = max_incl_x; - ret.max_incl_y = max_incl_y; +static inline wuffs_base__range_ii_u32 // +wuffs_base__make_range_ii_u32(uint32_t min_incl, uint32_t max_incl) { + wuffs_base__range_ii_u32 ret; + ret.min_incl = min_incl; + ret.max_incl = max_incl; return ret; } static inline bool // -wuffs_base__rect_ii_u32__is_empty(const wuffs_base__rect_ii_u32* r) { - return (r->min_incl_x > r->max_incl_x) || (r->min_incl_y > r->max_incl_y); +wuffs_base__range_ii_u32__is_empty(const wuffs_base__range_ii_u32* r) { + return r->min_incl > r->max_incl; } static inline bool // -wuffs_base__rect_ii_u32__equals(const wuffs_base__rect_ii_u32* r, - wuffs_base__rect_ii_u32 s) { - return (r->min_incl_x == s.min_incl_x && r->min_incl_y == s.min_incl_y && - r->max_incl_x == s.max_incl_x && r->max_incl_y == s.max_incl_y) || - (wuffs_base__rect_ii_u32__is_empty(r) && - wuffs_base__rect_ii_u32__is_empty(&s)); +wuffs_base__range_ii_u32__equals(const wuffs_base__range_ii_u32* r, + wuffs_base__range_ii_u32 s) { + return (r->min_incl == s.min_incl && r->max_incl == s.max_incl) || + (wuffs_base__range_ii_u32__is_empty(r) && + wuffs_base__range_ii_u32__is_empty(&s)); } -static inline wuffs_base__rect_ii_u32 // -wuffs_base__rect_ii_u32__intersect(const wuffs_base__rect_ii_u32* r, - wuffs_base__rect_ii_u32 s) { - wuffs_base__rect_ii_u32 t; - t.min_incl_x = wuffs_base__u32__max(r->min_incl_x, s.min_incl_x); - t.min_incl_y = wuffs_base__u32__max(r->min_incl_y, s.min_incl_y); - t.max_incl_x = wuffs_base__u32__min(r->max_incl_x, s.max_incl_x); - t.max_incl_y = wuffs_base__u32__min(r->max_incl_y, s.max_incl_y); +static inline wuffs_base__range_ii_u32 // +wuffs_base__range_ii_u32__intersect(const wuffs_base__range_ii_u32* r, + wuffs_base__range_ii_u32 s) { + wuffs_base__range_ii_u32 t; + t.min_incl = wuffs_base__u32__max(r->min_incl, s.min_incl); + t.max_incl = wuffs_base__u32__min(r->max_incl, s.max_incl); return t; } -static inline wuffs_base__rect_ii_u32 // -wuffs_base__rect_ii_u32__unite(const wuffs_base__rect_ii_u32* r, - wuffs_base__rect_ii_u32 s) { - if (wuffs_base__rect_ii_u32__is_empty(r)) { +static inline wuffs_base__range_ii_u32 // +wuffs_base__range_ii_u32__unite(const wuffs_base__range_ii_u32* r, + wuffs_base__range_ii_u32 s) { + if (wuffs_base__range_ii_u32__is_empty(r)) { return s; } - if (wuffs_base__rect_ii_u32__is_empty(&s)) { + if (wuffs_base__range_ii_u32__is_empty(&s)) { return *r; } - wuffs_base__rect_ii_u32 t; - t.min_incl_x = wuffs_base__u32__min(r->min_incl_x, s.min_incl_x); - t.min_incl_y = wuffs_base__u32__min(r->min_incl_y, s.min_incl_y); - t.max_incl_x = wuffs_base__u32__max(r->max_incl_x, s.max_incl_x); - t.max_incl_y = wuffs_base__u32__max(r->max_incl_y, s.max_incl_y); + wuffs_base__range_ii_u32 t; + t.min_incl = wuffs_base__u32__min(r->min_incl, s.min_incl); + t.max_incl = wuffs_base__u32__max(r->max_incl, s.max_incl); return t; } static inline bool // -wuffs_base__rect_ii_u32__contains(const wuffs_base__rect_ii_u32* r, - uint32_t x, - uint32_t y) { - return (r->min_incl_x <= x) && (x <= r->max_incl_x) && (r->min_incl_y <= y) && - (y <= r->max_incl_y); +wuffs_base__range_ii_u32__contains(const wuffs_base__range_ii_u32* r, + uint32_t x) { + return (r->min_incl <= x) && (x <= r->max_incl); } static inline bool // -wuffs_base__rect_ii_u32__contains_rect(const wuffs_base__rect_ii_u32* r, - wuffs_base__rect_ii_u32 s) { - return wuffs_base__rect_ii_u32__equals( - &s, wuffs_base__rect_ii_u32__intersect(r, s)); +wuffs_base__range_ii_u32__contains_range(const wuffs_base__range_ii_u32* r, + wuffs_base__range_ii_u32 s) { + return wuffs_base__range_ii_u32__equals( + &s, wuffs_base__range_ii_u32__intersect(r, s)); } #ifdef __cplusplus inline bool // -wuffs_base__rect_ii_u32::is_empty() const { - return wuffs_base__rect_ii_u32__is_empty(this); +wuffs_base__range_ii_u32::is_empty() const { + return wuffs_base__range_ii_u32__is_empty(this); } inline bool // -wuffs_base__rect_ii_u32::equals(wuffs_base__rect_ii_u32 s) const { - return wuffs_base__rect_ii_u32__equals(this, s); +wuffs_base__range_ii_u32::equals(wuffs_base__range_ii_u32 s) const { + return wuffs_base__range_ii_u32__equals(this, s); } -inline wuffs_base__rect_ii_u32 // -wuffs_base__rect_ii_u32::intersect(wuffs_base__rect_ii_u32 s) const { - return wuffs_base__rect_ii_u32__intersect(this, s); +inline wuffs_base__range_ii_u32 // +wuffs_base__range_ii_u32::intersect(wuffs_base__range_ii_u32 s) const { + return wuffs_base__range_ii_u32__intersect(this, s); } -inline wuffs_base__rect_ii_u32 // -wuffs_base__rect_ii_u32::unite(wuffs_base__rect_ii_u32 s) const { - return wuffs_base__rect_ii_u32__unite(this, s); +inline wuffs_base__range_ii_u32 // +wuffs_base__range_ii_u32::unite(wuffs_base__range_ii_u32 s) const { + return wuffs_base__range_ii_u32__unite(this, s); } inline bool // -wuffs_base__rect_ii_u32::contains(uint32_t x, uint32_t y) const { - return wuffs_base__rect_ii_u32__contains(this, x, y); +wuffs_base__range_ii_u32::contains(uint32_t x) const { + return wuffs_base__range_ii_u32__contains(this, x); } inline bool // -wuffs_base__rect_ii_u32::contains_rect(wuffs_base__rect_ii_u32 s) const { - return wuffs_base__rect_ii_u32__contains_rect(this, s); +wuffs_base__range_ii_u32::contains_range(wuffs_base__range_ii_u32 s) const { + return wuffs_base__range_ii_u32__contains_range(this, s); +} + +#endif // __cplusplus + +// -------- + +typedef struct wuffs_base__range_ii_u64__struct { + uint64_t min_incl; + uint64_t max_incl; + +#ifdef __cplusplus + inline bool is_empty() const; + inline bool equals(wuffs_base__range_ii_u64__struct s) const; + inline wuffs_base__range_ii_u64__struct intersect( + wuffs_base__range_ii_u64__struct s) const; + inline wuffs_base__range_ii_u64__struct unite( + wuffs_base__range_ii_u64__struct s) const; + inline bool contains(uint64_t x) const; + inline bool contains_range(wuffs_base__range_ii_u64__struct s) const; +#endif // __cplusplus + +} wuffs_base__range_ii_u64; + +static inline wuffs_base__range_ii_u64 // +wuffs_base__empty_range_ii_u64(void) { + wuffs_base__range_ii_u64 ret; + ret.min_incl = 0; + ret.max_incl = 0; + return ret; +} + +static inline wuffs_base__range_ii_u64 // +wuffs_base__make_range_ii_u64(uint64_t min_incl, uint64_t max_incl) { + wuffs_base__range_ii_u64 ret; + ret.min_incl = min_incl; + ret.max_incl = max_incl; + return ret; +} + +static inline bool // +wuffs_base__range_ii_u64__is_empty(const wuffs_base__range_ii_u64* r) { + return r->min_incl > r->max_incl; +} + +static inline bool // +wuffs_base__range_ii_u64__equals(const wuffs_base__range_ii_u64* r, + wuffs_base__range_ii_u64 s) { + return (r->min_incl == s.min_incl && r->max_incl == s.max_incl) || + (wuffs_base__range_ii_u64__is_empty(r) && + wuffs_base__range_ii_u64__is_empty(&s)); +} + +static inline wuffs_base__range_ii_u64 // +wuffs_base__range_ii_u64__intersect(const wuffs_base__range_ii_u64* r, + wuffs_base__range_ii_u64 s) { + wuffs_base__range_ii_u64 t; + t.min_incl = wuffs_base__u64__max(r->min_incl, s.min_incl); + t.max_incl = wuffs_base__u64__min(r->max_incl, s.max_incl); + return t; +} + +static inline wuffs_base__range_ii_u64 // +wuffs_base__range_ii_u64__unite(const wuffs_base__range_ii_u64* r, + wuffs_base__range_ii_u64 s) { + if (wuffs_base__range_ii_u64__is_empty(r)) { + return s; + } + if (wuffs_base__range_ii_u64__is_empty(&s)) { + return *r; + } + wuffs_base__range_ii_u64 t; + t.min_incl = wuffs_base__u64__min(r->min_incl, s.min_incl); + t.max_incl = wuffs_base__u64__max(r->max_incl, s.max_incl); + return t; +} + +static inline bool // +wuffs_base__range_ii_u64__contains(const wuffs_base__range_ii_u64* r, + uint64_t x) { + return (r->min_incl <= x) && (x <= r->max_incl); +} + +static inline bool // +wuffs_base__range_ii_u64__contains_range(const wuffs_base__range_ii_u64* r, + wuffs_base__range_ii_u64 s) { + return wuffs_base__range_ii_u64__equals( + &s, wuffs_base__range_ii_u64__intersect(r, s)); +} + +#ifdef __cplusplus + +inline bool // +wuffs_base__range_ii_u64::is_empty() const { + return wuffs_base__range_ii_u64__is_empty(this); +} + +inline bool // +wuffs_base__range_ii_u64::equals(wuffs_base__range_ii_u64 s) const { + return wuffs_base__range_ii_u64__equals(this, s); +} + +inline wuffs_base__range_ii_u64 // +wuffs_base__range_ii_u64::intersect(wuffs_base__range_ii_u64 s) const { + return wuffs_base__range_ii_u64__intersect(this, s); +} + +inline wuffs_base__range_ii_u64 // +wuffs_base__range_ii_u64::unite(wuffs_base__range_ii_u64 s) const { + return wuffs_base__range_ii_u64__unite(this, s); +} + +inline bool // +wuffs_base__range_ii_u64::contains(uint64_t x) const { + return wuffs_base__range_ii_u64__contains(this, x); +} + +inline bool // +wuffs_base__range_ii_u64::contains_range(wuffs_base__range_ii_u64 s) const { + return wuffs_base__range_ii_u64__contains_range(this, s); } #endif // __cplusplus @@ -800,6 +667,141 @@ wuffs_base__rect_ie_u32::height() const { #endif // __cplusplus +// -------- + +typedef struct wuffs_base__rect_ii_u32__struct { + uint32_t min_incl_x; + uint32_t min_incl_y; + uint32_t max_incl_x; + uint32_t max_incl_y; + +#ifdef __cplusplus + inline bool is_empty() const; + inline bool equals(wuffs_base__rect_ii_u32__struct s) const; + inline wuffs_base__rect_ii_u32__struct intersect( + wuffs_base__rect_ii_u32__struct s) const; + inline wuffs_base__rect_ii_u32__struct unite( + wuffs_base__rect_ii_u32__struct s) const; + inline bool contains(uint32_t x, uint32_t y) const; + inline bool contains_rect(wuffs_base__rect_ii_u32__struct s) const; +#endif // __cplusplus + +} wuffs_base__rect_ii_u32; + +static inline wuffs_base__rect_ii_u32 // +wuffs_base__empty_rect_ii_u32(void) { + wuffs_base__rect_ii_u32 ret; + ret.min_incl_x = 0; + ret.min_incl_y = 0; + ret.max_incl_x = 0; + ret.max_incl_y = 0; + return ret; +} + +static inline wuffs_base__rect_ii_u32 // +wuffs_base__make_rect_ii_u32(uint32_t min_incl_x, + uint32_t min_incl_y, + uint32_t max_incl_x, + uint32_t max_incl_y) { + wuffs_base__rect_ii_u32 ret; + ret.min_incl_x = min_incl_x; + ret.min_incl_y = min_incl_y; + ret.max_incl_x = max_incl_x; + ret.max_incl_y = max_incl_y; + return ret; +} + +static inline bool // +wuffs_base__rect_ii_u32__is_empty(const wuffs_base__rect_ii_u32* r) { + return (r->min_incl_x > r->max_incl_x) || (r->min_incl_y > r->max_incl_y); +} + +static inline bool // +wuffs_base__rect_ii_u32__equals(const wuffs_base__rect_ii_u32* r, + wuffs_base__rect_ii_u32 s) { + return (r->min_incl_x == s.min_incl_x && r->min_incl_y == s.min_incl_y && + r->max_incl_x == s.max_incl_x && r->max_incl_y == s.max_incl_y) || + (wuffs_base__rect_ii_u32__is_empty(r) && + wuffs_base__rect_ii_u32__is_empty(&s)); +} + +static inline wuffs_base__rect_ii_u32 // +wuffs_base__rect_ii_u32__intersect(const wuffs_base__rect_ii_u32* r, + wuffs_base__rect_ii_u32 s) { + wuffs_base__rect_ii_u32 t; + t.min_incl_x = wuffs_base__u32__max(r->min_incl_x, s.min_incl_x); + t.min_incl_y = wuffs_base__u32__max(r->min_incl_y, s.min_incl_y); + t.max_incl_x = wuffs_base__u32__min(r->max_incl_x, s.max_incl_x); + t.max_incl_y = wuffs_base__u32__min(r->max_incl_y, s.max_incl_y); + return t; +} + +static inline wuffs_base__rect_ii_u32 // +wuffs_base__rect_ii_u32__unite(const wuffs_base__rect_ii_u32* r, + wuffs_base__rect_ii_u32 s) { + if (wuffs_base__rect_ii_u32__is_empty(r)) { + return s; + } + if (wuffs_base__rect_ii_u32__is_empty(&s)) { + return *r; + } + wuffs_base__rect_ii_u32 t; + t.min_incl_x = wuffs_base__u32__min(r->min_incl_x, s.min_incl_x); + t.min_incl_y = wuffs_base__u32__min(r->min_incl_y, s.min_incl_y); + t.max_incl_x = wuffs_base__u32__max(r->max_incl_x, s.max_incl_x); + t.max_incl_y = wuffs_base__u32__max(r->max_incl_y, s.max_incl_y); + return t; +} + +static inline bool // +wuffs_base__rect_ii_u32__contains(const wuffs_base__rect_ii_u32* r, + uint32_t x, + uint32_t y) { + return (r->min_incl_x <= x) && (x <= r->max_incl_x) && (r->min_incl_y <= y) && + (y <= r->max_incl_y); +} + +static inline bool // +wuffs_base__rect_ii_u32__contains_rect(const wuffs_base__rect_ii_u32* r, + wuffs_base__rect_ii_u32 s) { + return wuffs_base__rect_ii_u32__equals( + &s, wuffs_base__rect_ii_u32__intersect(r, s)); +} + +#ifdef __cplusplus + +inline bool // +wuffs_base__rect_ii_u32::is_empty() const { + return wuffs_base__rect_ii_u32__is_empty(this); +} + +inline bool // +wuffs_base__rect_ii_u32::equals(wuffs_base__rect_ii_u32 s) const { + return wuffs_base__rect_ii_u32__equals(this, s); +} + +inline wuffs_base__rect_ii_u32 // +wuffs_base__rect_ii_u32::intersect(wuffs_base__rect_ii_u32 s) const { + return wuffs_base__rect_ii_u32__intersect(this, s); +} + +inline wuffs_base__rect_ii_u32 // +wuffs_base__rect_ii_u32::unite(wuffs_base__rect_ii_u32 s) const { + return wuffs_base__rect_ii_u32__unite(this, s); +} + +inline bool // +wuffs_base__rect_ii_u32::contains(uint32_t x, uint32_t y) const { + return wuffs_base__rect_ii_u32__contains(this, x, y); +} + +inline bool // +wuffs_base__rect_ii_u32::contains_rect(wuffs_base__rect_ii_u32 s) const { + return wuffs_base__rect_ii_u32__contains_rect(this, s); +} + +#endif // __cplusplus + // ---------------- More Information // wuffs_base__more_information holds additional fields, typically when a Wuffs diff --git a/release/c/wuffs-unsupported-snapshot.c b/release/c/wuffs-unsupported-snapshot.c index 3755bfb20..fbc78a973 100644 --- a/release/c/wuffs-unsupported-snapshot.c +++ b/release/c/wuffs-unsupported-snapshot.c @@ -2060,123 +2060,6 @@ wuffs_base__magic_number_guess_fourcc(wuffs_base__slice_u8 prefix_data, // See https://github.com/google/wuffs/blob/main/doc/note/ranges-and-rects.md -typedef struct wuffs_base__range_ii_u32__struct { - uint32_t min_incl; - uint32_t max_incl; - -#ifdef __cplusplus - inline bool is_empty() const; - inline bool equals(wuffs_base__range_ii_u32__struct s) const; - inline wuffs_base__range_ii_u32__struct intersect( - wuffs_base__range_ii_u32__struct s) const; - inline wuffs_base__range_ii_u32__struct unite( - wuffs_base__range_ii_u32__struct s) const; - inline bool contains(uint32_t x) const; - inline bool contains_range(wuffs_base__range_ii_u32__struct s) const; -#endif // __cplusplus - -} wuffs_base__range_ii_u32; - -static inline wuffs_base__range_ii_u32 // -wuffs_base__empty_range_ii_u32(void) { - wuffs_base__range_ii_u32 ret; - ret.min_incl = 0; - ret.max_incl = 0; - return ret; -} - -static inline wuffs_base__range_ii_u32 // -wuffs_base__make_range_ii_u32(uint32_t min_incl, uint32_t max_incl) { - wuffs_base__range_ii_u32 ret; - ret.min_incl = min_incl; - ret.max_incl = max_incl; - return ret; -} - -static inline bool // -wuffs_base__range_ii_u32__is_empty(const wuffs_base__range_ii_u32* r) { - return r->min_incl > r->max_incl; -} - -static inline bool // -wuffs_base__range_ii_u32__equals(const wuffs_base__range_ii_u32* r, - wuffs_base__range_ii_u32 s) { - return (r->min_incl == s.min_incl && r->max_incl == s.max_incl) || - (wuffs_base__range_ii_u32__is_empty(r) && - wuffs_base__range_ii_u32__is_empty(&s)); -} - -static inline wuffs_base__range_ii_u32 // -wuffs_base__range_ii_u32__intersect(const wuffs_base__range_ii_u32* r, - wuffs_base__range_ii_u32 s) { - wuffs_base__range_ii_u32 t; - t.min_incl = wuffs_base__u32__max(r->min_incl, s.min_incl); - t.max_incl = wuffs_base__u32__min(r->max_incl, s.max_incl); - return t; -} - -static inline wuffs_base__range_ii_u32 // -wuffs_base__range_ii_u32__unite(const wuffs_base__range_ii_u32* r, - wuffs_base__range_ii_u32 s) { - if (wuffs_base__range_ii_u32__is_empty(r)) { - return s; - } - if (wuffs_base__range_ii_u32__is_empty(&s)) { - return *r; - } - wuffs_base__range_ii_u32 t; - t.min_incl = wuffs_base__u32__min(r->min_incl, s.min_incl); - t.max_incl = wuffs_base__u32__max(r->max_incl, s.max_incl); - return t; -} - -static inline bool // -wuffs_base__range_ii_u32__contains(const wuffs_base__range_ii_u32* r, - uint32_t x) { - return (r->min_incl <= x) && (x <= r->max_incl); -} - -static inline bool // -wuffs_base__range_ii_u32__contains_range(const wuffs_base__range_ii_u32* r, - wuffs_base__range_ii_u32 s) { - return wuffs_base__range_ii_u32__equals( - &s, wuffs_base__range_ii_u32__intersect(r, s)); -} - -#ifdef __cplusplus - -inline bool // -wuffs_base__range_ii_u32::is_empty() const { - return wuffs_base__range_ii_u32__is_empty(this); -} - -inline bool // -wuffs_base__range_ii_u32::equals(wuffs_base__range_ii_u32 s) const { - return wuffs_base__range_ii_u32__equals(this, s); -} - -inline wuffs_base__range_ii_u32 // -wuffs_base__range_ii_u32::intersect(wuffs_base__range_ii_u32 s) const { - return wuffs_base__range_ii_u32__intersect(this, s); -} - -inline wuffs_base__range_ii_u32 // -wuffs_base__range_ii_u32::unite(wuffs_base__range_ii_u32 s) const { - return wuffs_base__range_ii_u32__unite(this, s); -} - -inline bool // -wuffs_base__range_ii_u32::contains(uint32_t x) const { - return wuffs_base__range_ii_u32__contains(this, x); -} - -inline bool // -wuffs_base__range_ii_u32::contains_range(wuffs_base__range_ii_u32 s) const { - return wuffs_base__range_ii_u32__contains_range(this, s); -} - -#endif // __cplusplus - // -------- typedef struct wuffs_base__range_ie_u32__struct { @@ -2309,125 +2192,6 @@ wuffs_base__range_ie_u32::length() const { // -------- -typedef struct wuffs_base__range_ii_u64__struct { - uint64_t min_incl; - uint64_t max_incl; - -#ifdef __cplusplus - inline bool is_empty() const; - inline bool equals(wuffs_base__range_ii_u64__struct s) const; - inline wuffs_base__range_ii_u64__struct intersect( - wuffs_base__range_ii_u64__struct s) const; - inline wuffs_base__range_ii_u64__struct unite( - wuffs_base__range_ii_u64__struct s) const; - inline bool contains(uint64_t x) const; - inline bool contains_range(wuffs_base__range_ii_u64__struct s) const; -#endif // __cplusplus - -} wuffs_base__range_ii_u64; - -static inline wuffs_base__range_ii_u64 // -wuffs_base__empty_range_ii_u64(void) { - wuffs_base__range_ii_u64 ret; - ret.min_incl = 0; - ret.max_incl = 0; - return ret; -} - -static inline wuffs_base__range_ii_u64 // -wuffs_base__make_range_ii_u64(uint64_t min_incl, uint64_t max_incl) { - wuffs_base__range_ii_u64 ret; - ret.min_incl = min_incl; - ret.max_incl = max_incl; - return ret; -} - -static inline bool // -wuffs_base__range_ii_u64__is_empty(const wuffs_base__range_ii_u64* r) { - return r->min_incl > r->max_incl; -} - -static inline bool // -wuffs_base__range_ii_u64__equals(const wuffs_base__range_ii_u64* r, - wuffs_base__range_ii_u64 s) { - return (r->min_incl == s.min_incl && r->max_incl == s.max_incl) || - (wuffs_base__range_ii_u64__is_empty(r) && - wuffs_base__range_ii_u64__is_empty(&s)); -} - -static inline wuffs_base__range_ii_u64 // -wuffs_base__range_ii_u64__intersect(const wuffs_base__range_ii_u64* r, - wuffs_base__range_ii_u64 s) { - wuffs_base__range_ii_u64 t; - t.min_incl = wuffs_base__u64__max(r->min_incl, s.min_incl); - t.max_incl = wuffs_base__u64__min(r->max_incl, s.max_incl); - return t; -} - -static inline wuffs_base__range_ii_u64 // -wuffs_base__range_ii_u64__unite(const wuffs_base__range_ii_u64* r, - wuffs_base__range_ii_u64 s) { - if (wuffs_base__range_ii_u64__is_empty(r)) { - return s; - } - if (wuffs_base__range_ii_u64__is_empty(&s)) { - return *r; - } - wuffs_base__range_ii_u64 t; - t.min_incl = wuffs_base__u64__min(r->min_incl, s.min_incl); - t.max_incl = wuffs_base__u64__max(r->max_incl, s.max_incl); - return t; -} - -static inline bool // -wuffs_base__range_ii_u64__contains(const wuffs_base__range_ii_u64* r, - uint64_t x) { - return (r->min_incl <= x) && (x <= r->max_incl); -} - -static inline bool // -wuffs_base__range_ii_u64__contains_range(const wuffs_base__range_ii_u64* r, - wuffs_base__range_ii_u64 s) { - return wuffs_base__range_ii_u64__equals( - &s, wuffs_base__range_ii_u64__intersect(r, s)); -} - -#ifdef __cplusplus - -inline bool // -wuffs_base__range_ii_u64::is_empty() const { - return wuffs_base__range_ii_u64__is_empty(this); -} - -inline bool // -wuffs_base__range_ii_u64::equals(wuffs_base__range_ii_u64 s) const { - return wuffs_base__range_ii_u64__equals(this, s); -} - -inline wuffs_base__range_ii_u64 // -wuffs_base__range_ii_u64::intersect(wuffs_base__range_ii_u64 s) const { - return wuffs_base__range_ii_u64__intersect(this, s); -} - -inline wuffs_base__range_ii_u64 // -wuffs_base__range_ii_u64::unite(wuffs_base__range_ii_u64 s) const { - return wuffs_base__range_ii_u64__unite(this, s); -} - -inline bool // -wuffs_base__range_ii_u64::contains(uint64_t x) const { - return wuffs_base__range_ii_u64__contains(this, x); -} - -inline bool // -wuffs_base__range_ii_u64::contains_range(wuffs_base__range_ii_u64 s) const { - return wuffs_base__range_ii_u64__contains_range(this, s); -} - -#endif // __cplusplus - -// -------- - typedef struct wuffs_base__range_ie_u64__struct { uint64_t min_incl; uint64_t max_excl; @@ -2558,135 +2322,238 @@ wuffs_base__range_ie_u64::length() const { // -------- -typedef struct wuffs_base__rect_ii_u32__struct { - uint32_t min_incl_x; - uint32_t min_incl_y; - uint32_t max_incl_x; - uint32_t max_incl_y; +typedef struct wuffs_base__range_ii_u32__struct { + uint32_t min_incl; + uint32_t max_incl; #ifdef __cplusplus inline bool is_empty() const; - inline bool equals(wuffs_base__rect_ii_u32__struct s) const; - inline wuffs_base__rect_ii_u32__struct intersect( - wuffs_base__rect_ii_u32__struct s) const; - inline wuffs_base__rect_ii_u32__struct unite( - wuffs_base__rect_ii_u32__struct s) const; - inline bool contains(uint32_t x, uint32_t y) const; - inline bool contains_rect(wuffs_base__rect_ii_u32__struct s) const; -#endif // __cplusplus - -} wuffs_base__rect_ii_u32; - -static inline wuffs_base__rect_ii_u32 // -wuffs_base__empty_rect_ii_u32(void) { - wuffs_base__rect_ii_u32 ret; - ret.min_incl_x = 0; - ret.min_incl_y = 0; - ret.max_incl_x = 0; - ret.max_incl_y = 0; + inline bool equals(wuffs_base__range_ii_u32__struct s) const; + inline wuffs_base__range_ii_u32__struct intersect( + wuffs_base__range_ii_u32__struct s) const; + inline wuffs_base__range_ii_u32__struct unite( + wuffs_base__range_ii_u32__struct s) const; + inline bool contains(uint32_t x) const; + inline bool contains_range(wuffs_base__range_ii_u32__struct s) const; +#endif // __cplusplus + +} wuffs_base__range_ii_u32; + +static inline wuffs_base__range_ii_u32 // +wuffs_base__empty_range_ii_u32(void) { + wuffs_base__range_ii_u32 ret; + ret.min_incl = 0; + ret.max_incl = 0; return ret; } -static inline wuffs_base__rect_ii_u32 // -wuffs_base__make_rect_ii_u32(uint32_t min_incl_x, - uint32_t min_incl_y, - uint32_t max_incl_x, - uint32_t max_incl_y) { - wuffs_base__rect_ii_u32 ret; - ret.min_incl_x = min_incl_x; - ret.min_incl_y = min_incl_y; - ret.max_incl_x = max_incl_x; - ret.max_incl_y = max_incl_y; +static inline wuffs_base__range_ii_u32 // +wuffs_base__make_range_ii_u32(uint32_t min_incl, uint32_t max_incl) { + wuffs_base__range_ii_u32 ret; + ret.min_incl = min_incl; + ret.max_incl = max_incl; return ret; } static inline bool // -wuffs_base__rect_ii_u32__is_empty(const wuffs_base__rect_ii_u32* r) { - return (r->min_incl_x > r->max_incl_x) || (r->min_incl_y > r->max_incl_y); +wuffs_base__range_ii_u32__is_empty(const wuffs_base__range_ii_u32* r) { + return r->min_incl > r->max_incl; } static inline bool // -wuffs_base__rect_ii_u32__equals(const wuffs_base__rect_ii_u32* r, - wuffs_base__rect_ii_u32 s) { - return (r->min_incl_x == s.min_incl_x && r->min_incl_y == s.min_incl_y && - r->max_incl_x == s.max_incl_x && r->max_incl_y == s.max_incl_y) || - (wuffs_base__rect_ii_u32__is_empty(r) && - wuffs_base__rect_ii_u32__is_empty(&s)); +wuffs_base__range_ii_u32__equals(const wuffs_base__range_ii_u32* r, + wuffs_base__range_ii_u32 s) { + return (r->min_incl == s.min_incl && r->max_incl == s.max_incl) || + (wuffs_base__range_ii_u32__is_empty(r) && + wuffs_base__range_ii_u32__is_empty(&s)); } -static inline wuffs_base__rect_ii_u32 // -wuffs_base__rect_ii_u32__intersect(const wuffs_base__rect_ii_u32* r, - wuffs_base__rect_ii_u32 s) { - wuffs_base__rect_ii_u32 t; - t.min_incl_x = wuffs_base__u32__max(r->min_incl_x, s.min_incl_x); - t.min_incl_y = wuffs_base__u32__max(r->min_incl_y, s.min_incl_y); - t.max_incl_x = wuffs_base__u32__min(r->max_incl_x, s.max_incl_x); - t.max_incl_y = wuffs_base__u32__min(r->max_incl_y, s.max_incl_y); +static inline wuffs_base__range_ii_u32 // +wuffs_base__range_ii_u32__intersect(const wuffs_base__range_ii_u32* r, + wuffs_base__range_ii_u32 s) { + wuffs_base__range_ii_u32 t; + t.min_incl = wuffs_base__u32__max(r->min_incl, s.min_incl); + t.max_incl = wuffs_base__u32__min(r->max_incl, s.max_incl); return t; } -static inline wuffs_base__rect_ii_u32 // -wuffs_base__rect_ii_u32__unite(const wuffs_base__rect_ii_u32* r, - wuffs_base__rect_ii_u32 s) { - if (wuffs_base__rect_ii_u32__is_empty(r)) { +static inline wuffs_base__range_ii_u32 // +wuffs_base__range_ii_u32__unite(const wuffs_base__range_ii_u32* r, + wuffs_base__range_ii_u32 s) { + if (wuffs_base__range_ii_u32__is_empty(r)) { return s; } - if (wuffs_base__rect_ii_u32__is_empty(&s)) { + if (wuffs_base__range_ii_u32__is_empty(&s)) { return *r; } - wuffs_base__rect_ii_u32 t; - t.min_incl_x = wuffs_base__u32__min(r->min_incl_x, s.min_incl_x); - t.min_incl_y = wuffs_base__u32__min(r->min_incl_y, s.min_incl_y); - t.max_incl_x = wuffs_base__u32__max(r->max_incl_x, s.max_incl_x); - t.max_incl_y = wuffs_base__u32__max(r->max_incl_y, s.max_incl_y); + wuffs_base__range_ii_u32 t; + t.min_incl = wuffs_base__u32__min(r->min_incl, s.min_incl); + t.max_incl = wuffs_base__u32__max(r->max_incl, s.max_incl); return t; } static inline bool // -wuffs_base__rect_ii_u32__contains(const wuffs_base__rect_ii_u32* r, - uint32_t x, - uint32_t y) { - return (r->min_incl_x <= x) && (x <= r->max_incl_x) && (r->min_incl_y <= y) && - (y <= r->max_incl_y); +wuffs_base__range_ii_u32__contains(const wuffs_base__range_ii_u32* r, + uint32_t x) { + return (r->min_incl <= x) && (x <= r->max_incl); } static inline bool // -wuffs_base__rect_ii_u32__contains_rect(const wuffs_base__rect_ii_u32* r, - wuffs_base__rect_ii_u32 s) { - return wuffs_base__rect_ii_u32__equals( - &s, wuffs_base__rect_ii_u32__intersect(r, s)); +wuffs_base__range_ii_u32__contains_range(const wuffs_base__range_ii_u32* r, + wuffs_base__range_ii_u32 s) { + return wuffs_base__range_ii_u32__equals( + &s, wuffs_base__range_ii_u32__intersect(r, s)); } #ifdef __cplusplus inline bool // -wuffs_base__rect_ii_u32::is_empty() const { - return wuffs_base__rect_ii_u32__is_empty(this); +wuffs_base__range_ii_u32::is_empty() const { + return wuffs_base__range_ii_u32__is_empty(this); } inline bool // -wuffs_base__rect_ii_u32::equals(wuffs_base__rect_ii_u32 s) const { - return wuffs_base__rect_ii_u32__equals(this, s); +wuffs_base__range_ii_u32::equals(wuffs_base__range_ii_u32 s) const { + return wuffs_base__range_ii_u32__equals(this, s); } -inline wuffs_base__rect_ii_u32 // -wuffs_base__rect_ii_u32::intersect(wuffs_base__rect_ii_u32 s) const { - return wuffs_base__rect_ii_u32__intersect(this, s); +inline wuffs_base__range_ii_u32 // +wuffs_base__range_ii_u32::intersect(wuffs_base__range_ii_u32 s) const { + return wuffs_base__range_ii_u32__intersect(this, s); } -inline wuffs_base__rect_ii_u32 // -wuffs_base__rect_ii_u32::unite(wuffs_base__rect_ii_u32 s) const { - return wuffs_base__rect_ii_u32__unite(this, s); +inline wuffs_base__range_ii_u32 // +wuffs_base__range_ii_u32::unite(wuffs_base__range_ii_u32 s) const { + return wuffs_base__range_ii_u32__unite(this, s); } inline bool // -wuffs_base__rect_ii_u32::contains(uint32_t x, uint32_t y) const { - return wuffs_base__rect_ii_u32__contains(this, x, y); +wuffs_base__range_ii_u32::contains(uint32_t x) const { + return wuffs_base__range_ii_u32__contains(this, x); } inline bool // -wuffs_base__rect_ii_u32::contains_rect(wuffs_base__rect_ii_u32 s) const { - return wuffs_base__rect_ii_u32__contains_rect(this, s); +wuffs_base__range_ii_u32::contains_range(wuffs_base__range_ii_u32 s) const { + return wuffs_base__range_ii_u32__contains_range(this, s); +} + +#endif // __cplusplus + +// -------- + +typedef struct wuffs_base__range_ii_u64__struct { + uint64_t min_incl; + uint64_t max_incl; + +#ifdef __cplusplus + inline bool is_empty() const; + inline bool equals(wuffs_base__range_ii_u64__struct s) const; + inline wuffs_base__range_ii_u64__struct intersect( + wuffs_base__range_ii_u64__struct s) const; + inline wuffs_base__range_ii_u64__struct unite( + wuffs_base__range_ii_u64__struct s) const; + inline bool contains(uint64_t x) const; + inline bool contains_range(wuffs_base__range_ii_u64__struct s) const; +#endif // __cplusplus + +} wuffs_base__range_ii_u64; + +static inline wuffs_base__range_ii_u64 // +wuffs_base__empty_range_ii_u64(void) { + wuffs_base__range_ii_u64 ret; + ret.min_incl = 0; + ret.max_incl = 0; + return ret; +} + +static inline wuffs_base__range_ii_u64 // +wuffs_base__make_range_ii_u64(uint64_t min_incl, uint64_t max_incl) { + wuffs_base__range_ii_u64 ret; + ret.min_incl = min_incl; + ret.max_incl = max_incl; + return ret; +} + +static inline bool // +wuffs_base__range_ii_u64__is_empty(const wuffs_base__range_ii_u64* r) { + return r->min_incl > r->max_incl; +} + +static inline bool // +wuffs_base__range_ii_u64__equals(const wuffs_base__range_ii_u64* r, + wuffs_base__range_ii_u64 s) { + return (r->min_incl == s.min_incl && r->max_incl == s.max_incl) || + (wuffs_base__range_ii_u64__is_empty(r) && + wuffs_base__range_ii_u64__is_empty(&s)); +} + +static inline wuffs_base__range_ii_u64 // +wuffs_base__range_ii_u64__intersect(const wuffs_base__range_ii_u64* r, + wuffs_base__range_ii_u64 s) { + wuffs_base__range_ii_u64 t; + t.min_incl = wuffs_base__u64__max(r->min_incl, s.min_incl); + t.max_incl = wuffs_base__u64__min(r->max_incl, s.max_incl); + return t; +} + +static inline wuffs_base__range_ii_u64 // +wuffs_base__range_ii_u64__unite(const wuffs_base__range_ii_u64* r, + wuffs_base__range_ii_u64 s) { + if (wuffs_base__range_ii_u64__is_empty(r)) { + return s; + } + if (wuffs_base__range_ii_u64__is_empty(&s)) { + return *r; + } + wuffs_base__range_ii_u64 t; + t.min_incl = wuffs_base__u64__min(r->min_incl, s.min_incl); + t.max_incl = wuffs_base__u64__max(r->max_incl, s.max_incl); + return t; +} + +static inline bool // +wuffs_base__range_ii_u64__contains(const wuffs_base__range_ii_u64* r, + uint64_t x) { + return (r->min_incl <= x) && (x <= r->max_incl); +} + +static inline bool // +wuffs_base__range_ii_u64__contains_range(const wuffs_base__range_ii_u64* r, + wuffs_base__range_ii_u64 s) { + return wuffs_base__range_ii_u64__equals( + &s, wuffs_base__range_ii_u64__intersect(r, s)); +} + +#ifdef __cplusplus + +inline bool // +wuffs_base__range_ii_u64::is_empty() const { + return wuffs_base__range_ii_u64__is_empty(this); +} + +inline bool // +wuffs_base__range_ii_u64::equals(wuffs_base__range_ii_u64 s) const { + return wuffs_base__range_ii_u64__equals(this, s); +} + +inline wuffs_base__range_ii_u64 // +wuffs_base__range_ii_u64::intersect(wuffs_base__range_ii_u64 s) const { + return wuffs_base__range_ii_u64__intersect(this, s); +} + +inline wuffs_base__range_ii_u64 // +wuffs_base__range_ii_u64::unite(wuffs_base__range_ii_u64 s) const { + return wuffs_base__range_ii_u64__unite(this, s); +} + +inline bool // +wuffs_base__range_ii_u64::contains(uint64_t x) const { + return wuffs_base__range_ii_u64__contains(this, x); +} + +inline bool // +wuffs_base__range_ii_u64::contains_range(wuffs_base__range_ii_u64 s) const { + return wuffs_base__range_ii_u64__contains_range(this, s); } #endif // __cplusplus @@ -2848,6 +2715,141 @@ wuffs_base__rect_ie_u32::height() const { #endif // __cplusplus +// -------- + +typedef struct wuffs_base__rect_ii_u32__struct { + uint32_t min_incl_x; + uint32_t min_incl_y; + uint32_t max_incl_x; + uint32_t max_incl_y; + +#ifdef __cplusplus + inline bool is_empty() const; + inline bool equals(wuffs_base__rect_ii_u32__struct s) const; + inline wuffs_base__rect_ii_u32__struct intersect( + wuffs_base__rect_ii_u32__struct s) const; + inline wuffs_base__rect_ii_u32__struct unite( + wuffs_base__rect_ii_u32__struct s) const; + inline bool contains(uint32_t x, uint32_t y) const; + inline bool contains_rect(wuffs_base__rect_ii_u32__struct s) const; +#endif // __cplusplus + +} wuffs_base__rect_ii_u32; + +static inline wuffs_base__rect_ii_u32 // +wuffs_base__empty_rect_ii_u32(void) { + wuffs_base__rect_ii_u32 ret; + ret.min_incl_x = 0; + ret.min_incl_y = 0; + ret.max_incl_x = 0; + ret.max_incl_y = 0; + return ret; +} + +static inline wuffs_base__rect_ii_u32 // +wuffs_base__make_rect_ii_u32(uint32_t min_incl_x, + uint32_t min_incl_y, + uint32_t max_incl_x, + uint32_t max_incl_y) { + wuffs_base__rect_ii_u32 ret; + ret.min_incl_x = min_incl_x; + ret.min_incl_y = min_incl_y; + ret.max_incl_x = max_incl_x; + ret.max_incl_y = max_incl_y; + return ret; +} + +static inline bool // +wuffs_base__rect_ii_u32__is_empty(const wuffs_base__rect_ii_u32* r) { + return (r->min_incl_x > r->max_incl_x) || (r->min_incl_y > r->max_incl_y); +} + +static inline bool // +wuffs_base__rect_ii_u32__equals(const wuffs_base__rect_ii_u32* r, + wuffs_base__rect_ii_u32 s) { + return (r->min_incl_x == s.min_incl_x && r->min_incl_y == s.min_incl_y && + r->max_incl_x == s.max_incl_x && r->max_incl_y == s.max_incl_y) || + (wuffs_base__rect_ii_u32__is_empty(r) && + wuffs_base__rect_ii_u32__is_empty(&s)); +} + +static inline wuffs_base__rect_ii_u32 // +wuffs_base__rect_ii_u32__intersect(const wuffs_base__rect_ii_u32* r, + wuffs_base__rect_ii_u32 s) { + wuffs_base__rect_ii_u32 t; + t.min_incl_x = wuffs_base__u32__max(r->min_incl_x, s.min_incl_x); + t.min_incl_y = wuffs_base__u32__max(r->min_incl_y, s.min_incl_y); + t.max_incl_x = wuffs_base__u32__min(r->max_incl_x, s.max_incl_x); + t.max_incl_y = wuffs_base__u32__min(r->max_incl_y, s.max_incl_y); + return t; +} + +static inline wuffs_base__rect_ii_u32 // +wuffs_base__rect_ii_u32__unite(const wuffs_base__rect_ii_u32* r, + wuffs_base__rect_ii_u32 s) { + if (wuffs_base__rect_ii_u32__is_empty(r)) { + return s; + } + if (wuffs_base__rect_ii_u32__is_empty(&s)) { + return *r; + } + wuffs_base__rect_ii_u32 t; + t.min_incl_x = wuffs_base__u32__min(r->min_incl_x, s.min_incl_x); + t.min_incl_y = wuffs_base__u32__min(r->min_incl_y, s.min_incl_y); + t.max_incl_x = wuffs_base__u32__max(r->max_incl_x, s.max_incl_x); + t.max_incl_y = wuffs_base__u32__max(r->max_incl_y, s.max_incl_y); + return t; +} + +static inline bool // +wuffs_base__rect_ii_u32__contains(const wuffs_base__rect_ii_u32* r, + uint32_t x, + uint32_t y) { + return (r->min_incl_x <= x) && (x <= r->max_incl_x) && (r->min_incl_y <= y) && + (y <= r->max_incl_y); +} + +static inline bool // +wuffs_base__rect_ii_u32__contains_rect(const wuffs_base__rect_ii_u32* r, + wuffs_base__rect_ii_u32 s) { + return wuffs_base__rect_ii_u32__equals( + &s, wuffs_base__rect_ii_u32__intersect(r, s)); +} + +#ifdef __cplusplus + +inline bool // +wuffs_base__rect_ii_u32::is_empty() const { + return wuffs_base__rect_ii_u32__is_empty(this); +} + +inline bool // +wuffs_base__rect_ii_u32::equals(wuffs_base__rect_ii_u32 s) const { + return wuffs_base__rect_ii_u32__equals(this, s); +} + +inline wuffs_base__rect_ii_u32 // +wuffs_base__rect_ii_u32::intersect(wuffs_base__rect_ii_u32 s) const { + return wuffs_base__rect_ii_u32__intersect(this, s); +} + +inline wuffs_base__rect_ii_u32 // +wuffs_base__rect_ii_u32::unite(wuffs_base__rect_ii_u32 s) const { + return wuffs_base__rect_ii_u32__unite(this, s); +} + +inline bool // +wuffs_base__rect_ii_u32::contains(uint32_t x, uint32_t y) const { + return wuffs_base__rect_ii_u32__contains(this, x, y); +} + +inline bool // +wuffs_base__rect_ii_u32::contains_rect(wuffs_base__rect_ii_u32 s) const { + return wuffs_base__rect_ii_u32__contains_rect(this, s); +} + +#endif // __cplusplus + // ---------------- More Information // wuffs_base__more_information holds additional fields, typically when a Wuffs