1// bindgen-flags: --with-derive-hash --with-derive-partialeq --with-derive-eq --rustified-enum ".*"
2template<class _CharT, class _Traits, class _Allocator>
3class basic_string
4{
5public:
6    typedef unsigned long long size_type;
7    typedef char value_type;
8    typedef value_type * pointer;
9
10    struct __long
11    {
12        size_type __cap_;
13        size_type __size_;
14        pointer   __data_;
15    };
16
17    enum {__min_cap = (sizeof(__long) - 1)/sizeof(value_type) > 2 ?
18                        (sizeof(__long) - 1)/sizeof(value_type) : 2};
19
20    struct __short
21    {
22        union
23        {
24            unsigned char __size_;
25            value_type __lx;
26        };
27        value_type __data_[__min_cap];
28    };
29
30    union __ulx{__long __lx; __short __lxx;};
31
32    enum {__n_words = sizeof(__ulx) / sizeof(size_type)};
33
34    struct __raw
35    {
36        size_type __words[__n_words];
37    };
38
39    struct __rep
40    {
41        union
42        {
43            __long  __l;
44            __short __s;
45            __raw   __r;
46        };
47    };
48};
49