1#include "ruby/ruby.h"
2#include "ruby/encoding.h"
3
4static VALUE sym_7bit, sym_valid, sym_unknown, sym_broken;
5static VALUE
6str_coderange(VALUE str)
7{
8    switch (ENC_CODERANGE(str)) {
9      case ENC_CODERANGE_7BIT:
10	return sym_7bit;
11      case ENC_CODERANGE_VALID:
12	return sym_valid;
13      case ENC_CODERANGE_UNKNOWN:
14	return sym_unknown;
15      case ENC_CODERANGE_BROKEN:
16	return sym_broken;
17    }
18    rb_bug("wrong condition of coderange");
19    UNREACHABLE;
20}
21
22void
23Init_coderange(VALUE klass)
24{
25    sym_7bit = ID2SYM(rb_intern("7bit"));
26    sym_valid = ID2SYM(rb_intern("valid"));
27    sym_unknown = ID2SYM(rb_intern("unknown"));
28    sym_broken = ID2SYM(rb_intern("broken"));
29    rb_define_method(klass, "coderange", str_coderange, 0);
30}
31