ustr-cmp.h
#ifndef USTR_CMP_H
#define USTR_CMP_H 1
#ifndef USTR_MAIN_H
#error " You should have already included ustr-main.h, or just include ustr.h."
#endif
USTR_CONF_E_PROTO int ustr_cmp_buf(const struct Ustr *, const void *, size_t)
USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
USTR__COMPILE_ATTR_NONNULL_A();
USTR_CONF_EI_PROTO int ustr_cmp(const struct Ustr *, const struct Ustr *)
USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
USTR__COMPILE_ATTR_NONNULL_A();
USTR_CONF_E_PROTO int ustr_cmp_subustr(const struct Ustr *,
const struct Ustr *, size_t, size_t)
USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
USTR__COMPILE_ATTR_NONNULL_A();
USTR_CONF_EI_PROTO int ustr_cmp_cstr(const struct Ustr *, const char *)
USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
USTR__COMPILE_ATTR_NONNULL_A();
USTR_CONF_EI_PROTO int ustr_cmp_fast_buf(const struct Ustr*, const void*,size_t)
USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
USTR__COMPILE_ATTR_NONNULL_A();
USTR_CONF_EI_PROTO int ustr_cmp_fast(const struct Ustr *, const struct Ustr *)
USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
USTR__COMPILE_ATTR_NONNULL_A();
USTR_CONF_E_PROTO int ustr_cmp_fast_subustr(const struct Ustr *,
const struct Ustr *, size_t, size_t)
USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
USTR__COMPILE_ATTR_NONNULL_A();
USTR_CONF_EI_PROTO int ustr_cmp_fast_cstr(const struct Ustr *, const char *)
USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
USTR__COMPILE_ATTR_NONNULL_A();
USTR_CONF_E_PROTO int ustr_cmp_case_buf(const struct Ustr *,const void *,size_t)
USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
USTR__COMPILE_ATTR_NONNULL_A();
USTR_CONF_EI_PROTO int ustr_cmp_case(const struct Ustr *, const struct Ustr *)
USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
USTR__COMPILE_ATTR_NONNULL_A();
USTR_CONF_E_PROTO int ustr_cmp_case_subustr(const struct Ustr *,
const struct Ustr *, size_t, size_t)
USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
USTR__COMPILE_ATTR_NONNULL_A();
USTR_CONF_EI_PROTO int ustr_cmp_case_cstr(const struct Ustr *, const char *)
USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
USTR__COMPILE_ATTR_NONNULL_A();
USTR_CONF_EI_PROTO int ustr_cmp_eq(const struct Ustr *, const struct Ustr *)
USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
USTR__COMPILE_ATTR_NONNULL_A();
USTR_CONF_EI_PROTO int ustr_cmp_buf_eq(const struct Ustr *, const void *,size_t)
USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
USTR__COMPILE_ATTR_NONNULL_A();
USTR_CONF_EI_PROTO
int ustr_cmp_subustr_eq(const struct Ustr *, const struct Ustr *, size_t,size_t)
USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
USTR__COMPILE_ATTR_NONNULL_A();
USTR_CONF_EI_PROTO int ustr_cmp_cstr_eq(const struct Ustr *, const char *)
USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
USTR__COMPILE_ATTR_NONNULL_A();
USTR_CONF_EI_PROTO int ustr_cmp_case_eq(const struct Ustr *,const struct Ustr *)
USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
USTR__COMPILE_ATTR_NONNULL_A();
USTR_CONF_EI_PROTO
int ustr_cmp_case_buf_eq(const struct Ustr *, const void *, size_t)
USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
USTR__COMPILE_ATTR_NONNULL_A();
USTR_CONF_EI_PROTO
int ustr_cmp_case_subustr_eq(const struct Ustr *,
const struct Ustr *, size_t, size_t)
USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
USTR__COMPILE_ATTR_NONNULL_A();
USTR_CONF_EI_PROTO int ustr_cmp_case_cstr_eq(const struct Ustr *, const char *)
USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
USTR__COMPILE_ATTR_NONNULL_A();
USTR_CONF_EI_PROTO
int ustr_cmp_prefix_eq(const struct Ustr *, const struct Ustr *)
USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
USTR__COMPILE_ATTR_NONNULL_A();
USTR_CONF_EI_PROTO int ustr_cmp_prefix_buf_eq(const struct Ustr *,
const void *, size_t)
USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
USTR__COMPILE_ATTR_NONNULL_A();
USTR_CONF_EI_PROTO int ustr_cmp_prefix_cstr_eq(const struct Ustr *,const char *)
USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
USTR__COMPILE_ATTR_NONNULL_A();
USTR_CONF_E_PROTO
int ustr_cmp_prefix_subustr_eq(const struct Ustr *,
const struct Ustr *, size_t, size_t)
USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
USTR__COMPILE_ATTR_NONNULL_A();
USTR_CONF_EI_PROTO
int ustr_cmp_case_prefix_eq(const struct Ustr *, const struct Ustr *)
USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
USTR__COMPILE_ATTR_NONNULL_A();
USTR_CONF_E_PROTO int ustr_cmp_case_prefix_buf_eq(const struct Ustr *,
const void *, size_t)
USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
USTR__COMPILE_ATTR_NONNULL_A();
USTR_CONF_EI_PROTO
int ustr_cmp_case_prefix_cstr_eq(const struct Ustr *, const char *)
USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
USTR__COMPILE_ATTR_NONNULL_A();
USTR_CONF_E_PROTO
int ustr_cmp_case_prefix_subustr_eq(const struct Ustr *,
const struct Ustr *, size_t, size_t)
USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
USTR__COMPILE_ATTR_NONNULL_A();
USTR_CONF_EI_PROTO
int ustr_cmp_suffix_eq(const struct Ustr *, const struct Ustr *)
USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
USTR__COMPILE_ATTR_NONNULL_A();
USTR_CONF_EI_PROTO int ustr_cmp_suffix_buf_eq(const struct Ustr *,
const void *, size_t)
USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
USTR__COMPILE_ATTR_NONNULL_A();
USTR_CONF_EI_PROTO int ustr_cmp_suffix_cstr_eq(const struct Ustr *,const char *)
USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
USTR__COMPILE_ATTR_NONNULL_A();
USTR_CONF_E_PROTO
int ustr_cmp_suffix_subustr_eq(const struct Ustr *,
const struct Ustr *, size_t, size_t)
USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
USTR__COMPILE_ATTR_NONNULL_A();
USTR_CONF_EI_PROTO
int ustr_cmp_case_suffix_eq(const struct Ustr *, const struct Ustr *)
USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
USTR__COMPILE_ATTR_NONNULL_A();
USTR_CONF_EI_PROTO int ustr_cmp_case_suffix_buf_eq(const struct Ustr *,
const void *, size_t)
USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
USTR__COMPILE_ATTR_NONNULL_A();
USTR_CONF_EI_PROTO
int ustr_cmp_case_suffix_cstr_eq(const struct Ustr *, const char *)
USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
USTR__COMPILE_ATTR_NONNULL_A();
USTR_CONF_E_PROTO
int ustr_cmp_case_suffix_subustr_eq(const struct Ustr *,
const struct Ustr *, size_t, size_t)
USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
USTR__COMPILE_ATTR_NONNULL_A();
#if USTR_CONF_COMPILE_USE_INLINE
USTR_CONF_II_PROTO
int ustr_cmp_fast_buf(const struct Ustr *s1, const void *buf, size_t len2)
{
size_t len1 = 0;
USTR_ASSERT(ustr_assert_valid(s1) && buf);
len1 = ustr_len(s1);
if (len1 == len2)
return (memcmp(ustr_cstr(s1), buf, len1));
else if (len1 > len2)
return (1);
else
return (-1);
}
USTR_CONF_II_PROTO int ustr_cmp_prefix_buf_eq(const struct Ustr *s1,
const void *buf, size_t len2)
{
size_t len1 = 0;
USTR_ASSERT(ustr_assert_valid(s1) && buf);
len1 = ustr_len(s1);
if (len1 < len2)
return (USTR_FALSE);
return (!memcmp(ustr_cstr(s1), buf, len2));
}
USTR_CONF_II_PROTO int ustr_cmp_suffix_buf_eq(const struct Ustr *s1,
const void *buf, size_t len2)
{
size_t len1 = 0;
USTR_ASSERT(ustr_assert_valid(s1) && buf);
len1 = ustr_len(s1);
if (len1 < len2)
return (USTR_FALSE);
return (!memcmp(ustr_cstr(s1) + (len1 - len2), buf, len2));
}
#endif
#if USTR_CONF_INCLUDE_INTERNAL_HEADERS
# include "ustr-cmp-internal.h"
#endif
#if USTR_CONF_INCLUDE_CODEONLY_HEADERS
# include "ustr-cmp-code.h"
#endif
#if USTR_CONF_COMPILE_USE_INLINE
USTR_CONF_II_PROTO int ustr_cmp(const struct Ustr *s1, const struct Ustr *s2)
{
USTR_ASSERT(ustr_assert_valid(s1) && ustr_assert_valid(s2));
if (s1 == s2)
return (0);
return (ustr_cmp_buf(s1, ustr_cstr(s2), ustr_len(s2)));
}
USTR_CONF_II_PROTO int ustr_cmp_fast(const struct Ustr *s1,const struct Ustr*s2)
{
USTR_ASSERT(ustr_assert_valid(s1) && ustr_assert_valid(s2));
if (s1 == s2)
return (0);
return (ustr_cmp_fast_buf(s1, ustr_cstr(s2), ustr_len(s2)));
}
USTR_CONF_II_PROTO int ustr_cmp_case(const struct Ustr *s1,const struct Ustr*s2)
{
USTR_ASSERT(ustr_assert_valid(s1) && ustr_assert_valid(s2));
if (s1 == s2)
return (0);
return (ustr_cmp_case_buf(s1, ustr_cstr(s2), ustr_len(s2)));
}
USTR_CONF_II_PROTO int ustr_cmp_cstr(const struct Ustr *s1, const char *s2)
{ return (ustr_cmp_buf(s1, s2, strlen(s2))); }
USTR_CONF_II_PROTO int ustr_cmp_fast_cstr(const struct Ustr *s1, const char *s2)
{ return (ustr_cmp_fast_buf(s1, s2, strlen(s2))); }
USTR_CONF_II_PROTO int ustr_cmp_case_cstr(const struct Ustr *s1, const char *s2)
{ return (ustr_cmp_case_buf(s1, s2, strlen(s2))); }
USTR_CONF_II_PROTO int ustr_cmp_eq(const struct Ustr *s1, const struct Ustr *s2)
{ return (!ustr_cmp_fast(s1, s2)); }
USTR_CONF_II_PROTO
int ustr_cmp_buf_eq(const struct Ustr *s1, const void *buf, size_t len)
{ return (!ustr_cmp_fast_buf(s1, buf, len)); }
USTR_CONF_II_PROTO int ustr_cmp_subustr_eq(const struct Ustr *s1,
const struct Ustr *s2,
size_t pos, size_t len)
{ return (!ustr_cmp_fast_subustr(s1, s2, pos, len)); }
USTR_CONF_II_PROTO int ustr_cmp_cstr_eq(const struct Ustr *s1, const char *cstr)
{ return (!ustr_cmp_fast_buf(s1, cstr, strlen(cstr))); }
USTR_CONF_II_PROTO
int ustr_cmp_case_eq(const struct Ustr *s1, const struct Ustr *s2)
{
USTR_ASSERT(ustr_assert_valid(s1) && ustr_assert_valid(s2));
if (s1 == s2)
return (USTR_TRUE);
return ((ustr_len(s1) == ustr_len(s2)) && !ustr_cmp_case(s1, s2));
}
USTR_CONF_II_PROTO
int ustr_cmp_case_buf_eq(const struct Ustr *s1, const void *buf, size_t len)
{
USTR_ASSERT(ustr_assert_valid(s1));
return ((ustr_len(s1) == len) && !ustr_cmp_case_buf(s1, buf, len));
}
USTR_CONF_II_PROTO int ustr_cmp_case_subustr_eq(const struct Ustr *s1,
const struct Ustr *s2,
size_t pos, size_t len)
{
USTR_ASSERT(ustr_assert_valid(s1));
return ((ustr_len(s1) == len) && !ustr_cmp_case_subustr(s1, s2, pos, len));
}
USTR_CONF_II_PROTO
int ustr_cmp_case_cstr_eq(const struct Ustr *s1, const char *cstr)
{
size_t len = strlen(cstr);
USTR_ASSERT(ustr_assert_valid(s1));
return ((ustr_len(s1) == len) && !ustr_cmp_case_buf(s1, cstr, len));
}
USTR_CONF_II_PROTO int ustr_cmp_prefix_eq(const struct Ustr *s1,
const struct Ustr *s2)
{
USTR_ASSERT(ustr_assert_valid(s1) && ustr_assert_valid(s2));
if (s1 == s2)
return (USTR_TRUE);
return (ustr_cmp_prefix_buf_eq(s1, ustr_cstr(s2), ustr_len(s2)));
}
USTR_CONF_II_PROTO int ustr_cmp_prefix_cstr_eq(const struct Ustr *s1,
const char *cstr)
{ return (ustr_cmp_prefix_buf_eq(s1, cstr, strlen(cstr))); }
USTR_CONF_II_PROTO int ustr_cmp_case_prefix_eq(const struct Ustr *s1,
const struct Ustr *s2)
{
USTR_ASSERT(ustr_assert_valid(s1) && ustr_assert_valid(s2));
if (s1 == s2)
return (USTR_TRUE);
return (ustr_cmp_case_prefix_buf_eq(s1, ustr_cstr(s2), ustr_len(s2)));
}
USTR_CONF_II_PROTO int ustr_cmp_case_prefix_cstr_eq(const struct Ustr *s1,
const char *cstr)
{ return (ustr_cmp_case_prefix_buf_eq(s1, cstr, strlen(cstr))); }
USTR_CONF_II_PROTO int ustr_cmp_suffix_eq(const struct Ustr *s1,
const struct Ustr *s2)
{
USTR_ASSERT(ustr_assert_valid(s1) && ustr_assert_valid(s2));
if (s1 == s2)
return (USTR_TRUE);
return (ustr_cmp_suffix_buf_eq(s1, ustr_cstr(s2), ustr_len(s2)));
}
USTR_CONF_II_PROTO int ustr_cmp_suffix_cstr_eq(const struct Ustr *s1,
const char *cstr)
{ return (ustr_cmp_suffix_buf_eq(s1, cstr, strlen(cstr))); }
USTR_CONF_II_PROTO int ustr_cmp_case_suffix_eq(const struct Ustr *s1,
const struct Ustr *s2)
{
USTR_ASSERT(ustr_assert_valid(s1) && ustr_assert_valid(s2));
if (s1 == s2)
return (USTR_TRUE);
return (ustr_cmp_case_suffix_buf_eq(s1, ustr_cstr(s2), ustr_len(s2)));
}
USTR_CONF_II_PROTO int ustr_cmp_case_suffix_cstr_eq(const struct Ustr *s1,
const char *cstr)
{ return (ustr_cmp_case_suffix_buf_eq(s1, cstr, strlen(cstr))); }
#endif
USTR_CONF_EI_PROTO
int ustrp_cmp_buf(const struct Ustrp *, const void *, size_t)
USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
USTR__COMPILE_ATTR_NONNULL_A();
USTR_CONF_EI_PROTO int ustrp_cmp(const struct Ustrp *, const struct Ustrp *)
USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
USTR__COMPILE_ATTR_NONNULL_A();
USTR_CONF_EI_PROTO int ustrp_cmp_subustrp(const struct Ustrp *,
const struct Ustrp *, size_t, size_t)
USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
USTR__COMPILE_ATTR_NONNULL_A();
USTR_CONF_EI_PROTO int ustrp_cmp_cstr(const struct Ustrp *, const char *)
USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
USTR__COMPILE_ATTR_NONNULL_A();
USTR_CONF_EI_PROTO
int ustrp_cmp_fast_buf(const struct Ustrp *, const void *, size_t)
USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
USTR__COMPILE_ATTR_NONNULL_A();
USTR_CONF_EI_PROTO int ustrp_cmp_fast(const struct Ustrp *, const struct Ustrp*)
USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
USTR__COMPILE_ATTR_NONNULL_A();
USTR_CONF_EI_PROTO
int ustrp_cmp_fast_subustrp(const struct Ustrp *,
const struct Ustrp *, size_t, size_t)
USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
USTR__COMPILE_ATTR_NONNULL_A();
USTR_CONF_EI_PROTO int ustrp_cmp_fast_cstr(const struct Ustrp *, const char *)
USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
USTR__COMPILE_ATTR_NONNULL_A();
USTR_CONF_EI_PROTO
int ustrp_cmp_case_buf(const struct Ustrp *, const void *, size_t)
USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
USTR__COMPILE_ATTR_NONNULL_A();
USTR_CONF_EI_PROTO int ustrp_cmp_case(const struct Ustrp *,const struct Ustrp *)
USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
USTR__COMPILE_ATTR_NONNULL_A();
USTR_CONF_EI_PROTO int ustrp_cmp_case_subustrp(const struct Ustrp *,
const struct Ustrp *, size_t, size_t)
USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
USTR__COMPILE_ATTR_NONNULL_A();
USTR_CONF_EI_PROTO int ustrp_cmp_case_cstr(const struct Ustrp *, const char *)
USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
USTR__COMPILE_ATTR_NONNULL_A();
USTR_CONF_EI_PROTO int ustrp_cmp_eq(const struct Ustrp *, const struct Ustrp *)
USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
USTR__COMPILE_ATTR_NONNULL_A();
USTR_CONF_EI_PROTO int ustrp_cmp_buf_eq(const struct Ustrp *,const void*,size_t)
USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
USTR__COMPILE_ATTR_NONNULL_A();
USTR_CONF_EI_PROTO int ustrp_cmp_subustrp_eq(const struct Ustrp *,
const struct Ustrp *, size_t, size_t)
USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
USTR__COMPILE_ATTR_NONNULL_A();
USTR_CONF_EI_PROTO int ustrp_cmp_cstr_eq(const struct Ustrp *, const char *)
USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
USTR__COMPILE_ATTR_NONNULL_A();
USTR_CONF_EI_PROTO
int ustrp_cmp_case_eq(const struct Ustrp *, const struct Ustrp *)
USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
USTR__COMPILE_ATTR_NONNULL_A();
USTR_CONF_EI_PROTO
int ustrp_cmp_case_buf_eq(const struct Ustrp *, const void *, size_t)
USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
USTR__COMPILE_ATTR_NONNULL_A();
USTR_CONF_EI_PROTO
int ustrp_cmp_case_subustrp_eq(const struct Ustrp *,
const struct Ustrp *, size_t, size_t)
USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
USTR__COMPILE_ATTR_NONNULL_A();
USTR_CONF_EI_PROTO int ustrp_cmp_case_cstr_eq(const struct Ustrp *,const char *)
USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
USTR__COMPILE_ATTR_NONNULL_A();
USTR_CONF_EI_PROTO
int ustrp_cmp_prefix_eq(const struct Ustrp *, const struct Ustrp *)
USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
USTR__COMPILE_ATTR_NONNULL_A();
USTR_CONF_EI_PROTO int ustrp_cmp_prefix_buf_eq(const struct Ustrp *,
const void *, size_t)
USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
USTR__COMPILE_ATTR_NONNULL_A();
USTR_CONF_EI_PROTO
int ustrp_cmp_prefix_cstr_eq(const struct Ustrp *, const char *)
USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
USTR__COMPILE_ATTR_NONNULL_A();
USTR_CONF_EI_PROTO
int ustrp_cmp_prefix_subustrp_eq(const struct Ustrp *,
const struct Ustrp *, size_t, size_t)
USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
USTR__COMPILE_ATTR_NONNULL_A();
USTR_CONF_EI_PROTO
int ustrp_cmp_case_prefix_eq(const struct Ustrp *, const struct Ustrp *)
USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
USTR__COMPILE_ATTR_NONNULL_A();
USTR_CONF_EI_PROTO int ustrp_cmp_case_prefix_buf_eq(const struct Ustrp *,
const void *, size_t)
USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
USTR__COMPILE_ATTR_NONNULL_A();
USTR_CONF_EI_PROTO
int ustrp_cmp_case_prefix_cstr_eq(const struct Ustrp *, const char *)
USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
USTR__COMPILE_ATTR_NONNULL_A();
USTR_CONF_EI_PROTO
int ustrp_cmp_case_prefix_subustrp_eq(const struct Ustrp *,
const struct Ustrp *, size_t, size_t)
USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
USTR__COMPILE_ATTR_NONNULL_A();
USTR_CONF_EI_PROTO
int ustrp_cmp_suffix_eq(const struct Ustrp *, const struct Ustrp *)
USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
USTR__COMPILE_ATTR_NONNULL_A();
USTR_CONF_EI_PROTO int ustrp_cmp_suffix_buf_eq(const struct Ustrp *,
const void *, size_t)
USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
USTR__COMPILE_ATTR_NONNULL_A();
USTR_CONF_EI_PROTO
int ustrp_cmp_suffix_cstr_eq(const struct Ustrp *, const char *)
USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
USTR__COMPILE_ATTR_NONNULL_A();
USTR_CONF_EI_PROTO
int ustrp_cmp_suffix_subustrp_eq(const struct Ustrp *,
const struct Ustrp *, size_t, size_t)
USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
USTR__COMPILE_ATTR_NONNULL_A();
USTR_CONF_EI_PROTO
int ustrp_cmp_case_suffix_eq(const struct Ustrp *, const struct Ustrp *)
USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
USTR__COMPILE_ATTR_NONNULL_A();
USTR_CONF_EI_PROTO int ustrp_cmp_case_suffix_buf_eq(const struct Ustrp *,
const void *, size_t)
USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
USTR__COMPILE_ATTR_NONNULL_A();
USTR_CONF_EI_PROTO
int ustrp_cmp_case_suffix_cstr_eq(const struct Ustrp *, const char *)
USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
USTR__COMPILE_ATTR_NONNULL_A();
USTR_CONF_EI_PROTO
int ustrp_cmp_case_suffix_subustrp_eq(const struct Ustrp *,
const struct Ustrp *, size_t, size_t)
USTR__COMPILE_ATTR_PURE() USTR__COMPILE_ATTR_WARN_UNUSED_RET()
USTR__COMPILE_ATTR_NONNULL_A();
#if USTR_CONF_COMPILE_USE_INLINE
USTR_CONF_II_PROTO
int ustrp_cmp_buf(const struct Ustrp *s1, const void *s2, size_t len)
{ return (ustr_cmp_buf(&s1->s, s2, len)); }
USTR_CONF_II_PROTO int ustrp_cmp(const struct Ustrp *s1, const struct Ustrp *s2)
{ return (ustr_cmp(&s1->s, &s2->s)); }
USTR_CONF_II_PROTO
int ustrp_cmp_subustrp(const struct Ustrp *s1,
const struct Ustrp *s2, size_t pos, size_t len)
{ return (ustr_cmp_subustr(&s1->s, &s2->s, pos, len)); }
USTR_CONF_II_PROTO int ustrp_cmp_cstr(const struct Ustrp *s1, const char *s2)
{ return (ustrp_cmp_buf(s1, s2, strlen(s2))); }
USTR_CONF_II_PROTO
int ustrp_cmp_fast_buf(const struct Ustrp *s1, const void *s2, size_t len)
{ return (ustr_cmp_fast_buf(&s1->s, s2, len)); }
USTR_CONF_II_PROTO
int ustrp_cmp_fast(const struct Ustrp *s1, const struct Ustrp *s2)
{ return (ustr_cmp_fast(&s1->s, &s2->s)); }
USTR_CONF_II_PROTO
int ustrp_cmp_fast_subustrp(const struct Ustrp *s1,
const struct Ustrp *s2, size_t pos, size_t len)
{ return (ustr_cmp_fast_subustr(&s1->s, &s2->s, pos, len)); }
USTR_CONF_II_PROTO
int ustrp_cmp_fast_cstr(const struct Ustrp *s1, const char *s2)
{ return (ustrp_cmp_fast_buf(s1, s2, strlen(s2))); }
USTR_CONF_II_PROTO
int ustrp_cmp_case_buf(const struct Ustrp *s1, const void *s2, size_t len)
{ return (ustr_cmp_case_buf(&s1->s, s2, len)); }
USTR_CONF_II_PROTO
int ustrp_cmp_case(const struct Ustrp *s1, const struct Ustrp *s2)
{ return (ustr_cmp_case(&s1->s, &s2->s)); }
USTR_CONF_II_PROTO
int ustrp_cmp_case_subustrp(const struct Ustrp *s1,
const struct Ustrp *s2, size_t pos, size_t len)
{ return (ustr_cmp_case_subustr(&s1->s, &s2->s, pos, len)); }
USTR_CONF_II_PROTO int ustrp_cmp_case_cstr(const struct Ustrp *s1,const char*s2)
{ return (ustrp_cmp_case_buf(s1, s2, strlen(s2))); }
USTR_CONF_II_PROTO
int ustrp_cmp_eq(const struct Ustrp *s1, const struct Ustrp *s2)
{ return (!ustrp_cmp_fast(s1, s2)); }
USTR_CONF_II_PROTO
int ustrp_cmp_buf_eq(const struct Ustrp *s1, const void *buf, size_t len)
{ return (!ustrp_cmp_fast_buf(s1, buf, len)); }
USTR_CONF_II_PROTO int ustrp_cmp_subustrp_eq(const struct Ustrp *s1,
const struct Ustrp *s2,
size_t pos, size_t len)
{ return (!ustrp_cmp_fast_subustrp(s1, s2, pos, len)); }
USTR_CONF_II_PROTO
int ustrp_cmp_cstr_eq(const struct Ustrp *s1, const char *cstr)
{ return (!ustrp_cmp_fast_buf(s1, cstr, strlen(cstr))); }
USTR_CONF_II_PROTO
int ustrp_cmp_case_eq(const struct Ustrp *s1, const struct Ustrp *s2)
{ return (ustr_cmp_case_eq(&s1->s, &s2->s)); }
USTR_CONF_II_PROTO
int ustrp_cmp_case_buf_eq(const struct Ustrp *s1, const void *buf, size_t len)
{ return (ustr_cmp_case_buf_eq(&s1->s, buf, len)); }
USTR_CONF_II_PROTO
int ustrp_cmp_case_subustrp_eq(const struct Ustrp *s1,
const struct Ustrp *s2, size_t pos, size_t len)
{ return (ustr_cmp_case_subustr_eq(&s1->s, &s2->s, pos, len)); }
USTR_CONF_II_PROTO
int ustrp_cmp_case_cstr_eq(const struct Ustrp *s1, const char *cstr)
{ return (ustr_cmp_case_buf_eq(&s1->s, cstr, strlen(cstr))); }
USTR_CONF_II_PROTO
int ustrp_cmp_prefix_eq(const struct Ustrp *s1, const struct Ustrp *s2)
{ return (ustr_cmp_prefix_eq(&s1->s, &s2->s)); }
USTR_CONF_II_PROTO
int ustrp_cmp_prefix_buf_eq(const struct Ustrp *s1, const void *buf, size_t len)
{ return (ustr_cmp_prefix_buf_eq(&s1->s, buf, len)); }
USTR_CONF_II_PROTO
int ustrp_cmp_prefix_subustrp_eq(const struct Ustrp *s1,
const struct Ustrp *s2, size_t p,size_t l)
{ return (ustr_cmp_prefix_subustr_eq(&s1->s, &s2->s, p, l)); }
USTR_CONF_II_PROTO
int ustrp_cmp_prefix_cstr_eq(const struct Ustrp *s1, const char *cstr)
{ return (ustrp_cmp_prefix_buf_eq(s1, cstr, strlen(cstr))); }
USTR_CONF_II_PROTO
int ustrp_cmp_case_prefix_eq(const struct Ustrp *s1, const struct Ustrp *s2)
{ return (ustr_cmp_case_prefix_eq(&s1->s, &s2->s)); }
USTR_CONF_II_PROTO int ustrp_cmp_case_prefix_buf_eq(const struct Ustrp *s1,
const void *buf, size_t len)
{ return (ustr_cmp_case_prefix_buf_eq(&s1->s, buf, len)); }
USTR_CONF_II_PROTO
int ustrp_cmp_case_prefix_subustrp_eq(const struct Ustrp *s1,
const struct Ustrp *s2, size_t p,size_t l)
{ return (ustr_cmp_case_prefix_subustr_eq(&s1->s, &s2->s, p, l)); }
USTR_CONF_II_PROTO
int ustrp_cmp_case_prefix_cstr_eq(const struct Ustrp *s1, const char *cstr)
{ return (ustrp_cmp_case_prefix_buf_eq(s1, cstr, strlen(cstr))); }
USTR_CONF_II_PROTO
int ustrp_cmp_suffix_eq(const struct Ustrp *s1, const struct Ustrp *s2)
{ return (ustr_cmp_suffix_eq(&s1->s, &s2->s)); }
USTR_CONF_II_PROTO
int ustrp_cmp_suffix_buf_eq(const struct Ustrp *s1, const void *buf, size_t len)
{ return (ustr_cmp_suffix_buf_eq(&s1->s, buf, len)); }
USTR_CONF_II_PROTO
int ustrp_cmp_suffix_subustrp_eq(const struct Ustrp *s1,
const struct Ustrp *s2, size_t p,size_t l)
{ return (ustr_cmp_suffix_subustr_eq(&s1->s, &s2->s, p, l)); }
USTR_CONF_II_PROTO
int ustrp_cmp_suffix_cstr_eq(const struct Ustrp *s1, const char *cstr)
{ return (ustrp_cmp_suffix_buf_eq(s1, cstr, strlen(cstr))); }
USTR_CONF_II_PROTO
int ustrp_cmp_case_suffix_eq(const struct Ustrp *s1, const struct Ustrp *s2)
{ return (ustr_cmp_case_suffix_eq(&s1->s, &s2->s)); }
USTR_CONF_II_PROTO int ustrp_cmp_case_suffix_buf_eq(const struct Ustrp *s1,
const void *buf, size_t len)
{ return (ustr_cmp_case_suffix_buf_eq(&s1->s, buf, len)); }
USTR_CONF_II_PROTO
int ustrp_cmp_case_suffix_subustrp_eq(const struct Ustrp *s1,
const struct Ustrp *s2, size_t p,size_t l)
{ return (ustr_cmp_case_suffix_subustr_eq(&s1->s, &s2->s, p, l)); }
USTR_CONF_II_PROTO
int ustrp_cmp_case_suffix_cstr_eq(const struct Ustrp *s1, const char *cstr)
{ return (ustrp_cmp_case_suffix_buf_eq(s1, cstr, strlen(cstr))); }
#endif
#endif