112a9d9c8Sopenharmony_ci// bindgen-flags: --with-derive-hash --with-derive-partialeq --with-derive-eq --rustified-enum ".*"
212a9d9c8Sopenharmony_citemplate<class _CharT, class _Traits, class _Allocator>
312a9d9c8Sopenharmony_ciclass basic_string
412a9d9c8Sopenharmony_ci{
512a9d9c8Sopenharmony_cipublic:
612a9d9c8Sopenharmony_ci    typedef unsigned long long size_type;
712a9d9c8Sopenharmony_ci    typedef char value_type;
812a9d9c8Sopenharmony_ci    typedef value_type * pointer;
912a9d9c8Sopenharmony_ci
1012a9d9c8Sopenharmony_ci    struct __long
1112a9d9c8Sopenharmony_ci    {
1212a9d9c8Sopenharmony_ci        size_type __cap_;
1312a9d9c8Sopenharmony_ci        size_type __size_;
1412a9d9c8Sopenharmony_ci        pointer   __data_;
1512a9d9c8Sopenharmony_ci    };
1612a9d9c8Sopenharmony_ci
1712a9d9c8Sopenharmony_ci    enum {__min_cap = (sizeof(__long) - 1)/sizeof(value_type) > 2 ?
1812a9d9c8Sopenharmony_ci                        (sizeof(__long) - 1)/sizeof(value_type) : 2};
1912a9d9c8Sopenharmony_ci
2012a9d9c8Sopenharmony_ci    struct __short
2112a9d9c8Sopenharmony_ci    {
2212a9d9c8Sopenharmony_ci        union
2312a9d9c8Sopenharmony_ci        {
2412a9d9c8Sopenharmony_ci            unsigned char __size_;
2512a9d9c8Sopenharmony_ci            value_type __lx;
2612a9d9c8Sopenharmony_ci        };
2712a9d9c8Sopenharmony_ci        value_type __data_[__min_cap];
2812a9d9c8Sopenharmony_ci    };
2912a9d9c8Sopenharmony_ci
3012a9d9c8Sopenharmony_ci    union __ulx{__long __lx; __short __lxx;};
3112a9d9c8Sopenharmony_ci
3212a9d9c8Sopenharmony_ci    enum {__n_words = sizeof(__ulx) / sizeof(size_type)};
3312a9d9c8Sopenharmony_ci
3412a9d9c8Sopenharmony_ci    struct __raw
3512a9d9c8Sopenharmony_ci    {
3612a9d9c8Sopenharmony_ci        size_type __words[__n_words];
3712a9d9c8Sopenharmony_ci    };
3812a9d9c8Sopenharmony_ci
3912a9d9c8Sopenharmony_ci    struct __rep
4012a9d9c8Sopenharmony_ci    {
4112a9d9c8Sopenharmony_ci        union
4212a9d9c8Sopenharmony_ci        {
4312a9d9c8Sopenharmony_ci            __long  __l;
4412a9d9c8Sopenharmony_ci            __short __s;
4512a9d9c8Sopenharmony_ci            __raw   __r;
4612a9d9c8Sopenharmony_ci        };
4712a9d9c8Sopenharmony_ci    };
4812a9d9c8Sopenharmony_ci};
49