1#![allow(missing_copy_implementations)]
4
5use libc::{c_char, c_int, c_double, c_void, size_t, uint16_t, int32_t};
6
7use languages::Language;
8
9#[repr(C)]
10pub struct CLDHints {
11 pub content_language_hint: *const c_char,
12 pub tld_hint: *const c_char,
13 pub encoding_hint: c_int,
14 pub language_hint: Language,
15}
16
17#[derive(Debug)]
18#[repr(C)]
19pub struct ResultChunk {
20 pub offset: c_int,
21 pub bytes: int32_t,
22 pub lang1: uint16_t,
23 pub pad: uint16_t,
24}
25
26pub type ResultChunks = c_void;
27
28extern "C" {
29 pub fn CLD2_ResultChunkVector_new() -> *mut ResultChunks;
30 pub fn CLD2_ResultChunkVector_data(chunks: *const ResultChunks)
31 -> *const ResultChunk;
32 pub fn CLD2_ResultChunkVector_size(chunks: *const ResultChunks) -> size_t;
33 pub fn CLD2_ResultChunkVector_delete(chunks: *mut ResultChunks);
34
35 pub fn CLD2_LanguageName(lang: Language) -> *const c_char;
36 pub fn CLD2_LanguageCode(lang: Language) -> *const c_char;
37 pub fn CLD2_LanguageDeclaredName(lang: Language) -> *const c_char;
38 pub fn CLD2_GetLanguageFromName(src: *const c_char) -> Language;
39
40 pub fn CLD2_DetectLanguage(buffer: *const c_char,
41 buffer_length: c_int,
42 is_plain_text: bool, is_reliable: *mut bool)
43 -> Language;
44 pub fn CLD2_DetectLanguageSummary(buffer: *const c_char,
45 buffer_length: c_int,
46 is_plain_text: bool,
47 language3: *mut Language,
48 percent3: *mut c_int,
49 text_bytes: *mut c_int,
50 is_reliable: *mut bool) -> Language;
51 pub fn CLD2_DetectLanguageSummary2(buffer: *const c_char,
52 buffer_length: c_int,
53 is_plain_text: bool,
54 tld_hint: *const c_char,
55 encoding_hint: c_int,
56 language_hint: Language,
57 language3: *mut Language,
58 percent3: *mut c_int,
59 text_bytes: *mut c_int,
60 is_reliable: *mut bool) -> Language;
61 pub fn CLD2_ExtDetectLanguageSummary(buffer: *const c_char,
62 buffer_length: c_int,
63 is_plain_text: bool,
64 language3: *mut Language,
65 percent3: *mut c_int,
66 text_bytes: *mut c_int,
67 is_reliable: *mut bool) -> Language;
68 pub fn CLD2_ExtDetectLanguageSummary2(buffer: *const c_char,
69 buffer_length: c_int,
70 is_plain_text: bool,
71 tld_hint: *const c_char,
72 encoding_hint: c_int,
73 language_hint: Language,
74 language3: *mut Language,
75 percent3: *mut c_int,
76 text_bytes: *mut c_int,
77 is_reliable: *mut bool)
78 -> Language;
79 pub fn CLD2_ExtDetectLanguageSummary3(buffer: *const c_char,
80 buffer_length: c_int,
81 is_plain_text: bool,
82 tld_hint: *const c_char,
83 encoding_hint: c_int,
84 language_hint: Language,
85 language3: *mut Language,
86 percent3: *mut c_int,
87 normalized_score3:
88 *mut c_double,
89 text_bytes: *mut c_int,
90 is_reliable: *mut bool)
91 -> Language;
92 pub fn CLD2_ExtDetectLanguageSummary4(buffer: *const c_char,
93 buffer_length: c_int,
94 is_plain_text: bool,
95 cld_hints: *const CLDHints,
96 flags: c_int,
97 language3: *mut Language,
98 percent3: *mut c_int,
99 normalized_score3:
100 *mut c_double,
101 resultchunkvector: *mut ResultChunks,
102 text_bytes: *mut c_int,
103 is_reliable: *mut bool)
104 -> Language;
105 pub fn CLD2_DetectLanguageVersion() -> *const c_char;
106}