Add contains_range and contains_rect methods
diff --git a/cmd/wuffs-c/internal/cgen/base/range-public.h b/cmd/wuffs-c/internal/cgen/base/range-public.h
index 6802736..7b4a5c4 100644
--- a/cmd/wuffs-c/internal/cgen/base/range-public.h
+++ b/cmd/wuffs-c/internal/cgen/base/range-public.h
@@ -54,11 +54,12 @@
#ifdef __cplusplus
inline bool is_empty();
inline bool equals(wuffs_base__range_ii_u32__struct s);
- inline bool contains(uint32_t x);
inline wuffs_base__range_ii_u32__struct intersect(
wuffs_base__range_ii_u32__struct s);
inline wuffs_base__range_ii_u32__struct unite(
wuffs_base__range_ii_u32__struct s);
+ inline bool contains(uint32_t x);
+ inline bool contains_range(wuffs_base__range_ii_u32__struct s);
#endif // __cplusplus
} wuffs_base__range_ii_u32;
@@ -76,11 +77,6 @@
wuffs_base__range_ii_u32__is_empty(&s));
}
-static inline bool //
-wuffs_base__range_ii_u32__contains(wuffs_base__range_ii_u32* r, uint32_t x) {
- return (r->min_incl <= x) && (x <= r->max_incl);
-}
-
static inline wuffs_base__range_ii_u32 //
wuffs_base__range_ii_u32__intersect(wuffs_base__range_ii_u32* r,
wuffs_base__range_ii_u32 s) {
@@ -105,6 +101,18 @@
return t;
}
+static inline bool //
+wuffs_base__range_ii_u32__contains(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(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 //
@@ -117,11 +125,6 @@
return wuffs_base__range_ii_u32__equals(this, s);
}
-inline bool //
-wuffs_base__range_ii_u32::contains(uint32_t x) {
- return wuffs_base__range_ii_u32__contains(this, x);
-}
-
inline wuffs_base__range_ii_u32 //
wuffs_base__range_ii_u32::intersect(wuffs_base__range_ii_u32 s) {
return wuffs_base__range_ii_u32__intersect(this, s);
@@ -132,6 +135,16 @@
return wuffs_base__range_ii_u32__unite(this, s);
}
+inline bool //
+wuffs_base__range_ii_u32::contains(uint32_t x) {
+ return wuffs_base__range_ii_u32__contains(this, x);
+}
+
+inline bool //
+wuffs_base__range_ii_u32::contains_range(wuffs_base__range_ii_u32 s) {
+ return wuffs_base__range_ii_u32__contains_range(this, s);
+}
+
#endif // __cplusplus
// --------
@@ -143,11 +156,12 @@
#ifdef __cplusplus
inline bool is_empty();
inline bool equals(wuffs_base__range_ie_u32__struct s);
- inline bool contains(uint32_t x);
inline wuffs_base__range_ie_u32__struct intersect(
wuffs_base__range_ie_u32__struct s);
inline wuffs_base__range_ie_u32__struct unite(
wuffs_base__range_ie_u32__struct s);
+ inline bool contains(uint32_t x);
+ inline bool contains_range(wuffs_base__range_ie_u32__struct s);
inline uint32_t length();
#endif // __cplusplus
@@ -166,11 +180,6 @@
wuffs_base__range_ie_u32__is_empty(&s));
}
-static inline bool //
-wuffs_base__range_ie_u32__contains(wuffs_base__range_ie_u32* r, uint32_t x) {
- return (r->min_incl <= x) && (x < r->max_excl);
-}
-
static inline wuffs_base__range_ie_u32 //
wuffs_base__range_ie_u32__intersect(wuffs_base__range_ie_u32* r,
wuffs_base__range_ie_u32 s) {
@@ -195,6 +204,18 @@
return t;
}
+static inline bool //
+wuffs_base__range_ie_u32__contains(wuffs_base__range_ie_u32* r, uint32_t x) {
+ return (r->min_incl <= x) && (x < r->max_excl);
+}
+
+static inline bool //
+wuffs_base__range_ie_u32__contains_range(wuffs_base__range_ie_u32* r,
+ wuffs_base__range_ie_u32 s) {
+ return wuffs_base__range_ie_u32__equals(
+ &s, wuffs_base__range_ie_u32__intersect(r, s));
+}
+
static inline uint32_t //
wuffs_base__range_ie_u32__length(wuffs_base__range_ie_u32* r) {
return wuffs_base__u32__sat_sub(r->max_excl, r->min_incl);
@@ -212,11 +233,6 @@
return wuffs_base__range_ie_u32__equals(this, s);
}
-inline bool //
-wuffs_base__range_ie_u32::contains(uint32_t x) {
- return wuffs_base__range_ie_u32__contains(this, x);
-}
-
inline wuffs_base__range_ie_u32 //
wuffs_base__range_ie_u32::intersect(wuffs_base__range_ie_u32 s) {
return wuffs_base__range_ie_u32__intersect(this, s);
@@ -227,6 +243,16 @@
return wuffs_base__range_ie_u32__unite(this, s);
}
+inline bool //
+wuffs_base__range_ie_u32::contains(uint32_t x) {
+ return wuffs_base__range_ie_u32__contains(this, x);
+}
+
+inline bool //
+wuffs_base__range_ie_u32::contains_range(wuffs_base__range_ie_u32 s) {
+ return wuffs_base__range_ie_u32__contains_range(this, s);
+}
+
inline uint32_t //
wuffs_base__range_ie_u32::length() {
return wuffs_base__range_ie_u32__length(this);
@@ -243,11 +269,12 @@
#ifdef __cplusplus
inline bool is_empty();
inline bool equals(wuffs_base__range_ii_u64__struct s);
- inline bool contains(uint64_t x);
inline wuffs_base__range_ii_u64__struct intersect(
wuffs_base__range_ii_u64__struct s);
inline wuffs_base__range_ii_u64__struct unite(
wuffs_base__range_ii_u64__struct s);
+ inline bool contains(uint64_t x);
+ inline bool contains_range(wuffs_base__range_ii_u64__struct s);
#endif // __cplusplus
} wuffs_base__range_ii_u64;
@@ -265,11 +292,6 @@
wuffs_base__range_ii_u64__is_empty(&s));
}
-static inline bool //
-wuffs_base__range_ii_u64__contains(wuffs_base__range_ii_u64* r, uint64_t x) {
- return (r->min_incl <= x) && (x <= r->max_incl);
-}
-
static inline wuffs_base__range_ii_u64 //
wuffs_base__range_ii_u64__intersect(wuffs_base__range_ii_u64* r,
wuffs_base__range_ii_u64 s) {
@@ -294,6 +316,18 @@
return t;
}
+static inline bool //
+wuffs_base__range_ii_u64__contains(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(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 //
@@ -306,11 +340,6 @@
return wuffs_base__range_ii_u64__equals(this, s);
}
-inline bool //
-wuffs_base__range_ii_u64::contains(uint64_t x) {
- return wuffs_base__range_ii_u64__contains(this, x);
-}
-
inline wuffs_base__range_ii_u64 //
wuffs_base__range_ii_u64::intersect(wuffs_base__range_ii_u64 s) {
return wuffs_base__range_ii_u64__intersect(this, s);
@@ -321,6 +350,16 @@
return wuffs_base__range_ii_u64__unite(this, s);
}
+inline bool //
+wuffs_base__range_ii_u64::contains(uint64_t x) {
+ return wuffs_base__range_ii_u64__contains(this, x);
+}
+
+inline bool //
+wuffs_base__range_ii_u64::contains_range(wuffs_base__range_ii_u64 s) {
+ return wuffs_base__range_ii_u64__contains_range(this, s);
+}
+
#endif // __cplusplus
// --------
@@ -332,11 +371,12 @@
#ifdef __cplusplus
inline bool is_empty();
inline bool equals(wuffs_base__range_ie_u64__struct s);
- inline bool contains(uint64_t x);
inline wuffs_base__range_ie_u64__struct intersect(
wuffs_base__range_ie_u64__struct s);
inline wuffs_base__range_ie_u64__struct unite(
wuffs_base__range_ie_u64__struct s);
+ inline bool contains(uint64_t x);
+ inline bool contains_range(wuffs_base__range_ie_u64__struct s);
inline uint64_t length();
#endif // __cplusplus
@@ -355,11 +395,6 @@
wuffs_base__range_ie_u64__is_empty(&s));
}
-static inline bool //
-wuffs_base__range_ie_u64__contains(wuffs_base__range_ie_u64* r, uint64_t x) {
- return (r->min_incl <= x) && (x < r->max_excl);
-}
-
static inline wuffs_base__range_ie_u64 //
wuffs_base__range_ie_u64__intersect(wuffs_base__range_ie_u64* r,
wuffs_base__range_ie_u64 s) {
@@ -384,6 +419,18 @@
return t;
}
+static inline bool //
+wuffs_base__range_ie_u64__contains(wuffs_base__range_ie_u64* r, uint64_t x) {
+ return (r->min_incl <= x) && (x < r->max_excl);
+}
+
+static inline bool //
+wuffs_base__range_ie_u64__contains_range(wuffs_base__range_ie_u64* r,
+ wuffs_base__range_ie_u64 s) {
+ return wuffs_base__range_ie_u64__equals(
+ &s, wuffs_base__range_ie_u64__intersect(r, s));
+}
+
static inline uint64_t //
wuffs_base__range_ie_u64__length(wuffs_base__range_ie_u64* r) {
return wuffs_base__u64__sat_sub(r->max_excl, r->min_incl);
@@ -401,11 +448,6 @@
return wuffs_base__range_ie_u64__equals(this, s);
}
-inline bool //
-wuffs_base__range_ie_u64::contains(uint64_t x) {
- return wuffs_base__range_ie_u64__contains(this, x);
-}
-
inline wuffs_base__range_ie_u64 //
wuffs_base__range_ie_u64::intersect(wuffs_base__range_ie_u64 s) {
return wuffs_base__range_ie_u64__intersect(this, s);
@@ -416,6 +458,16 @@
return wuffs_base__range_ie_u64__unite(this, s);
}
+inline bool //
+wuffs_base__range_ie_u64::contains(uint64_t x) {
+ return wuffs_base__range_ie_u64__contains(this, x);
+}
+
+inline bool //
+wuffs_base__range_ie_u64::contains_range(wuffs_base__range_ie_u64 s) {
+ return wuffs_base__range_ie_u64__contains_range(this, s);
+}
+
inline uint64_t //
wuffs_base__range_ie_u64::length() {
return wuffs_base__range_ie_u64__length(this);
@@ -443,11 +495,12 @@
#ifdef __cplusplus
inline bool is_empty();
inline bool equals(wuffs_base__rect_ii_u32__struct s);
- inline bool contains(uint32_t x, uint32_t y);
inline wuffs_base__rect_ii_u32__struct intersect(
wuffs_base__rect_ii_u32__struct s);
inline wuffs_base__rect_ii_u32__struct unite(
wuffs_base__rect_ii_u32__struct s);
+ inline bool contains(uint32_t x, uint32_t y);
+ inline bool contains_rect(wuffs_base__rect_ii_u32__struct s);
#endif // __cplusplus
} wuffs_base__rect_ii_u32;
@@ -466,14 +519,6 @@
wuffs_base__rect_ii_u32__is_empty(&s));
}
-static inline bool //
-wuffs_base__rect_ii_u32__contains(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 wuffs_base__rect_ii_u32 //
wuffs_base__rect_ii_u32__intersect(wuffs_base__rect_ii_u32* r,
wuffs_base__rect_ii_u32 s) {
@@ -502,6 +547,21 @@
return t;
}
+static inline bool //
+wuffs_base__rect_ii_u32__contains(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(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 //
@@ -514,11 +574,6 @@
return wuffs_base__rect_ii_u32__equals(this, s);
}
-inline bool //
-wuffs_base__rect_ii_u32::contains(uint32_t x, uint32_t y) {
- return wuffs_base__rect_ii_u32__contains(this, x, y);
-}
-
inline wuffs_base__rect_ii_u32 //
wuffs_base__rect_ii_u32::intersect(wuffs_base__rect_ii_u32 s) {
return wuffs_base__rect_ii_u32__intersect(this, s);
@@ -529,6 +584,16 @@
return wuffs_base__rect_ii_u32__unite(this, s);
}
+inline bool //
+wuffs_base__rect_ii_u32::contains(uint32_t x, uint32_t y) {
+ 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) {
+ return wuffs_base__rect_ii_u32__contains_rect(this, s);
+}
+
#endif // __cplusplus
// --------
@@ -552,11 +617,12 @@
#ifdef __cplusplus
inline bool is_empty();
inline bool equals(wuffs_base__rect_ie_u32__struct s);
- inline bool contains(uint32_t x, uint32_t y);
inline wuffs_base__rect_ie_u32__struct intersect(
wuffs_base__rect_ie_u32__struct s);
inline wuffs_base__rect_ie_u32__struct unite(
wuffs_base__rect_ie_u32__struct s);
+ inline bool contains(uint32_t x, uint32_t y);
+ inline bool contains_rect(wuffs_base__rect_ie_u32__struct s);
inline uint32_t width();
inline uint32_t height();
#endif // __cplusplus
@@ -577,14 +643,6 @@
wuffs_base__rect_ie_u32__is_empty(&s));
}
-static inline bool //
-wuffs_base__rect_ie_u32__contains(wuffs_base__rect_ie_u32* r,
- uint32_t x,
- uint32_t y) {
- return (r->min_incl_x <= x) && (x < r->max_excl_x) && (r->min_incl_y <= y) &&
- (y < r->max_excl_y);
-}
-
static inline wuffs_base__rect_ie_u32 //
wuffs_base__rect_ie_u32__intersect(wuffs_base__rect_ie_u32* r,
wuffs_base__rect_ie_u32 s) {
@@ -613,6 +671,21 @@
return t;
}
+static inline bool //
+wuffs_base__rect_ie_u32__contains(wuffs_base__rect_ie_u32* r,
+ uint32_t x,
+ uint32_t y) {
+ return (r->min_incl_x <= x) && (x < r->max_excl_x) && (r->min_incl_y <= y) &&
+ (y < r->max_excl_y);
+}
+
+static inline bool //
+wuffs_base__rect_ie_u32__contains_rect(wuffs_base__rect_ie_u32* r,
+ wuffs_base__rect_ie_u32 s) {
+ return wuffs_base__rect_ie_u32__equals(
+ &s, wuffs_base__rect_ie_u32__intersect(r, s));
+}
+
static inline uint32_t //
wuffs_base__rect_ie_u32__width(wuffs_base__rect_ie_u32* r) {
return wuffs_base__u32__sat_sub(r->max_excl_x, r->min_incl_x);
@@ -635,11 +708,6 @@
return wuffs_base__rect_ie_u32__equals(this, s);
}
-inline bool //
-wuffs_base__rect_ie_u32::contains(uint32_t x, uint32_t y) {
- return wuffs_base__rect_ie_u32__contains(this, x, y);
-}
-
inline wuffs_base__rect_ie_u32 //
wuffs_base__rect_ie_u32::intersect(wuffs_base__rect_ie_u32 s) {
return wuffs_base__rect_ie_u32__intersect(this, s);
@@ -650,6 +718,16 @@
return wuffs_base__rect_ie_u32__unite(this, s);
}
+inline bool //
+wuffs_base__rect_ie_u32::contains(uint32_t x, uint32_t y) {
+ return wuffs_base__rect_ie_u32__contains(this, x, y);
+}
+
+inline bool //
+wuffs_base__rect_ie_u32::contains_rect(wuffs_base__rect_ie_u32 s) {
+ return wuffs_base__rect_ie_u32__contains_rect(this, s);
+}
+
inline uint32_t //
wuffs_base__rect_ie_u32::width() {
return wuffs_base__rect_ie_u32__width(this);
@@ -671,28 +749,33 @@
static inline void
wuffs_base__acknowledge_potentially_unused_functions__range_public() {
(void)(wuffs_base__range_ie_u32__contains);
+ (void)(wuffs_base__range_ie_u32__contains_range);
(void)(wuffs_base__range_ie_u32__equals);
(void)(wuffs_base__range_ie_u32__intersect);
(void)(wuffs_base__range_ie_u32__is_empty);
(void)(wuffs_base__range_ie_u32__length);
(void)(wuffs_base__range_ie_u32__unite);
(void)(wuffs_base__range_ie_u64__contains);
+ (void)(wuffs_base__range_ie_u64__contains_range);
(void)(wuffs_base__range_ie_u64__equals);
(void)(wuffs_base__range_ie_u64__intersect);
(void)(wuffs_base__range_ie_u64__is_empty);
(void)(wuffs_base__range_ie_u64__length);
(void)(wuffs_base__range_ie_u64__unite);
(void)(wuffs_base__range_ii_u32__contains);
+ (void)(wuffs_base__range_ii_u32__contains_range);
(void)(wuffs_base__range_ii_u32__equals);
(void)(wuffs_base__range_ii_u32__intersect);
(void)(wuffs_base__range_ii_u32__is_empty);
(void)(wuffs_base__range_ii_u32__unite);
(void)(wuffs_base__range_ii_u64__contains);
+ (void)(wuffs_base__range_ii_u64__contains_range);
(void)(wuffs_base__range_ii_u64__equals);
(void)(wuffs_base__range_ii_u64__intersect);
(void)(wuffs_base__range_ii_u64__is_empty);
(void)(wuffs_base__range_ii_u64__unite);
(void)(wuffs_base__rect_ie_u32__contains);
+ (void)(wuffs_base__rect_ie_u32__contains_rect);
(void)(wuffs_base__rect_ie_u32__equals);
(void)(wuffs_base__rect_ie_u32__height);
(void)(wuffs_base__rect_ie_u32__intersect);
@@ -700,6 +783,7 @@
(void)(wuffs_base__rect_ie_u32__unite);
(void)(wuffs_base__rect_ie_u32__width);
(void)(wuffs_base__rect_ii_u32__contains);
+ (void)(wuffs_base__rect_ie_u32__contains_rect);
(void)(wuffs_base__rect_ii_u32__equals);
(void)(wuffs_base__rect_ii_u32__intersect);
(void)(wuffs_base__rect_ii_u32__is_empty);
diff --git a/cmd/wuffs-c/internal/cgen/data.go b/cmd/wuffs-c/internal/cgen/data.go
index 48e0353..f7f2c35 100644
--- a/cmd/wuffs-c/internal/cgen/data.go
+++ b/cmd/wuffs-c/internal/cgen/data.go
@@ -198,36 +198,41 @@
const baseRangePublicH = "" +
"// ---------------- Ranges and Rects\n\n// Ranges are either inclusive (\"range_ii\") or exclusive (\"range_ie\") on the\n// high end. Both the \"ii\" and \"ie\" flavors are useful in practice.\n//\n// The \"ei\" and \"ee\" flavors also exist in theory, but aren't widely used. In\n// Wuffs, the low end is always inclusive.\n//\n// The \"ii\" (closed interval) flavor is useful when refining e.g. \"the set of\n// all uint32_t values\" to a contiguous subset: \"uint32_t values in the closed\n// interval [M, N]\", for uint32_t values M and N. An unrefined type (in other\n// words, the set of all uint32_t values) is not representable in the \"ie\"\n// flavor because if N equals ((1<<32) - 1) then (N + 1) will overflow.\n//\n// On the other hand, the \"ie\" (half-open interval) flavor is recommended by\n// Dijkstra's \"Why numbering should start at zero\" at\n// http://www.cs.utexas.edu/users/EWD/ewd08xx/EWD831.PDF and a further\n// discussion of motivating rationale is at\n// https://www.quora.com/Why-are-Python-ranges-half-open-exclusive-instead-of-close" +
- "d-inclusive\n//\n// For example, with \"ie\", the number of elements in \"uint32_t values in the\n// half-open interval [M, N)\" is equal to max(0, N-M). Furthermore, that number\n// of elements (in one dimension, a length, in two dimensions, a width or\n// height) is itself representable as a uint32_t without overflow, again for\n// uint32_t values M and N. In the contrasting \"ii\" flavor, the length of the\n// closed interval [0, (1<<32) - 1] is 1<<32, which cannot be represented as a\n// uint32_t. In Wuffs, because of this potential overflow, the \"ie\" flavor has\n// length / width / height methods, but the \"ii\" flavor does not.\n//\n// It is valid for min > max (for range_ii) or for min >= max (for range_ie),\n// in which case the range is empty. There are multiple representations of an\n// empty range.\n\ntypedef struct wuffs_base__range_ii_u32__struct {\n uint32_t min_incl;\n uint32_t max_incl;\n\n#ifdef __cplusplus\n inline bool is_empty();\n inline bool equals(wuffs_base__range_ii_u32__struct s);\n inline bool contains(uint" +
- "32_t x);\n inline wuffs_base__range_ii_u32__struct intersect(\n wuffs_base__range_ii_u32__struct s);\n inline wuffs_base__range_ii_u32__struct unite(\n wuffs_base__range_ii_u32__struct s);\n#endif // __cplusplus\n\n} wuffs_base__range_ii_u32;\n\nstatic inline bool //\nwuffs_base__range_ii_u32__is_empty(wuffs_base__range_ii_u32* r) {\n return r->min_incl > r->max_incl;\n}\n\nstatic inline bool //\nwuffs_base__range_ii_u32__equals(wuffs_base__range_ii_u32* r,\n wuffs_base__range_ii_u32 s) {\n return (r->min_incl == s.min_incl && r->max_incl == s.max_incl) ||\n (wuffs_base__range_ii_u32__is_empty(r) &&\n wuffs_base__range_ii_u32__is_empty(&s));\n}\n\nstatic inline bool //\nwuffs_base__range_ii_u32__contains(wuffs_base__range_ii_u32* r, uint32_t x) {\n return (r->min_incl <= x) && (x <= r->max_incl);\n}\n\nstatic inline wuffs_base__range_ii_u32 //\nwuffs_base__range_ii_u32__intersect(wuffs_base__range_ii_u32* r,\n wuffs_base__range_ii_u32 " +
- "s) {\n wuffs_base__range_ii_u32 t;\n t.min_incl = wuffs_base__u32__max(r->min_incl, s.min_incl);\n t.max_incl = wuffs_base__u32__min(r->max_incl, s.max_incl);\n return t;\n}\n\nstatic inline wuffs_base__range_ii_u32 //\nwuffs_base__range_ii_u32__unite(wuffs_base__range_ii_u32* r,\n wuffs_base__range_ii_u32 s) {\n if (wuffs_base__range_ii_u32__is_empty(r)) {\n return s;\n }\n if (wuffs_base__range_ii_u32__is_empty(&s)) {\n return *r;\n }\n wuffs_base__range_ii_u32 t;\n t.min_incl = wuffs_base__u32__min(r->min_incl, s.min_incl);\n t.max_incl = wuffs_base__u32__max(r->max_incl, s.max_incl);\n return t;\n}\n\n#ifdef __cplusplus\n\ninline bool //\nwuffs_base__range_ii_u32::is_empty() {\n return wuffs_base__range_ii_u32__is_empty(this);\n}\n\ninline bool //\nwuffs_base__range_ii_u32::equals(wuffs_base__range_ii_u32 s) {\n return wuffs_base__range_ii_u32__equals(this, s);\n}\n\ninline bool //\nwuffs_base__range_ii_u32::contains(uint32_t x) {\n return wuffs_base__range_ii_u32__contains(this, x);\n}" +
- "\n\ninline wuffs_base__range_ii_u32 //\nwuffs_base__range_ii_u32::intersect(wuffs_base__range_ii_u32 s) {\n return wuffs_base__range_ii_u32__intersect(this, s);\n}\n\ninline wuffs_base__range_ii_u32 //\nwuffs_base__range_ii_u32::unite(wuffs_base__range_ii_u32 s) {\n return wuffs_base__range_ii_u32__unite(this, s);\n}\n\n#endif // __cplusplus\n\n" +
+ "d-inclusive\n//\n// For example, with \"ie\", the number of elements in \"uint32_t values in the\n// half-open interval [M, N)\" is equal to max(0, N-M). Furthermore, that number\n// of elements (in one dimension, a length, in two dimensions, a width or\n// height) is itself representable as a uint32_t without overflow, again for\n// uint32_t values M and N. In the contrasting \"ii\" flavor, the length of the\n// closed interval [0, (1<<32) - 1] is 1<<32, which cannot be represented as a\n// uint32_t. In Wuffs, because of this potential overflow, the \"ie\" flavor has\n// length / width / height methods, but the \"ii\" flavor does not.\n//\n// It is valid for min > max (for range_ii) or for min >= max (for range_ie),\n// in which case the range is empty. There are multiple representations of an\n// empty range.\n\ntypedef struct wuffs_base__range_ii_u32__struct {\n uint32_t min_incl;\n uint32_t max_incl;\n\n#ifdef __cplusplus\n inline bool is_empty();\n inline bool equals(wuffs_base__range_ii_u32__struct s);\n inline wuffs_base__range_" +
+ "ii_u32__struct intersect(\n wuffs_base__range_ii_u32__struct s);\n inline wuffs_base__range_ii_u32__struct unite(\n wuffs_base__range_ii_u32__struct s);\n inline bool contains(uint32_t x);\n inline bool contains_range(wuffs_base__range_ii_u32__struct s);\n#endif // __cplusplus\n\n} wuffs_base__range_ii_u32;\n\nstatic inline bool //\nwuffs_base__range_ii_u32__is_empty(wuffs_base__range_ii_u32* r) {\n return r->min_incl > r->max_incl;\n}\n\nstatic inline bool //\nwuffs_base__range_ii_u32__equals(wuffs_base__range_ii_u32* r,\n wuffs_base__range_ii_u32 s) {\n return (r->min_incl == s.min_incl && r->max_incl == s.max_incl) ||\n (wuffs_base__range_ii_u32__is_empty(r) &&\n wuffs_base__range_ii_u32__is_empty(&s));\n}\n\nstatic inline wuffs_base__range_ii_u32 //\nwuffs_base__range_ii_u32__intersect(wuffs_base__range_ii_u32* r,\n wuffs_base__range_ii_u32 s) {\n wuffs_base__range_ii_u32 t;\n t.min_incl = wuffs_base__u32__max(r->min_incl, s.min" +
+ "_incl);\n t.max_incl = wuffs_base__u32__min(r->max_incl, s.max_incl);\n return t;\n}\n\nstatic inline wuffs_base__range_ii_u32 //\nwuffs_base__range_ii_u32__unite(wuffs_base__range_ii_u32* r,\n wuffs_base__range_ii_u32 s) {\n if (wuffs_base__range_ii_u32__is_empty(r)) {\n return s;\n }\n if (wuffs_base__range_ii_u32__is_empty(&s)) {\n return *r;\n }\n wuffs_base__range_ii_u32 t;\n t.min_incl = wuffs_base__u32__min(r->min_incl, s.min_incl);\n t.max_incl = wuffs_base__u32__max(r->max_incl, s.max_incl);\n return t;\n}\n\nstatic inline bool //\nwuffs_base__range_ii_u32__contains(wuffs_base__range_ii_u32* r, uint32_t x) {\n return (r->min_incl <= x) && (x <= r->max_incl);\n}\n\nstatic inline bool //\nwuffs_base__range_ii_u32__contains_range(wuffs_base__range_ii_u32* r,\n wuffs_base__range_ii_u32 s) {\n return wuffs_base__range_ii_u32__equals(\n &s, wuffs_base__range_ii_u32__intersect(r, s));\n}\n\n#ifdef __cplusplus\n\ninline bool //\nwuffs_base__range" +
+ "_ii_u32::is_empty() {\n return wuffs_base__range_ii_u32__is_empty(this);\n}\n\ninline bool //\nwuffs_base__range_ii_u32::equals(wuffs_base__range_ii_u32 s) {\n return wuffs_base__range_ii_u32__equals(this, s);\n}\n\ninline wuffs_base__range_ii_u32 //\nwuffs_base__range_ii_u32::intersect(wuffs_base__range_ii_u32 s) {\n return wuffs_base__range_ii_u32__intersect(this, s);\n}\n\ninline wuffs_base__range_ii_u32 //\nwuffs_base__range_ii_u32::unite(wuffs_base__range_ii_u32 s) {\n return wuffs_base__range_ii_u32__unite(this, s);\n}\n\ninline bool //\nwuffs_base__range_ii_u32::contains(uint32_t x) {\n return wuffs_base__range_ii_u32__contains(this, x);\n}\n\ninline bool //\nwuffs_base__range_ii_u32::contains_range(wuffs_base__range_ii_u32 s) {\n return wuffs_base__range_ii_u32__contains_range(this, s);\n}\n\n#endif // __cplusplus\n\n" +
"" +
- "// --------\n\ntypedef struct wuffs_base__range_ie_u32__struct {\n uint32_t min_incl;\n uint32_t max_excl;\n\n#ifdef __cplusplus\n inline bool is_empty();\n inline bool equals(wuffs_base__range_ie_u32__struct s);\n inline bool contains(uint32_t x);\n inline wuffs_base__range_ie_u32__struct intersect(\n wuffs_base__range_ie_u32__struct s);\n inline wuffs_base__range_ie_u32__struct unite(\n wuffs_base__range_ie_u32__struct s);\n inline uint32_t length();\n#endif // __cplusplus\n\n} wuffs_base__range_ie_u32;\n\nstatic inline bool //\nwuffs_base__range_ie_u32__is_empty(wuffs_base__range_ie_u32* r) {\n return r->min_incl >= r->max_excl;\n}\n\nstatic inline bool //\nwuffs_base__range_ie_u32__equals(wuffs_base__range_ie_u32* r,\n wuffs_base__range_ie_u32 s) {\n return (r->min_incl == s.min_incl && r->max_excl == s.max_excl) ||\n (wuffs_base__range_ie_u32__is_empty(r) &&\n wuffs_base__range_ie_u32__is_empty(&s));\n}\n\nstatic inline bool //\nwuffs_base__range_ie_u32__contains(w" +
- "uffs_base__range_ie_u32* r, uint32_t x) {\n return (r->min_incl <= x) && (x < r->max_excl);\n}\n\nstatic inline wuffs_base__range_ie_u32 //\nwuffs_base__range_ie_u32__intersect(wuffs_base__range_ie_u32* r,\n wuffs_base__range_ie_u32 s) {\n wuffs_base__range_ie_u32 t;\n t.min_incl = wuffs_base__u32__max(r->min_incl, s.min_incl);\n t.max_excl = wuffs_base__u32__min(r->max_excl, s.max_excl);\n return t;\n}\n\nstatic inline wuffs_base__range_ie_u32 //\nwuffs_base__range_ie_u32__unite(wuffs_base__range_ie_u32* r,\n wuffs_base__range_ie_u32 s) {\n if (wuffs_base__range_ie_u32__is_empty(r)) {\n return s;\n }\n if (wuffs_base__range_ie_u32__is_empty(&s)) {\n return *r;\n }\n wuffs_base__range_ie_u32 t;\n t.min_incl = wuffs_base__u32__min(r->min_incl, s.min_incl);\n t.max_excl = wuffs_base__u32__max(r->max_excl, s.max_excl);\n return t;\n}\n\nstatic inline uint32_t //\nwuffs_base__range_ie_u32__length(wuffs_base__range_ie_u32* r) {\n return wuffs_base__u32__sa" +
- "t_sub(r->max_excl, r->min_incl);\n}\n\n#ifdef __cplusplus\n\ninline bool //\nwuffs_base__range_ie_u32::is_empty() {\n return wuffs_base__range_ie_u32__is_empty(this);\n}\n\ninline bool //\nwuffs_base__range_ie_u32::equals(wuffs_base__range_ie_u32 s) {\n return wuffs_base__range_ie_u32__equals(this, s);\n}\n\ninline bool //\nwuffs_base__range_ie_u32::contains(uint32_t x) {\n return wuffs_base__range_ie_u32__contains(this, x);\n}\n\ninline wuffs_base__range_ie_u32 //\nwuffs_base__range_ie_u32::intersect(wuffs_base__range_ie_u32 s) {\n return wuffs_base__range_ie_u32__intersect(this, s);\n}\n\ninline wuffs_base__range_ie_u32 //\nwuffs_base__range_ie_u32::unite(wuffs_base__range_ie_u32 s) {\n return wuffs_base__range_ie_u32__unite(this, s);\n}\n\ninline uint32_t //\nwuffs_base__range_ie_u32::length() {\n return wuffs_base__range_ie_u32__length(this);\n}\n\n#endif // __cplusplus\n\n" +
+ "// --------\n\ntypedef struct wuffs_base__range_ie_u32__struct {\n uint32_t min_incl;\n uint32_t max_excl;\n\n#ifdef __cplusplus\n inline bool is_empty();\n inline bool equals(wuffs_base__range_ie_u32__struct s);\n inline wuffs_base__range_ie_u32__struct intersect(\n wuffs_base__range_ie_u32__struct s);\n inline wuffs_base__range_ie_u32__struct unite(\n wuffs_base__range_ie_u32__struct s);\n inline bool contains(uint32_t x);\n inline bool contains_range(wuffs_base__range_ie_u32__struct s);\n inline uint32_t length();\n#endif // __cplusplus\n\n} wuffs_base__range_ie_u32;\n\nstatic inline bool //\nwuffs_base__range_ie_u32__is_empty(wuffs_base__range_ie_u32* r) {\n return r->min_incl >= r->max_excl;\n}\n\nstatic inline bool //\nwuffs_base__range_ie_u32__equals(wuffs_base__range_ie_u32* r,\n wuffs_base__range_ie_u32 s) {\n return (r->min_incl == s.min_incl && r->max_excl == s.max_excl) ||\n (wuffs_base__range_ie_u32__is_empty(r) &&\n wuffs_base__range_ie_u32__is_empty(&s" +
+ "));\n}\n\nstatic inline wuffs_base__range_ie_u32 //\nwuffs_base__range_ie_u32__intersect(wuffs_base__range_ie_u32* r,\n wuffs_base__range_ie_u32 s) {\n wuffs_base__range_ie_u32 t;\n t.min_incl = wuffs_base__u32__max(r->min_incl, s.min_incl);\n t.max_excl = wuffs_base__u32__min(r->max_excl, s.max_excl);\n return t;\n}\n\nstatic inline wuffs_base__range_ie_u32 //\nwuffs_base__range_ie_u32__unite(wuffs_base__range_ie_u32* r,\n wuffs_base__range_ie_u32 s) {\n if (wuffs_base__range_ie_u32__is_empty(r)) {\n return s;\n }\n if (wuffs_base__range_ie_u32__is_empty(&s)) {\n return *r;\n }\n wuffs_base__range_ie_u32 t;\n t.min_incl = wuffs_base__u32__min(r->min_incl, s.min_incl);\n t.max_excl = wuffs_base__u32__max(r->max_excl, s.max_excl);\n return t;\n}\n\nstatic inline bool //\nwuffs_base__range_ie_u32__contains(wuffs_base__range_ie_u32* r, uint32_t x) {\n return (r->min_incl <= x) && (x < r->max_excl);\n}\n\nstatic inline bool //\nwuffs_base__range_ie_u32__cont" +
+ "ains_range(wuffs_base__range_ie_u32* r,\n wuffs_base__range_ie_u32 s) {\n return wuffs_base__range_ie_u32__equals(\n &s, wuffs_base__range_ie_u32__intersect(r, s));\n}\n\nstatic inline uint32_t //\nwuffs_base__range_ie_u32__length(wuffs_base__range_ie_u32* r) {\n return wuffs_base__u32__sat_sub(r->max_excl, r->min_incl);\n}\n\n#ifdef __cplusplus\n\ninline bool //\nwuffs_base__range_ie_u32::is_empty() {\n return wuffs_base__range_ie_u32__is_empty(this);\n}\n\ninline bool //\nwuffs_base__range_ie_u32::equals(wuffs_base__range_ie_u32 s) {\n return wuffs_base__range_ie_u32__equals(this, s);\n}\n\ninline wuffs_base__range_ie_u32 //\nwuffs_base__range_ie_u32::intersect(wuffs_base__range_ie_u32 s) {\n return wuffs_base__range_ie_u32__intersect(this, s);\n}\n\ninline wuffs_base__range_ie_u32 //\nwuffs_base__range_ie_u32::unite(wuffs_base__range_ie_u32 s) {\n return wuffs_base__range_ie_u32__unite(this, s);\n}\n\ninline bool //\nwuffs_base__range_ie_u32::contains(uint32_t x) {\n return wuffs_bas" +
+ "e__range_ie_u32__contains(this, x);\n}\n\ninline bool //\nwuffs_base__range_ie_u32::contains_range(wuffs_base__range_ie_u32 s) {\n return wuffs_base__range_ie_u32__contains_range(this, s);\n}\n\ninline uint32_t //\nwuffs_base__range_ie_u32::length() {\n return wuffs_base__range_ie_u32__length(this);\n}\n\n#endif // __cplusplus\n\n" +
"" +
- "// --------\n\ntypedef struct wuffs_base__range_ii_u64__struct {\n uint64_t min_incl;\n uint64_t max_incl;\n\n#ifdef __cplusplus\n inline bool is_empty();\n inline bool equals(wuffs_base__range_ii_u64__struct s);\n inline bool contains(uint64_t x);\n inline wuffs_base__range_ii_u64__struct intersect(\n wuffs_base__range_ii_u64__struct s);\n inline wuffs_base__range_ii_u64__struct unite(\n wuffs_base__range_ii_u64__struct s);\n#endif // __cplusplus\n\n} wuffs_base__range_ii_u64;\n\nstatic inline bool //\nwuffs_base__range_ii_u64__is_empty(wuffs_base__range_ii_u64* r) {\n return r->min_incl > r->max_incl;\n}\n\nstatic inline bool //\nwuffs_base__range_ii_u64__equals(wuffs_base__range_ii_u64* r,\n wuffs_base__range_ii_u64 s) {\n return (r->min_incl == s.min_incl && r->max_incl == s.max_incl) ||\n (wuffs_base__range_ii_u64__is_empty(r) &&\n wuffs_base__range_ii_u64__is_empty(&s));\n}\n\nstatic inline bool //\nwuffs_base__range_ii_u64__contains(wuffs_base__range_ii_u64* r, u" +
- "int64_t x) {\n return (r->min_incl <= x) && (x <= r->max_incl);\n}\n\nstatic inline wuffs_base__range_ii_u64 //\nwuffs_base__range_ii_u64__intersect(wuffs_base__range_ii_u64* r,\n wuffs_base__range_ii_u64 s) {\n wuffs_base__range_ii_u64 t;\n t.min_incl = wuffs_base__u64__max(r->min_incl, s.min_incl);\n t.max_incl = wuffs_base__u64__min(r->max_incl, s.max_incl);\n return t;\n}\n\nstatic inline wuffs_base__range_ii_u64 //\nwuffs_base__range_ii_u64__unite(wuffs_base__range_ii_u64* r,\n wuffs_base__range_ii_u64 s) {\n if (wuffs_base__range_ii_u64__is_empty(r)) {\n return s;\n }\n if (wuffs_base__range_ii_u64__is_empty(&s)) {\n return *r;\n }\n wuffs_base__range_ii_u64 t;\n t.min_incl = wuffs_base__u64__min(r->min_incl, s.min_incl);\n t.max_incl = wuffs_base__u64__max(r->max_incl, s.max_incl);\n return t;\n}\n\n#ifdef __cplusplus\n\ninline bool //\nwuffs_base__range_ii_u64::is_empty() {\n return wuffs_base__range_ii_u64__is_empty(this);\n}\n\ninline bool //\nwu" +
- "ffs_base__range_ii_u64::equals(wuffs_base__range_ii_u64 s) {\n return wuffs_base__range_ii_u64__equals(this, s);\n}\n\ninline bool //\nwuffs_base__range_ii_u64::contains(uint64_t x) {\n return wuffs_base__range_ii_u64__contains(this, x);\n}\n\ninline wuffs_base__range_ii_u64 //\nwuffs_base__range_ii_u64::intersect(wuffs_base__range_ii_u64 s) {\n return wuffs_base__range_ii_u64__intersect(this, s);\n}\n\ninline wuffs_base__range_ii_u64 //\nwuffs_base__range_ii_u64::unite(wuffs_base__range_ii_u64 s) {\n return wuffs_base__range_ii_u64__unite(this, s);\n}\n\n#endif // __cplusplus\n\n" +
+ "// --------\n\ntypedef struct wuffs_base__range_ii_u64__struct {\n uint64_t min_incl;\n uint64_t max_incl;\n\n#ifdef __cplusplus\n inline bool is_empty();\n inline bool equals(wuffs_base__range_ii_u64__struct s);\n inline wuffs_base__range_ii_u64__struct intersect(\n wuffs_base__range_ii_u64__struct s);\n inline wuffs_base__range_ii_u64__struct unite(\n wuffs_base__range_ii_u64__struct s);\n inline bool contains(uint64_t x);\n inline bool contains_range(wuffs_base__range_ii_u64__struct s);\n#endif // __cplusplus\n\n} wuffs_base__range_ii_u64;\n\nstatic inline bool //\nwuffs_base__range_ii_u64__is_empty(wuffs_base__range_ii_u64* r) {\n return r->min_incl > r->max_incl;\n}\n\nstatic inline bool //\nwuffs_base__range_ii_u64__equals(wuffs_base__range_ii_u64* r,\n wuffs_base__range_ii_u64 s) {\n return (r->min_incl == s.min_incl && r->max_incl == s.max_incl) ||\n (wuffs_base__range_ii_u64__is_empty(r) &&\n wuffs_base__range_ii_u64__is_empty(&s));\n}\n\nstatic inline wuffs_ba" +
+ "se__range_ii_u64 //\nwuffs_base__range_ii_u64__intersect(wuffs_base__range_ii_u64* r,\n wuffs_base__range_ii_u64 s) {\n wuffs_base__range_ii_u64 t;\n t.min_incl = wuffs_base__u64__max(r->min_incl, s.min_incl);\n t.max_incl = wuffs_base__u64__min(r->max_incl, s.max_incl);\n return t;\n}\n\nstatic inline wuffs_base__range_ii_u64 //\nwuffs_base__range_ii_u64__unite(wuffs_base__range_ii_u64* r,\n wuffs_base__range_ii_u64 s) {\n if (wuffs_base__range_ii_u64__is_empty(r)) {\n return s;\n }\n if (wuffs_base__range_ii_u64__is_empty(&s)) {\n return *r;\n }\n wuffs_base__range_ii_u64 t;\n t.min_incl = wuffs_base__u64__min(r->min_incl, s.min_incl);\n t.max_incl = wuffs_base__u64__max(r->max_incl, s.max_incl);\n return t;\n}\n\nstatic inline bool //\nwuffs_base__range_ii_u64__contains(wuffs_base__range_ii_u64* r, uint64_t x) {\n return (r->min_incl <= x) && (x <= r->max_incl);\n}\n\nstatic inline bool //\nwuffs_base__range_ii_u64__contains_range(wuffs_base__range" +
+ "_ii_u64* r,\n wuffs_base__range_ii_u64 s) {\n return wuffs_base__range_ii_u64__equals(\n &s, wuffs_base__range_ii_u64__intersect(r, s));\n}\n\n#ifdef __cplusplus\n\ninline bool //\nwuffs_base__range_ii_u64::is_empty() {\n return wuffs_base__range_ii_u64__is_empty(this);\n}\n\ninline bool //\nwuffs_base__range_ii_u64::equals(wuffs_base__range_ii_u64 s) {\n return wuffs_base__range_ii_u64__equals(this, s);\n}\n\ninline wuffs_base__range_ii_u64 //\nwuffs_base__range_ii_u64::intersect(wuffs_base__range_ii_u64 s) {\n return wuffs_base__range_ii_u64__intersect(this, s);\n}\n\ninline wuffs_base__range_ii_u64 //\nwuffs_base__range_ii_u64::unite(wuffs_base__range_ii_u64 s) {\n return wuffs_base__range_ii_u64__unite(this, s);\n}\n\ninline bool //\nwuffs_base__range_ii_u64::contains(uint64_t x) {\n return wuffs_base__range_ii_u64__contains(this, x);\n}\n\ninline bool //\nwuffs_base__range_ii_u64::contains_range(wuffs_base__range_ii_u64 s) {\n return wuffs_base__range_ii_u64__contains_range(this, s" +
+ ");\n}\n\n#endif // __cplusplus\n\n" +
"" +
- "// --------\n\ntypedef struct wuffs_base__range_ie_u64__struct {\n uint64_t min_incl;\n uint64_t max_excl;\n\n#ifdef __cplusplus\n inline bool is_empty();\n inline bool equals(wuffs_base__range_ie_u64__struct s);\n inline bool contains(uint64_t x);\n inline wuffs_base__range_ie_u64__struct intersect(\n wuffs_base__range_ie_u64__struct s);\n inline wuffs_base__range_ie_u64__struct unite(\n wuffs_base__range_ie_u64__struct s);\n inline uint64_t length();\n#endif // __cplusplus\n\n} wuffs_base__range_ie_u64;\n\nstatic inline bool //\nwuffs_base__range_ie_u64__is_empty(wuffs_base__range_ie_u64* r) {\n return r->min_incl >= r->max_excl;\n}\n\nstatic inline bool //\nwuffs_base__range_ie_u64__equals(wuffs_base__range_ie_u64* r,\n wuffs_base__range_ie_u64 s) {\n return (r->min_incl == s.min_incl && r->max_excl == s.max_excl) ||\n (wuffs_base__range_ie_u64__is_empty(r) &&\n wuffs_base__range_ie_u64__is_empty(&s));\n}\n\nstatic inline bool //\nwuffs_base__range_ie_u64__contains(w" +
- "uffs_base__range_ie_u64* r, uint64_t x) {\n return (r->min_incl <= x) && (x < r->max_excl);\n}\n\nstatic inline wuffs_base__range_ie_u64 //\nwuffs_base__range_ie_u64__intersect(wuffs_base__range_ie_u64* r,\n wuffs_base__range_ie_u64 s) {\n wuffs_base__range_ie_u64 t;\n t.min_incl = wuffs_base__u64__max(r->min_incl, s.min_incl);\n t.max_excl = wuffs_base__u64__min(r->max_excl, s.max_excl);\n return t;\n}\n\nstatic inline wuffs_base__range_ie_u64 //\nwuffs_base__range_ie_u64__unite(wuffs_base__range_ie_u64* r,\n wuffs_base__range_ie_u64 s) {\n if (wuffs_base__range_ie_u64__is_empty(r)) {\n return s;\n }\n if (wuffs_base__range_ie_u64__is_empty(&s)) {\n return *r;\n }\n wuffs_base__range_ie_u64 t;\n t.min_incl = wuffs_base__u64__min(r->min_incl, s.min_incl);\n t.max_excl = wuffs_base__u64__max(r->max_excl, s.max_excl);\n return t;\n}\n\nstatic inline uint64_t //\nwuffs_base__range_ie_u64__length(wuffs_base__range_ie_u64* r) {\n return wuffs_base__u64__sa" +
- "t_sub(r->max_excl, r->min_incl);\n}\n\n#ifdef __cplusplus\n\ninline bool //\nwuffs_base__range_ie_u64::is_empty() {\n return wuffs_base__range_ie_u64__is_empty(this);\n}\n\ninline bool //\nwuffs_base__range_ie_u64::equals(wuffs_base__range_ie_u64 s) {\n return wuffs_base__range_ie_u64__equals(this, s);\n}\n\ninline bool //\nwuffs_base__range_ie_u64::contains(uint64_t x) {\n return wuffs_base__range_ie_u64__contains(this, x);\n}\n\ninline wuffs_base__range_ie_u64 //\nwuffs_base__range_ie_u64::intersect(wuffs_base__range_ie_u64 s) {\n return wuffs_base__range_ie_u64__intersect(this, s);\n}\n\ninline wuffs_base__range_ie_u64 //\nwuffs_base__range_ie_u64::unite(wuffs_base__range_ie_u64 s) {\n return wuffs_base__range_ie_u64__unite(this, s);\n}\n\ninline uint64_t //\nwuffs_base__range_ie_u64::length() {\n return wuffs_base__range_ie_u64__length(this);\n}\n\n#endif // __cplusplus\n\n" +
+ "// --------\n\ntypedef struct wuffs_base__range_ie_u64__struct {\n uint64_t min_incl;\n uint64_t max_excl;\n\n#ifdef __cplusplus\n inline bool is_empty();\n inline bool equals(wuffs_base__range_ie_u64__struct s);\n inline wuffs_base__range_ie_u64__struct intersect(\n wuffs_base__range_ie_u64__struct s);\n inline wuffs_base__range_ie_u64__struct unite(\n wuffs_base__range_ie_u64__struct s);\n inline bool contains(uint64_t x);\n inline bool contains_range(wuffs_base__range_ie_u64__struct s);\n inline uint64_t length();\n#endif // __cplusplus\n\n} wuffs_base__range_ie_u64;\n\nstatic inline bool //\nwuffs_base__range_ie_u64__is_empty(wuffs_base__range_ie_u64* r) {\n return r->min_incl >= r->max_excl;\n}\n\nstatic inline bool //\nwuffs_base__range_ie_u64__equals(wuffs_base__range_ie_u64* r,\n wuffs_base__range_ie_u64 s) {\n return (r->min_incl == s.min_incl && r->max_excl == s.max_excl) ||\n (wuffs_base__range_ie_u64__is_empty(r) &&\n wuffs_base__range_ie_u64__is_empty(&s" +
+ "));\n}\n\nstatic inline wuffs_base__range_ie_u64 //\nwuffs_base__range_ie_u64__intersect(wuffs_base__range_ie_u64* r,\n wuffs_base__range_ie_u64 s) {\n wuffs_base__range_ie_u64 t;\n t.min_incl = wuffs_base__u64__max(r->min_incl, s.min_incl);\n t.max_excl = wuffs_base__u64__min(r->max_excl, s.max_excl);\n return t;\n}\n\nstatic inline wuffs_base__range_ie_u64 //\nwuffs_base__range_ie_u64__unite(wuffs_base__range_ie_u64* r,\n wuffs_base__range_ie_u64 s) {\n if (wuffs_base__range_ie_u64__is_empty(r)) {\n return s;\n }\n if (wuffs_base__range_ie_u64__is_empty(&s)) {\n return *r;\n }\n wuffs_base__range_ie_u64 t;\n t.min_incl = wuffs_base__u64__min(r->min_incl, s.min_incl);\n t.max_excl = wuffs_base__u64__max(r->max_excl, s.max_excl);\n return t;\n}\n\nstatic inline bool //\nwuffs_base__range_ie_u64__contains(wuffs_base__range_ie_u64* r, uint64_t x) {\n return (r->min_incl <= x) && (x < r->max_excl);\n}\n\nstatic inline bool //\nwuffs_base__range_ie_u64__cont" +
+ "ains_range(wuffs_base__range_ie_u64* r,\n wuffs_base__range_ie_u64 s) {\n return wuffs_base__range_ie_u64__equals(\n &s, wuffs_base__range_ie_u64__intersect(r, s));\n}\n\nstatic inline uint64_t //\nwuffs_base__range_ie_u64__length(wuffs_base__range_ie_u64* r) {\n return wuffs_base__u64__sat_sub(r->max_excl, r->min_incl);\n}\n\n#ifdef __cplusplus\n\ninline bool //\nwuffs_base__range_ie_u64::is_empty() {\n return wuffs_base__range_ie_u64__is_empty(this);\n}\n\ninline bool //\nwuffs_base__range_ie_u64::equals(wuffs_base__range_ie_u64 s) {\n return wuffs_base__range_ie_u64__equals(this, s);\n}\n\ninline wuffs_base__range_ie_u64 //\nwuffs_base__range_ie_u64::intersect(wuffs_base__range_ie_u64 s) {\n return wuffs_base__range_ie_u64__intersect(this, s);\n}\n\ninline wuffs_base__range_ie_u64 //\nwuffs_base__range_ie_u64::unite(wuffs_base__range_ie_u64 s) {\n return wuffs_base__range_ie_u64__unite(this, s);\n}\n\ninline bool //\nwuffs_base__range_ie_u64::contains(uint64_t x) {\n return wuffs_bas" +
+ "e__range_ie_u64__contains(this, x);\n}\n\ninline bool //\nwuffs_base__range_ie_u64::contains_range(wuffs_base__range_ie_u64 s) {\n return wuffs_base__range_ie_u64__contains_range(this, s);\n}\n\ninline uint64_t //\nwuffs_base__range_ie_u64::length() {\n return wuffs_base__range_ie_u64__length(this);\n}\n\n#endif // __cplusplus\n\n" +
"" +
- "// --------\n\n// wuffs_base__rect_ii_u32 is a rectangle (a 2-dimensional range) on the\n// integer grid. The \"ii\" means that the bounds are inclusive on the low end\n// and inclusive on the high end. It contains all points (x, y) such that\n// ((min_incl_x <= x) && (x <= max_incl_x)) and likewise for y.\n//\n// It is valid for min > max, in which case the rectangle is empty. There are\n// multiple representations of an empty rectangle.\n//\n// The X and Y axes increase right and down.\ntypedef struct wuffs_base__rect_ii_u32__struct {\n uint32_t min_incl_x;\n uint32_t min_incl_y;\n uint32_t max_incl_x;\n uint32_t max_incl_y;\n\n#ifdef __cplusplus\n inline bool is_empty();\n inline bool equals(wuffs_base__rect_ii_u32__struct s);\n inline bool contains(uint32_t x, uint32_t y);\n inline wuffs_base__rect_ii_u32__struct intersect(\n wuffs_base__rect_ii_u32__struct s);\n inline wuffs_base__rect_ii_u32__struct unite(\n wuffs_base__rect_ii_u32__struct s);\n#endif // __cplusplus\n\n} wuffs_base__rect_ii_u32;\n\nstatic inline b" +
- "ool //\nwuffs_base__rect_ii_u32__is_empty(wuffs_base__rect_ii_u32* r) {\n return (r->min_incl_x > r->max_incl_x) || (r->min_incl_y > r->max_incl_y);\n}\n\nstatic inline bool //\nwuffs_base__rect_ii_u32__equals(wuffs_base__rect_ii_u32* r,\n wuffs_base__rect_ii_u32 s) {\n return (r->min_incl_x == s.min_incl_x && r->min_incl_y == s.min_incl_y &&\n r->max_incl_x == s.max_incl_x && r->max_incl_y == s.max_incl_y) ||\n (wuffs_base__rect_ii_u32__is_empty(r) &&\n wuffs_base__rect_ii_u32__is_empty(&s));\n}\n\nstatic inline bool //\nwuffs_base__rect_ii_u32__contains(wuffs_base__rect_ii_u32* r,\n uint32_t x,\n uint32_t y) {\n return (r->min_incl_x <= x) && (x <= r->max_incl_x) && (r->min_incl_y <= y) &&\n (y <= r->max_incl_y);\n}\n\nstatic inline wuffs_base__rect_ii_u32 //\nwuffs_base__rect_ii_u32__intersect(wuffs_base__rect_ii_u32* r,\n wuffs_base__rect_ii_u32 s) {\n wuffs_b" +
- "ase__rect_ii_u32 t;\n t.min_incl_x = wuffs_base__u32__max(r->min_incl_x, s.min_incl_x);\n t.min_incl_y = wuffs_base__u32__max(r->min_incl_y, s.min_incl_y);\n t.max_incl_x = wuffs_base__u32__min(r->max_incl_x, s.max_incl_x);\n t.max_incl_y = wuffs_base__u32__min(r->max_incl_y, s.max_incl_y);\n return t;\n}\n\nstatic inline wuffs_base__rect_ii_u32 //\nwuffs_base__rect_ii_u32__unite(wuffs_base__rect_ii_u32* r,\n wuffs_base__rect_ii_u32 s) {\n if (wuffs_base__rect_ii_u32__is_empty(r)) {\n return s;\n }\n if (wuffs_base__rect_ii_u32__is_empty(&s)) {\n return *r;\n }\n wuffs_base__rect_ii_u32 t;\n t.min_incl_x = wuffs_base__u32__min(r->min_incl_x, s.min_incl_x);\n t.min_incl_y = wuffs_base__u32__min(r->min_incl_y, s.min_incl_y);\n t.max_incl_x = wuffs_base__u32__max(r->max_incl_x, s.max_incl_x);\n t.max_incl_y = wuffs_base__u32__max(r->max_incl_y, s.max_incl_y);\n return t;\n}\n\n#ifdef __cplusplus\n\ninline bool //\nwuffs_base__rect_ii_u32::is_empty() {\n return wuffs_base__rect_ii_u32__is" +
- "_empty(this);\n}\n\ninline bool //\nwuffs_base__rect_ii_u32::equals(wuffs_base__rect_ii_u32 s) {\n return wuffs_base__rect_ii_u32__equals(this, s);\n}\n\ninline bool //\nwuffs_base__rect_ii_u32::contains(uint32_t x, uint32_t y) {\n return wuffs_base__rect_ii_u32__contains(this, x, y);\n}\n\ninline wuffs_base__rect_ii_u32 //\nwuffs_base__rect_ii_u32::intersect(wuffs_base__rect_ii_u32 s) {\n return wuffs_base__rect_ii_u32__intersect(this, s);\n}\n\ninline wuffs_base__rect_ii_u32 //\nwuffs_base__rect_ii_u32::unite(wuffs_base__rect_ii_u32 s) {\n return wuffs_base__rect_ii_u32__unite(this, s);\n}\n\n#endif // __cplusplus\n\n" +
+ "// --------\n\n// wuffs_base__rect_ii_u32 is a rectangle (a 2-dimensional range) on the\n// integer grid. The \"ii\" means that the bounds are inclusive on the low end\n// and inclusive on the high end. It contains all points (x, y) such that\n// ((min_incl_x <= x) && (x <= max_incl_x)) and likewise for y.\n//\n// It is valid for min > max, in which case the rectangle is empty. There are\n// multiple representations of an empty rectangle.\n//\n// The X and Y axes increase right and down.\ntypedef struct wuffs_base__rect_ii_u32__struct {\n uint32_t min_incl_x;\n uint32_t min_incl_y;\n uint32_t max_incl_x;\n uint32_t max_incl_y;\n\n#ifdef __cplusplus\n inline bool is_empty();\n inline bool equals(wuffs_base__rect_ii_u32__struct s);\n inline wuffs_base__rect_ii_u32__struct intersect(\n wuffs_base__rect_ii_u32__struct s);\n inline wuffs_base__rect_ii_u32__struct unite(\n wuffs_base__rect_ii_u32__struct s);\n inline bool contains(uint32_t x, uint32_t y);\n inline bool contains_rect(wuffs_base__rect_ii_u32__struct s);\n#en" +
+ "dif // __cplusplus\n\n} wuffs_base__rect_ii_u32;\n\nstatic inline bool //\nwuffs_base__rect_ii_u32__is_empty(wuffs_base__rect_ii_u32* r) {\n return (r->min_incl_x > r->max_incl_x) || (r->min_incl_y > r->max_incl_y);\n}\n\nstatic inline bool //\nwuffs_base__rect_ii_u32__equals(wuffs_base__rect_ii_u32* r,\n wuffs_base__rect_ii_u32 s) {\n return (r->min_incl_x == s.min_incl_x && r->min_incl_y == s.min_incl_y &&\n r->max_incl_x == s.max_incl_x && r->max_incl_y == s.max_incl_y) ||\n (wuffs_base__rect_ii_u32__is_empty(r) &&\n wuffs_base__rect_ii_u32__is_empty(&s));\n}\n\nstatic inline wuffs_base__rect_ii_u32 //\nwuffs_base__rect_ii_u32__intersect(wuffs_base__rect_ii_u32* r,\n wuffs_base__rect_ii_u32 s) {\n wuffs_base__rect_ii_u32 t;\n t.min_incl_x = wuffs_base__u32__max(r->min_incl_x, s.min_incl_x);\n t.min_incl_y = wuffs_base__u32__max(r->min_incl_y, s.min_incl_y);\n t.max_incl_x = wuffs_base__u32__min(r->max_incl_x, s.max_incl_x);\n t.ma" +
+ "x_incl_y = wuffs_base__u32__min(r->max_incl_y, s.max_incl_y);\n return t;\n}\n\nstatic inline wuffs_base__rect_ii_u32 //\nwuffs_base__rect_ii_u32__unite(wuffs_base__rect_ii_u32* r,\n wuffs_base__rect_ii_u32 s) {\n if (wuffs_base__rect_ii_u32__is_empty(r)) {\n return s;\n }\n if (wuffs_base__rect_ii_u32__is_empty(&s)) {\n return *r;\n }\n wuffs_base__rect_ii_u32 t;\n t.min_incl_x = wuffs_base__u32__min(r->min_incl_x, s.min_incl_x);\n t.min_incl_y = wuffs_base__u32__min(r->min_incl_y, s.min_incl_y);\n t.max_incl_x = wuffs_base__u32__max(r->max_incl_x, s.max_incl_x);\n t.max_incl_y = wuffs_base__u32__max(r->max_incl_y, s.max_incl_y);\n return t;\n}\n\nstatic inline bool //\nwuffs_base__rect_ii_u32__contains(wuffs_base__rect_ii_u32* r,\n uint32_t x,\n uint32_t y) {\n return (r->min_incl_x <= x) && (x <= r->max_incl_x) && (r->min_incl_y <= y) &&\n (y <= r->max_incl_y);\n}\n\nstatic inline bool //\nwuffs_base__rect_ii_u32" +
+ "__contains_rect(wuffs_base__rect_ii_u32* r,\n wuffs_base__rect_ii_u32 s) {\n return wuffs_base__rect_ii_u32__equals(\n &s, wuffs_base__rect_ii_u32__intersect(r, s));\n}\n\n#ifdef __cplusplus\n\ninline bool //\nwuffs_base__rect_ii_u32::is_empty() {\n return wuffs_base__rect_ii_u32__is_empty(this);\n}\n\ninline bool //\nwuffs_base__rect_ii_u32::equals(wuffs_base__rect_ii_u32 s) {\n return wuffs_base__rect_ii_u32__equals(this, s);\n}\n\ninline wuffs_base__rect_ii_u32 //\nwuffs_base__rect_ii_u32::intersect(wuffs_base__rect_ii_u32 s) {\n return wuffs_base__rect_ii_u32__intersect(this, s);\n}\n\ninline wuffs_base__rect_ii_u32 //\nwuffs_base__rect_ii_u32::unite(wuffs_base__rect_ii_u32 s) {\n return wuffs_base__rect_ii_u32__unite(this, s);\n}\n\ninline bool //\nwuffs_base__rect_ii_u32::contains(uint32_t x, uint32_t y) {\n return wuffs_base__rect_ii_u32__contains(this, x, y);\n}\n\ninline bool //\nwuffs_base__rect_ii_u32::contains_rect(wuffs_base__rect_ii_u32 s) {\n return wuffs_base__rect_ii_u32_" +
+ "_contains_rect(this, s);\n}\n\n#endif // __cplusplus\n\n" +
"" +
- "// --------\n\n// wuffs_base__rect_ie_u32 is a rectangle (a 2-dimensional range) on the\n// integer grid. The \"ie\" means that the bounds are inclusive on the low end\n// and exclusive on the high end. It contains all points (x, y) such that\n// ((min_incl_x <= x) && (x < max_excl_x)) and likewise for y.\n//\n// It is valid for min >= max, in which case the rectangle is empty. There are\n// multiple representations of an empty rectangle, including a value with all\n// fields zero.\n//\n// The X and Y axes increase right and down.\ntypedef struct wuffs_base__rect_ie_u32__struct {\n uint32_t min_incl_x;\n uint32_t min_incl_y;\n uint32_t max_excl_x;\n uint32_t max_excl_y;\n\n#ifdef __cplusplus\n inline bool is_empty();\n inline bool equals(wuffs_base__rect_ie_u32__struct s);\n inline bool contains(uint32_t x, uint32_t y);\n inline wuffs_base__rect_ie_u32__struct intersect(\n wuffs_base__rect_ie_u32__struct s);\n inline wuffs_base__rect_ie_u32__struct unite(\n wuffs_base__rect_ie_u32__struct s);\n inline uint32_t width(" +
- ");\n inline uint32_t height();\n#endif // __cplusplus\n\n} wuffs_base__rect_ie_u32;\n\nstatic inline bool //\nwuffs_base__rect_ie_u32__is_empty(wuffs_base__rect_ie_u32* r) {\n return (r->min_incl_x >= r->max_excl_x) || (r->min_incl_y >= r->max_excl_y);\n}\n\nstatic inline bool //\nwuffs_base__rect_ie_u32__equals(wuffs_base__rect_ie_u32* r,\n wuffs_base__rect_ie_u32 s) {\n return (r->min_incl_x == s.min_incl_x && r->min_incl_y == s.min_incl_y &&\n r->max_excl_x == s.max_excl_x && r->max_excl_y == s.max_excl_y) ||\n (wuffs_base__rect_ie_u32__is_empty(r) &&\n wuffs_base__rect_ie_u32__is_empty(&s));\n}\n\nstatic inline bool //\nwuffs_base__rect_ie_u32__contains(wuffs_base__rect_ie_u32* r,\n uint32_t x,\n uint32_t y) {\n return (r->min_incl_x <= x) && (x < r->max_excl_x) && (r->min_incl_y <= y) &&\n (y < r->max_excl_y);\n}\n\nstatic inline wuffs_base__rect_ie_u32 //\nwuffs_base__rect_ie_u32__intersect(wuf" +
- "fs_base__rect_ie_u32* r,\n wuffs_base__rect_ie_u32 s) {\n wuffs_base__rect_ie_u32 t;\n t.min_incl_x = wuffs_base__u32__max(r->min_incl_x, s.min_incl_x);\n t.min_incl_y = wuffs_base__u32__max(r->min_incl_y, s.min_incl_y);\n t.max_excl_x = wuffs_base__u32__min(r->max_excl_x, s.max_excl_x);\n t.max_excl_y = wuffs_base__u32__min(r->max_excl_y, s.max_excl_y);\n return t;\n}\n\nstatic inline wuffs_base__rect_ie_u32 //\nwuffs_base__rect_ie_u32__unite(wuffs_base__rect_ie_u32* r,\n wuffs_base__rect_ie_u32 s) {\n if (wuffs_base__rect_ie_u32__is_empty(r)) {\n return s;\n }\n if (wuffs_base__rect_ie_u32__is_empty(&s)) {\n return *r;\n }\n wuffs_base__rect_ie_u32 t;\n t.min_incl_x = wuffs_base__u32__min(r->min_incl_x, s.min_incl_x);\n t.min_incl_y = wuffs_base__u32__min(r->min_incl_y, s.min_incl_y);\n t.max_excl_x = wuffs_base__u32__max(r->max_excl_x, s.max_excl_x);\n t.max_excl_y = wuffs_base__u32__max(r->max_excl_y, s.max_excl_y);\n return t;\n}\n\nstatic inlin" +
- "e uint32_t //\nwuffs_base__rect_ie_u32__width(wuffs_base__rect_ie_u32* r) {\n return wuffs_base__u32__sat_sub(r->max_excl_x, r->min_incl_x);\n}\n\nstatic inline uint32_t //\nwuffs_base__rect_ie_u32__height(wuffs_base__rect_ie_u32* r) {\n return wuffs_base__u32__sat_sub(r->max_excl_y, r->min_incl_y);\n}\n\n#ifdef __cplusplus\n\ninline bool //\nwuffs_base__rect_ie_u32::is_empty() {\n return wuffs_base__rect_ie_u32__is_empty(this);\n}\n\ninline bool //\nwuffs_base__rect_ie_u32::equals(wuffs_base__rect_ie_u32 s) {\n return wuffs_base__rect_ie_u32__equals(this, s);\n}\n\ninline bool //\nwuffs_base__rect_ie_u32::contains(uint32_t x, uint32_t y) {\n return wuffs_base__rect_ie_u32__contains(this, x, y);\n}\n\ninline wuffs_base__rect_ie_u32 //\nwuffs_base__rect_ie_u32::intersect(wuffs_base__rect_ie_u32 s) {\n return wuffs_base__rect_ie_u32__intersect(this, s);\n}\n\ninline wuffs_base__rect_ie_u32 //\nwuffs_base__rect_ie_u32::unite(wuffs_base__rect_ie_u32 s) {\n return wuffs_base__rect_ie_u32__unite(this, s);\n}\n\ninline uint32_t //\nwuffs_" +
- "base__rect_ie_u32::width() {\n return wuffs_base__rect_ie_u32__width(this);\n}\n\ninline uint32_t //\nwuffs_base__rect_ie_u32::height() {\n return wuffs_base__rect_ie_u32__height(this);\n}\n\n#endif // __cplusplus\n\n" +
+ "// --------\n\n// wuffs_base__rect_ie_u32 is a rectangle (a 2-dimensional range) on the\n// integer grid. The \"ie\" means that the bounds are inclusive on the low end\n// and exclusive on the high end. It contains all points (x, y) such that\n// ((min_incl_x <= x) && (x < max_excl_x)) and likewise for y.\n//\n// It is valid for min >= max, in which case the rectangle is empty. There are\n// multiple representations of an empty rectangle, including a value with all\n// fields zero.\n//\n// The X and Y axes increase right and down.\ntypedef struct wuffs_base__rect_ie_u32__struct {\n uint32_t min_incl_x;\n uint32_t min_incl_y;\n uint32_t max_excl_x;\n uint32_t max_excl_y;\n\n#ifdef __cplusplus\n inline bool is_empty();\n inline bool equals(wuffs_base__rect_ie_u32__struct s);\n inline wuffs_base__rect_ie_u32__struct intersect(\n wuffs_base__rect_ie_u32__struct s);\n inline wuffs_base__rect_ie_u32__struct unite(\n wuffs_base__rect_ie_u32__struct s);\n inline bool contains(uint32_t x, uint32_t y);\n inline bool contains_r" +
+ "ect(wuffs_base__rect_ie_u32__struct s);\n inline uint32_t width();\n inline uint32_t height();\n#endif // __cplusplus\n\n} wuffs_base__rect_ie_u32;\n\nstatic inline bool //\nwuffs_base__rect_ie_u32__is_empty(wuffs_base__rect_ie_u32* r) {\n return (r->min_incl_x >= r->max_excl_x) || (r->min_incl_y >= r->max_excl_y);\n}\n\nstatic inline bool //\nwuffs_base__rect_ie_u32__equals(wuffs_base__rect_ie_u32* r,\n wuffs_base__rect_ie_u32 s) {\n return (r->min_incl_x == s.min_incl_x && r->min_incl_y == s.min_incl_y &&\n r->max_excl_x == s.max_excl_x && r->max_excl_y == s.max_excl_y) ||\n (wuffs_base__rect_ie_u32__is_empty(r) &&\n wuffs_base__rect_ie_u32__is_empty(&s));\n}\n\nstatic inline wuffs_base__rect_ie_u32 //\nwuffs_base__rect_ie_u32__intersect(wuffs_base__rect_ie_u32* r,\n wuffs_base__rect_ie_u32 s) {\n wuffs_base__rect_ie_u32 t;\n t.min_incl_x = wuffs_base__u32__max(r->min_incl_x, s.min_incl_x);\n t.min_incl_y = wuffs_base__u32__max(r->m" +
+ "in_incl_y, s.min_incl_y);\n t.max_excl_x = wuffs_base__u32__min(r->max_excl_x, s.max_excl_x);\n t.max_excl_y = wuffs_base__u32__min(r->max_excl_y, s.max_excl_y);\n return t;\n}\n\nstatic inline wuffs_base__rect_ie_u32 //\nwuffs_base__rect_ie_u32__unite(wuffs_base__rect_ie_u32* r,\n wuffs_base__rect_ie_u32 s) {\n if (wuffs_base__rect_ie_u32__is_empty(r)) {\n return s;\n }\n if (wuffs_base__rect_ie_u32__is_empty(&s)) {\n return *r;\n }\n wuffs_base__rect_ie_u32 t;\n t.min_incl_x = wuffs_base__u32__min(r->min_incl_x, s.min_incl_x);\n t.min_incl_y = wuffs_base__u32__min(r->min_incl_y, s.min_incl_y);\n t.max_excl_x = wuffs_base__u32__max(r->max_excl_x, s.max_excl_x);\n t.max_excl_y = wuffs_base__u32__max(r->max_excl_y, s.max_excl_y);\n return t;\n}\n\nstatic inline bool //\nwuffs_base__rect_ie_u32__contains(wuffs_base__rect_ie_u32* r,\n uint32_t x,\n uint32_t y) {\n return (r->min_incl_x <= x) && (x < r->max_excl_x) && (r->m" +
+ "in_incl_y <= y) &&\n (y < r->max_excl_y);\n}\n\nstatic inline bool //\nwuffs_base__rect_ie_u32__contains_rect(wuffs_base__rect_ie_u32* r,\n wuffs_base__rect_ie_u32 s) {\n return wuffs_base__rect_ie_u32__equals(\n &s, wuffs_base__rect_ie_u32__intersect(r, s));\n}\n\nstatic inline uint32_t //\nwuffs_base__rect_ie_u32__width(wuffs_base__rect_ie_u32* r) {\n return wuffs_base__u32__sat_sub(r->max_excl_x, r->min_incl_x);\n}\n\nstatic inline uint32_t //\nwuffs_base__rect_ie_u32__height(wuffs_base__rect_ie_u32* r) {\n return wuffs_base__u32__sat_sub(r->max_excl_y, r->min_incl_y);\n}\n\n#ifdef __cplusplus\n\ninline bool //\nwuffs_base__rect_ie_u32::is_empty() {\n return wuffs_base__rect_ie_u32__is_empty(this);\n}\n\ninline bool //\nwuffs_base__rect_ie_u32::equals(wuffs_base__rect_ie_u32 s) {\n return wuffs_base__rect_ie_u32__equals(this, s);\n}\n\ninline wuffs_base__rect_ie_u32 //\nwuffs_base__rect_ie_u32::intersect(wuffs_base__rect_ie_u32 s) {\n return wuffs_base__rect_ie_u32__intersect(th" +
+ "is, s);\n}\n\ninline wuffs_base__rect_ie_u32 //\nwuffs_base__rect_ie_u32::unite(wuffs_base__rect_ie_u32 s) {\n return wuffs_base__rect_ie_u32__unite(this, s);\n}\n\ninline bool //\nwuffs_base__rect_ie_u32::contains(uint32_t x, uint32_t y) {\n return wuffs_base__rect_ie_u32__contains(this, x, y);\n}\n\ninline bool //\nwuffs_base__rect_ie_u32::contains_rect(wuffs_base__rect_ie_u32 s) {\n return wuffs_base__rect_ie_u32__contains_rect(this, s);\n}\n\ninline uint32_t //\nwuffs_base__rect_ie_u32::width() {\n return wuffs_base__rect_ie_u32__width(this);\n}\n\ninline uint32_t //\nwuffs_base__rect_ie_u32::height() {\n return wuffs_base__rect_ie_u32__height(this);\n}\n\n#endif // __cplusplus\n\n" +
"" +
- "// ---------------- Bureaucracy re -Wunused-function\n\nstatic inline void\nwuffs_base__acknowledge_potentially_unused_functions__range_public()\n WUFFS_BASE__POTENTIALLY_UNUSED;\n\nstatic inline void\nwuffs_base__acknowledge_potentially_unused_functions__range_public() {\n (void)(wuffs_base__range_ie_u32__contains);\n (void)(wuffs_base__range_ie_u32__equals);\n (void)(wuffs_base__range_ie_u32__intersect);\n (void)(wuffs_base__range_ie_u32__is_empty);\n (void)(wuffs_base__range_ie_u32__length);\n (void)(wuffs_base__range_ie_u32__unite);\n (void)(wuffs_base__range_ie_u64__contains);\n (void)(wuffs_base__range_ie_u64__equals);\n (void)(wuffs_base__range_ie_u64__intersect);\n (void)(wuffs_base__range_ie_u64__is_empty);\n (void)(wuffs_base__range_ie_u64__length);\n (void)(wuffs_base__range_ie_u64__unite);\n (void)(wuffs_base__range_ii_u32__contains);\n (void)(wuffs_base__range_ii_u32__equals);\n (void)(wuffs_base__range_ii_u32__intersect);\n (void)(wuffs_base__range_ii_u32__is_empty);\n (void)(wuffs_base__range_ii_u3" +
- "2__unite);\n (void)(wuffs_base__range_ii_u64__contains);\n (void)(wuffs_base__range_ii_u64__equals);\n (void)(wuffs_base__range_ii_u64__intersect);\n (void)(wuffs_base__range_ii_u64__is_empty);\n (void)(wuffs_base__range_ii_u64__unite);\n (void)(wuffs_base__rect_ie_u32__contains);\n (void)(wuffs_base__rect_ie_u32__equals);\n (void)(wuffs_base__rect_ie_u32__height);\n (void)(wuffs_base__rect_ie_u32__intersect);\n (void)(wuffs_base__rect_ie_u32__is_empty);\n (void)(wuffs_base__rect_ie_u32__unite);\n (void)(wuffs_base__rect_ie_u32__width);\n (void)(wuffs_base__rect_ii_u32__contains);\n (void)(wuffs_base__rect_ii_u32__equals);\n (void)(wuffs_base__rect_ii_u32__intersect);\n (void)(wuffs_base__rect_ii_u32__is_empty);\n (void)(wuffs_base__rect_ii_u32__unite);\n}\n" +
+ "// ---------------- Bureaucracy re -Wunused-function\n\nstatic inline void\nwuffs_base__acknowledge_potentially_unused_functions__range_public()\n WUFFS_BASE__POTENTIALLY_UNUSED;\n\nstatic inline void\nwuffs_base__acknowledge_potentially_unused_functions__range_public() {\n (void)(wuffs_base__range_ie_u32__contains);\n (void)(wuffs_base__range_ie_u32__contains_range);\n (void)(wuffs_base__range_ie_u32__equals);\n (void)(wuffs_base__range_ie_u32__intersect);\n (void)(wuffs_base__range_ie_u32__is_empty);\n (void)(wuffs_base__range_ie_u32__length);\n (void)(wuffs_base__range_ie_u32__unite);\n (void)(wuffs_base__range_ie_u64__contains);\n (void)(wuffs_base__range_ie_u64__contains_range);\n (void)(wuffs_base__range_ie_u64__equals);\n (void)(wuffs_base__range_ie_u64__intersect);\n (void)(wuffs_base__range_ie_u64__is_empty);\n (void)(wuffs_base__range_ie_u64__length);\n (void)(wuffs_base__range_ie_u64__unite);\n (void)(wuffs_base__range_ii_u32__contains);\n (void)(wuffs_base__range_ii_u32__contains_range);\n (void)(wuff" +
+ "s_base__range_ii_u32__equals);\n (void)(wuffs_base__range_ii_u32__intersect);\n (void)(wuffs_base__range_ii_u32__is_empty);\n (void)(wuffs_base__range_ii_u32__unite);\n (void)(wuffs_base__range_ii_u64__contains);\n (void)(wuffs_base__range_ii_u64__contains_range);\n (void)(wuffs_base__range_ii_u64__equals);\n (void)(wuffs_base__range_ii_u64__intersect);\n (void)(wuffs_base__range_ii_u64__is_empty);\n (void)(wuffs_base__range_ii_u64__unite);\n (void)(wuffs_base__rect_ie_u32__contains);\n (void)(wuffs_base__rect_ie_u32__contains_rect);\n (void)(wuffs_base__rect_ie_u32__equals);\n (void)(wuffs_base__rect_ie_u32__height);\n (void)(wuffs_base__rect_ie_u32__intersect);\n (void)(wuffs_base__rect_ie_u32__is_empty);\n (void)(wuffs_base__rect_ie_u32__unite);\n (void)(wuffs_base__rect_ie_u32__width);\n (void)(wuffs_base__rect_ii_u32__contains);\n (void)(wuffs_base__rect_ie_u32__contains_rect);\n (void)(wuffs_base__rect_ii_u32__equals);\n (void)(wuffs_base__rect_ii_u32__intersect);\n (void)(wuffs_base__rect_ii_u32__is_em" +
+ "pty);\n (void)(wuffs_base__rect_ii_u32__unite);\n}\n" +
""
const baseCopyright = "" +
diff --git a/release/c/wuffs-unsupported-snapshot.c b/release/c/wuffs-unsupported-snapshot.c
index 41b1667..764ec51 100644
--- a/release/c/wuffs-unsupported-snapshot.c
+++ b/release/c/wuffs-unsupported-snapshot.c
@@ -455,11 +455,12 @@
#ifdef __cplusplus
inline bool is_empty();
inline bool equals(wuffs_base__range_ii_u32__struct s);
- inline bool contains(uint32_t x);
inline wuffs_base__range_ii_u32__struct intersect(
wuffs_base__range_ii_u32__struct s);
inline wuffs_base__range_ii_u32__struct unite(
wuffs_base__range_ii_u32__struct s);
+ inline bool contains(uint32_t x);
+ inline bool contains_range(wuffs_base__range_ii_u32__struct s);
#endif // __cplusplus
} wuffs_base__range_ii_u32;
@@ -477,11 +478,6 @@
wuffs_base__range_ii_u32__is_empty(&s));
}
-static inline bool //
-wuffs_base__range_ii_u32__contains(wuffs_base__range_ii_u32* r, uint32_t x) {
- return (r->min_incl <= x) && (x <= r->max_incl);
-}
-
static inline wuffs_base__range_ii_u32 //
wuffs_base__range_ii_u32__intersect(wuffs_base__range_ii_u32* r,
wuffs_base__range_ii_u32 s) {
@@ -506,6 +502,18 @@
return t;
}
+static inline bool //
+wuffs_base__range_ii_u32__contains(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(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 //
@@ -518,11 +526,6 @@
return wuffs_base__range_ii_u32__equals(this, s);
}
-inline bool //
-wuffs_base__range_ii_u32::contains(uint32_t x) {
- return wuffs_base__range_ii_u32__contains(this, x);
-}
-
inline wuffs_base__range_ii_u32 //
wuffs_base__range_ii_u32::intersect(wuffs_base__range_ii_u32 s) {
return wuffs_base__range_ii_u32__intersect(this, s);
@@ -533,6 +536,16 @@
return wuffs_base__range_ii_u32__unite(this, s);
}
+inline bool //
+wuffs_base__range_ii_u32::contains(uint32_t x) {
+ return wuffs_base__range_ii_u32__contains(this, x);
+}
+
+inline bool //
+wuffs_base__range_ii_u32::contains_range(wuffs_base__range_ii_u32 s) {
+ return wuffs_base__range_ii_u32__contains_range(this, s);
+}
+
#endif // __cplusplus
// --------
@@ -544,11 +557,12 @@
#ifdef __cplusplus
inline bool is_empty();
inline bool equals(wuffs_base__range_ie_u32__struct s);
- inline bool contains(uint32_t x);
inline wuffs_base__range_ie_u32__struct intersect(
wuffs_base__range_ie_u32__struct s);
inline wuffs_base__range_ie_u32__struct unite(
wuffs_base__range_ie_u32__struct s);
+ inline bool contains(uint32_t x);
+ inline bool contains_range(wuffs_base__range_ie_u32__struct s);
inline uint32_t length();
#endif // __cplusplus
@@ -567,11 +581,6 @@
wuffs_base__range_ie_u32__is_empty(&s));
}
-static inline bool //
-wuffs_base__range_ie_u32__contains(wuffs_base__range_ie_u32* r, uint32_t x) {
- return (r->min_incl <= x) && (x < r->max_excl);
-}
-
static inline wuffs_base__range_ie_u32 //
wuffs_base__range_ie_u32__intersect(wuffs_base__range_ie_u32* r,
wuffs_base__range_ie_u32 s) {
@@ -596,6 +605,18 @@
return t;
}
+static inline bool //
+wuffs_base__range_ie_u32__contains(wuffs_base__range_ie_u32* r, uint32_t x) {
+ return (r->min_incl <= x) && (x < r->max_excl);
+}
+
+static inline bool //
+wuffs_base__range_ie_u32__contains_range(wuffs_base__range_ie_u32* r,
+ wuffs_base__range_ie_u32 s) {
+ return wuffs_base__range_ie_u32__equals(
+ &s, wuffs_base__range_ie_u32__intersect(r, s));
+}
+
static inline uint32_t //
wuffs_base__range_ie_u32__length(wuffs_base__range_ie_u32* r) {
return wuffs_base__u32__sat_sub(r->max_excl, r->min_incl);
@@ -613,11 +634,6 @@
return wuffs_base__range_ie_u32__equals(this, s);
}
-inline bool //
-wuffs_base__range_ie_u32::contains(uint32_t x) {
- return wuffs_base__range_ie_u32__contains(this, x);
-}
-
inline wuffs_base__range_ie_u32 //
wuffs_base__range_ie_u32::intersect(wuffs_base__range_ie_u32 s) {
return wuffs_base__range_ie_u32__intersect(this, s);
@@ -628,6 +644,16 @@
return wuffs_base__range_ie_u32__unite(this, s);
}
+inline bool //
+wuffs_base__range_ie_u32::contains(uint32_t x) {
+ return wuffs_base__range_ie_u32__contains(this, x);
+}
+
+inline bool //
+wuffs_base__range_ie_u32::contains_range(wuffs_base__range_ie_u32 s) {
+ return wuffs_base__range_ie_u32__contains_range(this, s);
+}
+
inline uint32_t //
wuffs_base__range_ie_u32::length() {
return wuffs_base__range_ie_u32__length(this);
@@ -644,11 +670,12 @@
#ifdef __cplusplus
inline bool is_empty();
inline bool equals(wuffs_base__range_ii_u64__struct s);
- inline bool contains(uint64_t x);
inline wuffs_base__range_ii_u64__struct intersect(
wuffs_base__range_ii_u64__struct s);
inline wuffs_base__range_ii_u64__struct unite(
wuffs_base__range_ii_u64__struct s);
+ inline bool contains(uint64_t x);
+ inline bool contains_range(wuffs_base__range_ii_u64__struct s);
#endif // __cplusplus
} wuffs_base__range_ii_u64;
@@ -666,11 +693,6 @@
wuffs_base__range_ii_u64__is_empty(&s));
}
-static inline bool //
-wuffs_base__range_ii_u64__contains(wuffs_base__range_ii_u64* r, uint64_t x) {
- return (r->min_incl <= x) && (x <= r->max_incl);
-}
-
static inline wuffs_base__range_ii_u64 //
wuffs_base__range_ii_u64__intersect(wuffs_base__range_ii_u64* r,
wuffs_base__range_ii_u64 s) {
@@ -695,6 +717,18 @@
return t;
}
+static inline bool //
+wuffs_base__range_ii_u64__contains(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(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 //
@@ -707,11 +741,6 @@
return wuffs_base__range_ii_u64__equals(this, s);
}
-inline bool //
-wuffs_base__range_ii_u64::contains(uint64_t x) {
- return wuffs_base__range_ii_u64__contains(this, x);
-}
-
inline wuffs_base__range_ii_u64 //
wuffs_base__range_ii_u64::intersect(wuffs_base__range_ii_u64 s) {
return wuffs_base__range_ii_u64__intersect(this, s);
@@ -722,6 +751,16 @@
return wuffs_base__range_ii_u64__unite(this, s);
}
+inline bool //
+wuffs_base__range_ii_u64::contains(uint64_t x) {
+ return wuffs_base__range_ii_u64__contains(this, x);
+}
+
+inline bool //
+wuffs_base__range_ii_u64::contains_range(wuffs_base__range_ii_u64 s) {
+ return wuffs_base__range_ii_u64__contains_range(this, s);
+}
+
#endif // __cplusplus
// --------
@@ -733,11 +772,12 @@
#ifdef __cplusplus
inline bool is_empty();
inline bool equals(wuffs_base__range_ie_u64__struct s);
- inline bool contains(uint64_t x);
inline wuffs_base__range_ie_u64__struct intersect(
wuffs_base__range_ie_u64__struct s);
inline wuffs_base__range_ie_u64__struct unite(
wuffs_base__range_ie_u64__struct s);
+ inline bool contains(uint64_t x);
+ inline bool contains_range(wuffs_base__range_ie_u64__struct s);
inline uint64_t length();
#endif // __cplusplus
@@ -756,11 +796,6 @@
wuffs_base__range_ie_u64__is_empty(&s));
}
-static inline bool //
-wuffs_base__range_ie_u64__contains(wuffs_base__range_ie_u64* r, uint64_t x) {
- return (r->min_incl <= x) && (x < r->max_excl);
-}
-
static inline wuffs_base__range_ie_u64 //
wuffs_base__range_ie_u64__intersect(wuffs_base__range_ie_u64* r,
wuffs_base__range_ie_u64 s) {
@@ -785,6 +820,18 @@
return t;
}
+static inline bool //
+wuffs_base__range_ie_u64__contains(wuffs_base__range_ie_u64* r, uint64_t x) {
+ return (r->min_incl <= x) && (x < r->max_excl);
+}
+
+static inline bool //
+wuffs_base__range_ie_u64__contains_range(wuffs_base__range_ie_u64* r,
+ wuffs_base__range_ie_u64 s) {
+ return wuffs_base__range_ie_u64__equals(
+ &s, wuffs_base__range_ie_u64__intersect(r, s));
+}
+
static inline uint64_t //
wuffs_base__range_ie_u64__length(wuffs_base__range_ie_u64* r) {
return wuffs_base__u64__sat_sub(r->max_excl, r->min_incl);
@@ -802,11 +849,6 @@
return wuffs_base__range_ie_u64__equals(this, s);
}
-inline bool //
-wuffs_base__range_ie_u64::contains(uint64_t x) {
- return wuffs_base__range_ie_u64__contains(this, x);
-}
-
inline wuffs_base__range_ie_u64 //
wuffs_base__range_ie_u64::intersect(wuffs_base__range_ie_u64 s) {
return wuffs_base__range_ie_u64__intersect(this, s);
@@ -817,6 +859,16 @@
return wuffs_base__range_ie_u64__unite(this, s);
}
+inline bool //
+wuffs_base__range_ie_u64::contains(uint64_t x) {
+ return wuffs_base__range_ie_u64__contains(this, x);
+}
+
+inline bool //
+wuffs_base__range_ie_u64::contains_range(wuffs_base__range_ie_u64 s) {
+ return wuffs_base__range_ie_u64__contains_range(this, s);
+}
+
inline uint64_t //
wuffs_base__range_ie_u64::length() {
return wuffs_base__range_ie_u64__length(this);
@@ -844,11 +896,12 @@
#ifdef __cplusplus
inline bool is_empty();
inline bool equals(wuffs_base__rect_ii_u32__struct s);
- inline bool contains(uint32_t x, uint32_t y);
inline wuffs_base__rect_ii_u32__struct intersect(
wuffs_base__rect_ii_u32__struct s);
inline wuffs_base__rect_ii_u32__struct unite(
wuffs_base__rect_ii_u32__struct s);
+ inline bool contains(uint32_t x, uint32_t y);
+ inline bool contains_rect(wuffs_base__rect_ii_u32__struct s);
#endif // __cplusplus
} wuffs_base__rect_ii_u32;
@@ -867,14 +920,6 @@
wuffs_base__rect_ii_u32__is_empty(&s));
}
-static inline bool //
-wuffs_base__rect_ii_u32__contains(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 wuffs_base__rect_ii_u32 //
wuffs_base__rect_ii_u32__intersect(wuffs_base__rect_ii_u32* r,
wuffs_base__rect_ii_u32 s) {
@@ -903,6 +948,21 @@
return t;
}
+static inline bool //
+wuffs_base__rect_ii_u32__contains(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(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 //
@@ -915,11 +975,6 @@
return wuffs_base__rect_ii_u32__equals(this, s);
}
-inline bool //
-wuffs_base__rect_ii_u32::contains(uint32_t x, uint32_t y) {
- return wuffs_base__rect_ii_u32__contains(this, x, y);
-}
-
inline wuffs_base__rect_ii_u32 //
wuffs_base__rect_ii_u32::intersect(wuffs_base__rect_ii_u32 s) {
return wuffs_base__rect_ii_u32__intersect(this, s);
@@ -930,6 +985,16 @@
return wuffs_base__rect_ii_u32__unite(this, s);
}
+inline bool //
+wuffs_base__rect_ii_u32::contains(uint32_t x, uint32_t y) {
+ 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) {
+ return wuffs_base__rect_ii_u32__contains_rect(this, s);
+}
+
#endif // __cplusplus
// --------
@@ -953,11 +1018,12 @@
#ifdef __cplusplus
inline bool is_empty();
inline bool equals(wuffs_base__rect_ie_u32__struct s);
- inline bool contains(uint32_t x, uint32_t y);
inline wuffs_base__rect_ie_u32__struct intersect(
wuffs_base__rect_ie_u32__struct s);
inline wuffs_base__rect_ie_u32__struct unite(
wuffs_base__rect_ie_u32__struct s);
+ inline bool contains(uint32_t x, uint32_t y);
+ inline bool contains_rect(wuffs_base__rect_ie_u32__struct s);
inline uint32_t width();
inline uint32_t height();
#endif // __cplusplus
@@ -978,14 +1044,6 @@
wuffs_base__rect_ie_u32__is_empty(&s));
}
-static inline bool //
-wuffs_base__rect_ie_u32__contains(wuffs_base__rect_ie_u32* r,
- uint32_t x,
- uint32_t y) {
- return (r->min_incl_x <= x) && (x < r->max_excl_x) && (r->min_incl_y <= y) &&
- (y < r->max_excl_y);
-}
-
static inline wuffs_base__rect_ie_u32 //
wuffs_base__rect_ie_u32__intersect(wuffs_base__rect_ie_u32* r,
wuffs_base__rect_ie_u32 s) {
@@ -1014,6 +1072,21 @@
return t;
}
+static inline bool //
+wuffs_base__rect_ie_u32__contains(wuffs_base__rect_ie_u32* r,
+ uint32_t x,
+ uint32_t y) {
+ return (r->min_incl_x <= x) && (x < r->max_excl_x) && (r->min_incl_y <= y) &&
+ (y < r->max_excl_y);
+}
+
+static inline bool //
+wuffs_base__rect_ie_u32__contains_rect(wuffs_base__rect_ie_u32* r,
+ wuffs_base__rect_ie_u32 s) {
+ return wuffs_base__rect_ie_u32__equals(
+ &s, wuffs_base__rect_ie_u32__intersect(r, s));
+}
+
static inline uint32_t //
wuffs_base__rect_ie_u32__width(wuffs_base__rect_ie_u32* r) {
return wuffs_base__u32__sat_sub(r->max_excl_x, r->min_incl_x);
@@ -1036,11 +1109,6 @@
return wuffs_base__rect_ie_u32__equals(this, s);
}
-inline bool //
-wuffs_base__rect_ie_u32::contains(uint32_t x, uint32_t y) {
- return wuffs_base__rect_ie_u32__contains(this, x, y);
-}
-
inline wuffs_base__rect_ie_u32 //
wuffs_base__rect_ie_u32::intersect(wuffs_base__rect_ie_u32 s) {
return wuffs_base__rect_ie_u32__intersect(this, s);
@@ -1051,6 +1119,16 @@
return wuffs_base__rect_ie_u32__unite(this, s);
}
+inline bool //
+wuffs_base__rect_ie_u32::contains(uint32_t x, uint32_t y) {
+ return wuffs_base__rect_ie_u32__contains(this, x, y);
+}
+
+inline bool //
+wuffs_base__rect_ie_u32::contains_rect(wuffs_base__rect_ie_u32 s) {
+ return wuffs_base__rect_ie_u32__contains_rect(this, s);
+}
+
inline uint32_t //
wuffs_base__rect_ie_u32::width() {
return wuffs_base__rect_ie_u32__width(this);
@@ -1072,28 +1150,33 @@
static inline void
wuffs_base__acknowledge_potentially_unused_functions__range_public() {
(void)(wuffs_base__range_ie_u32__contains);
+ (void)(wuffs_base__range_ie_u32__contains_range);
(void)(wuffs_base__range_ie_u32__equals);
(void)(wuffs_base__range_ie_u32__intersect);
(void)(wuffs_base__range_ie_u32__is_empty);
(void)(wuffs_base__range_ie_u32__length);
(void)(wuffs_base__range_ie_u32__unite);
(void)(wuffs_base__range_ie_u64__contains);
+ (void)(wuffs_base__range_ie_u64__contains_range);
(void)(wuffs_base__range_ie_u64__equals);
(void)(wuffs_base__range_ie_u64__intersect);
(void)(wuffs_base__range_ie_u64__is_empty);
(void)(wuffs_base__range_ie_u64__length);
(void)(wuffs_base__range_ie_u64__unite);
(void)(wuffs_base__range_ii_u32__contains);
+ (void)(wuffs_base__range_ii_u32__contains_range);
(void)(wuffs_base__range_ii_u32__equals);
(void)(wuffs_base__range_ii_u32__intersect);
(void)(wuffs_base__range_ii_u32__is_empty);
(void)(wuffs_base__range_ii_u32__unite);
(void)(wuffs_base__range_ii_u64__contains);
+ (void)(wuffs_base__range_ii_u64__contains_range);
(void)(wuffs_base__range_ii_u64__equals);
(void)(wuffs_base__range_ii_u64__intersect);
(void)(wuffs_base__range_ii_u64__is_empty);
(void)(wuffs_base__range_ii_u64__unite);
(void)(wuffs_base__rect_ie_u32__contains);
+ (void)(wuffs_base__rect_ie_u32__contains_rect);
(void)(wuffs_base__rect_ie_u32__equals);
(void)(wuffs_base__rect_ie_u32__height);
(void)(wuffs_base__rect_ie_u32__intersect);
@@ -1101,6 +1184,7 @@
(void)(wuffs_base__rect_ie_u32__unite);
(void)(wuffs_base__rect_ie_u32__width);
(void)(wuffs_base__rect_ii_u32__contains);
+ (void)(wuffs_base__rect_ie_u32__contains_rect);
(void)(wuffs_base__rect_ii_u32__equals);
(void)(wuffs_base__rect_ii_u32__intersect);
(void)(wuffs_base__rect_ii_u32__is_empty);