reinfer-cli 0.38.5

Command line interface for Re:infer, the conversational data intelligence platform
use libc::{c_char, c_int, size_t};

#[repr(C)]
#[derive(Debug, Clone)]
pub struct LibPffItem {
    _unused: c_int,
}

#[repr(C)]
#[derive(Debug, Clone)]
pub struct LibPffRecordEntry {
    _unused: c_int,
}

#[repr(C)]
#[derive(Debug, Clone)]
pub struct LibPffRecordSet {
    _unused: c_int,
}

#[repr(C)]
#[derive(Debug, Clone)]
pub struct LibPffFile {
    _unused: c_int,
}

#[repr(C)]
#[derive(Debug, Clone)]
pub struct LibcError {
    pub number_of_messages: c_int,
    pub messages: *const *const c_char,
}

#[derive(Clone)]
pub enum LibPffEntryType {
    MessageTransportHeaders = 0x007d,
    AttachmentFilenameLong = 0x3707,
}

#[derive(Clone)]
pub enum LibPffEntryValueFlags {
    MatchAnyValueType = 0x01,
}

#[link(name = "pff")]
extern "C" {
    pub fn libpff_file_open(
        file: *mut LibPffFile,
        filename: *const c_char,
        access_flags: c_int,
        error: *mut *mut LibcError,
    ) -> c_int;

    pub fn libpff_message_get_entry_value_utf8_string_size(
        message: *mut LibPffItem,
        entry_type: u32,
        utf8_string_size: *mut size_t,
        error: *mut *mut LibcError,
    ) -> c_int;

    pub fn libpff_message_get_entry_value_utf8_string(
        message: *mut LibPffItem,
        entry_type: u32,
        utf8_string: *mut c_char,
        utf8_string_size: size_t,
        error: *mut *mut LibcError,
    ) -> c_int;

    pub fn libpff_file_initialize(file: *mut *mut LibPffFile, error: *mut *mut LibcError) -> c_int;

    pub fn libpff_file_get_root_folder(
        file: *mut LibPffFile,
        root_folder: *mut *mut LibPffItem,
        error: *mut *mut LibcError,
    ) -> c_int;

    pub fn libpff_folder_get_utf8_name_size(
        folder: *mut LibPffItem,
        utf8_string_size: *mut size_t,
        error: *mut *mut LibcError,
    ) -> c_int;

    pub fn libpff_folder_get_utf8_name(
        folder: *mut LibPffItem,
        utf8_string: *mut c_char,
        utf8_string_size: size_t,
        error: *mut *mut LibcError,
    ) -> c_int;

    pub fn libpff_folder_get_number_of_sub_folders(
        folder: *mut LibPffItem,
        number_of_sub_folders: *mut c_int,
        error: *mut *mut LibcError,
    ) -> c_int;

    pub fn libpff_folder_get_sub_folder(
        folder: *mut LibPffItem,
        sub_folder_index: c_int,
        sub_folder: *mut *mut LibPffItem,
        error: *mut *mut LibcError,
    ) -> c_int;

    pub fn libpff_folder_get_number_of_sub_messages(
        folder: *mut LibPffItem,
        number_of_sub_messages: *mut c_int,
        error: *mut *mut LibcError,
    ) -> c_int;

    pub fn libpff_folder_get_sub_message(
        folder: *mut LibPffItem,
        sub_message_index: c_int,
        sub_message: *mut *mut LibPffItem,
        error: *mut *mut LibcError,
    ) -> c_int;

    pub fn libpff_message_get_html_body_size(
        message: *mut LibPffItem,
        size: *mut size_t,
        error: *mut *mut LibcError,
    ) -> c_int;

    pub fn libpff_message_get_html_body(
        message: *mut LibPffItem,
        message_body: *mut c_char,
        size: size_t,
        error: *mut *mut LibcError,
    ) -> c_int;

    pub fn libpff_message_get_plain_text_body_size(
        message: *mut LibPffItem,
        size: *mut size_t,
        error: *mut *mut LibcError,
    ) -> c_int;

    pub fn libpff_message_get_plain_text_body(
        message: *mut LibPffItem,
        message_body: *mut c_char,
        size: size_t,
        error: *mut *mut LibcError,
    ) -> c_int;

    pub fn libpff_message_get_number_of_attachments(
        message: *mut LibPffItem,
        number_of_attachments: *mut c_int,
        error: *mut *mut LibcError,
    ) -> c_int;

    pub fn libpff_message_get_attachment(
        message: *mut LibPffItem,
        attachment_index: c_int,
        attachment: *mut *mut LibPffItem,
        error: *mut *mut LibcError,
    ) -> c_int;

    pub fn libpff_item_get_record_set_by_index(
        item: *mut LibPffItem,
        record_set_index: c_int,
        record_set: *mut *mut LibPffRecordSet,
        error: *mut *mut LibcError,
    );

    pub fn libpff_record_set_get_entry_by_type(
        record_set: *mut LibPffRecordSet,
        entry_type: u32,
        value_type: u32,
        record_entry: *mut *mut LibPffRecordEntry,
        flags: u8,
        error: *mut *mut LibcError,
    ) -> c_int;

    pub fn libpff_record_entry_get_data_as_utf8_string_size(
        record_entry: *mut LibPffRecordEntry,
        utf8_string_size: *mut size_t,
        error: *mut *mut LibcError,
    ) -> c_int;

    pub fn libpff_record_entry_get_data_as_utf8_string(
        record_entry: *mut LibPffRecordEntry,
        utf8_string: *mut c_char,
        utf8_string_size: size_t,
        error: *mut *mut LibcError,
    ) -> c_int;

    pub fn libpff_attachment_get_data_size(
        attachment: *mut LibPffItem,
        size: *mut size_t,
        error: *mut *mut LibcError,
    ) -> c_int;

    pub fn libpff_attachment_get_type(
        attachment: *mut LibPffItem,
        attachment_type: *mut c_int,
        error: *mut *mut LibcError,
    ) -> c_int;

}