1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
//! Onig Encoding API
//!
//! This api contains functions for working with oniguruma encodings.

use super::{OnigEncoding, OnigUChar};

use libc::c_int;

extern "C" {

    /// Onigenc Init
    ///
    /// ```c
    /// int onigenc_init(void);
    /// ```
    pub fn onigenc_init() -> c_int;

    /// Onig Initialise Encoding
    ///
    /// ```c
    /// int onig_initialize_encoding(OnigEncoding enc);
    /// ```
    pub fn onig_initialize_encoding(enc: OnigEncoding) -> c_int;

    /// Onigenc Step Back
    ///
    /// ```c
    /// OnigUChar* onigenc_step_back (OnigEncoding enc,
    ///                               const OnigUChar* start,
    ///                               const OnigUChar* s,
    ///                               int n);
    /// ```
    pub fn onigenc_step_back(
        enc: OnigEncoding,
        start: *const OnigUChar,
        s: *const OnigUChar,
        n: c_int,
    ) -> *const OnigUChar;

    /// Onigenc Set Default Encoding
    ///
    /// ```c
    /// int onigenc_set_default_encoding(OnigEncoding enc);
    /// ```
    pub fn onigenc_set_default_encoding(enc: OnigEncoding);

    /// Onigenc Get Default Encoding
    ///
    /// ```c
    /// OnigEncoding onigenc_get_default_encoding(void);
    /// ```
    pub fn onigenc_get_default_encoding() -> OnigEncoding;

    /// Onigenc Set Default Case Conversion Table
    ///
    /// ```c
    /// void  onigenc_set_default_caseconv_table(const OnigUChar* table);
    /// ```
    pub fn onigenc_set_default_caseconv_table(table: *const OnigUChar);

    /// Onigenc Get Right Adjust Char Head With Prev
    ///
    /// ```c
    /// OnigUChar* onigenc_get_right_adjust_char_head_with_prev(
    ///     OnigEncoding enc,
    ///     const OnigUChar* start,
    ///     const OnigUChar* s,
    ///     const OnigUChar** prev);
    pub fn onigenc_get_right_adjust_char_head_with_prev(
        enc: OnigEncoding,
        start: *const OnigUChar,
        s: *const OnigUChar,
        prev: *mut *const OnigUChar,
    ) -> *const OnigUChar;

    ///   Return previous character head address.
    ///
    ///  `UChar* onigenc_get_prev_char_head(OnigEncoding enc, const UChar* start, const UChar* s)`
    ///
    ///   arguments
    ///   1 enc:   character encoding
    ///   2 start: string address
    ///   3 s:     target address of string
    pub fn onigenc_get_prev_char_head(
        enc: OnigEncoding,
        start: *const OnigUChar,
        s: *const OnigUChar,
    ) -> *const OnigUChar;

    ///   Return left-adjusted head address of a character.
    ///
    ///  `UChar* onigenc_get_left_adjust_char_head(OnigEncoding enc,
    ///                                            const UChar* start, const UChar* s)`
    ///
    /// # Arguments
    ///
    ///   1. enc:   character encoding
    ///   2. start: string address
    ///   3. s:     target address of string
    pub fn onigenc_get_left_adjust_char_head(
        enc: OnigEncoding,
        start: *const OnigUChar,
        s: *const OnigUChar,
    ) -> *const OnigUChar;

    ///   Return right-adjusted head address of a character.
    ///
    ///  `UChar* onigenc_get_right_adjust_char_head(OnigEncoding enc,
    ///                                             const UChar* start, const UChar* s)`
    ///
    /// # Arguments
    ///
    ///   1. enc:   character encoding
    ///   2. start: string address
    ///   3. s:     target address of string
    pub fn onigenc_get_right_adjust_char_head(
        enc: OnigEncoding,
        start: *const OnigUChar,
        s: *const OnigUChar,
    ) -> *const OnigUChar;

    ///   Return number of characters in the string.
    ///
    ///  `int onigenc_strlen(OnigEncoding enc, const UChar* s, const UChar* end)`
    pub fn onigenc_strlen(enc: OnigEncoding, s: *const OnigUChar, end: *const OnigUChar) -> c_int;

    ///   Return number of characters in the string.
    ///
    ///  `int onigenc_strlen_null(OnigEncoding enc, const UChar* s)`
    pub fn onigenc_strlen_null(enc: OnigEncoding, s: *const OnigUChar) -> c_int;

    ///   Return number of bytes in the string.
    ///
    ///  `int onigenc_str_bytelen_null(OnigEncoding enc, const UChar* s)`
    pub fn onigenc_str_bytelen_null(enc: OnigEncoding, s: *const OnigUChar) -> c_int;

}