objc2-core-services 0.3.2

Bindings to the CoreServices framework
Documentation
//! This file has been automatically generated by `objc2`'s `header-translator`.
//! DO NOT EDIT
use core::cell::UnsafeCell;
use core::marker::{PhantomData, PhantomPinned};
use core::ptr::NonNull;
#[cfg(feature = "objc2")]
use objc2::__framework_prelude::*;
use objc2_core_foundation::*;

use crate::*;

/// [Apple's documentation](https://developer.apple.com/documentation/coreservices/sksummary?language=objc)
#[doc(alias = "SKSummaryRef")]
#[repr(C)]
pub struct SKSummary {
    inner: [u8; 0],
    _p: UnsafeCell<PhantomData<(*const UnsafeCell<()>, PhantomPinned)>>,
}

cf_type!(
    unsafe impl SKSummary {}
);
#[cfg(feature = "objc2")]
cf_objc2_type!(
    unsafe impl RefEncode<"__SKSummary"> for SKSummary {}
);

unsafe impl ConcreteType for SKSummary {
    #[doc(alias = "SKSummaryGetTypeID")]
    #[inline]
    fn type_id() -> CFTypeID {
        extern "C-unwind" {
            fn SKSummaryGetTypeID() -> CFTypeID;
        }
        unsafe { SKSummaryGetTypeID() }
    }
}

impl SKSummary {
    /// # Safety
    ///
    /// `in_string` might not allow `None`.
    #[doc(alias = "SKSummaryCreateWithString")]
    #[inline]
    pub unsafe fn with_string(in_string: Option<&CFString>) -> Option<CFRetained<SKSummary>> {
        extern "C-unwind" {
            fn SKSummaryCreateWithString(
                in_string: Option<&CFString>,
            ) -> Option<NonNull<SKSummary>>;
        }
        let ret = unsafe { SKSummaryCreateWithString(in_string) };
        ret.map(|ret| unsafe { CFRetained::from_raw(ret) })
    }

    #[doc(alias = "SKSummaryGetSentenceCount")]
    #[inline]
    pub unsafe fn sentence_count(&self) -> CFIndex {
        extern "C-unwind" {
            fn SKSummaryGetSentenceCount(summary: &SKSummary) -> CFIndex;
        }
        unsafe { SKSummaryGetSentenceCount(self) }
    }

    #[doc(alias = "SKSummaryGetParagraphCount")]
    #[inline]
    pub unsafe fn paragraph_count(&self) -> CFIndex {
        extern "C-unwind" {
            fn SKSummaryGetParagraphCount(summary: &SKSummary) -> CFIndex;
        }
        unsafe { SKSummaryGetParagraphCount(self) }
    }

    #[doc(alias = "SKSummaryCopySentenceAtIndex")]
    #[inline]
    pub unsafe fn sentence_at_index(&self, i: CFIndex) -> Option<CFRetained<CFString>> {
        extern "C-unwind" {
            fn SKSummaryCopySentenceAtIndex(
                summary: &SKSummary,
                i: CFIndex,
            ) -> Option<NonNull<CFString>>;
        }
        let ret = unsafe { SKSummaryCopySentenceAtIndex(self, i) };
        ret.map(|ret| unsafe { CFRetained::from_raw(ret) })
    }

    #[doc(alias = "SKSummaryCopyParagraphAtIndex")]
    #[inline]
    pub unsafe fn paragraph_at_index(&self, i: CFIndex) -> Option<CFRetained<CFString>> {
        extern "C-unwind" {
            fn SKSummaryCopyParagraphAtIndex(
                summary: &SKSummary,
                i: CFIndex,
            ) -> Option<NonNull<CFString>>;
        }
        let ret = unsafe { SKSummaryCopyParagraphAtIndex(self, i) };
        ret.map(|ret| unsafe { CFRetained::from_raw(ret) })
    }

    #[doc(alias = "SKSummaryCopySentenceSummaryString")]
    #[inline]
    pub unsafe fn sentence_summary_string(
        &self,
        num_sentences: CFIndex,
    ) -> Option<CFRetained<CFString>> {
        extern "C-unwind" {
            fn SKSummaryCopySentenceSummaryString(
                summary: &SKSummary,
                num_sentences: CFIndex,
            ) -> Option<NonNull<CFString>>;
        }
        let ret = unsafe { SKSummaryCopySentenceSummaryString(self, num_sentences) };
        ret.map(|ret| unsafe { CFRetained::from_raw(ret) })
    }

    #[doc(alias = "SKSummaryCopyParagraphSummaryString")]
    #[inline]
    pub unsafe fn paragraph_summary_string(
        &self,
        num_paragraphs: CFIndex,
    ) -> Option<CFRetained<CFString>> {
        extern "C-unwind" {
            fn SKSummaryCopyParagraphSummaryString(
                summary: &SKSummary,
                num_paragraphs: CFIndex,
            ) -> Option<NonNull<CFString>>;
        }
        let ret = unsafe { SKSummaryCopyParagraphSummaryString(self, num_paragraphs) };
        ret.map(|ret| unsafe { CFRetained::from_raw(ret) })
    }

    /// # Safety
    ///
    /// - `out_rank_order_of_sentences` must be a valid pointer.
    /// - `out_sentence_index_of_sentences` must be a valid pointer.
    /// - `out_paragraph_index_of_sentences` must be a valid pointer.
    #[doc(alias = "SKSummaryGetSentenceSummaryInfo")]
    #[inline]
    pub unsafe fn sentence_summary_info(
        &self,
        num_sentences_in_summary: CFIndex,
        out_rank_order_of_sentences: *mut CFIndex,
        out_sentence_index_of_sentences: *mut CFIndex,
        out_paragraph_index_of_sentences: *mut CFIndex,
    ) -> CFIndex {
        extern "C-unwind" {
            fn SKSummaryGetSentenceSummaryInfo(
                summary: &SKSummary,
                num_sentences_in_summary: CFIndex,
                out_rank_order_of_sentences: *mut CFIndex,
                out_sentence_index_of_sentences: *mut CFIndex,
                out_paragraph_index_of_sentences: *mut CFIndex,
            ) -> CFIndex;
        }
        unsafe {
            SKSummaryGetSentenceSummaryInfo(
                self,
                num_sentences_in_summary,
                out_rank_order_of_sentences,
                out_sentence_index_of_sentences,
                out_paragraph_index_of_sentences,
            )
        }
    }

    /// # Safety
    ///
    /// - `out_rank_order_of_paragraphs` must be a valid pointer.
    /// - `out_paragraph_index_of_paragraphs` must be a valid pointer.
    #[doc(alias = "SKSummaryGetParagraphSummaryInfo")]
    #[inline]
    pub unsafe fn paragraph_summary_info(
        &self,
        num_paragraphs_in_summary: CFIndex,
        out_rank_order_of_paragraphs: *mut CFIndex,
        out_paragraph_index_of_paragraphs: *mut CFIndex,
    ) -> CFIndex {
        extern "C-unwind" {
            fn SKSummaryGetParagraphSummaryInfo(
                summary: &SKSummary,
                num_paragraphs_in_summary: CFIndex,
                out_rank_order_of_paragraphs: *mut CFIndex,
                out_paragraph_index_of_paragraphs: *mut CFIndex,
            ) -> CFIndex;
        }
        unsafe {
            SKSummaryGetParagraphSummaryInfo(
                self,
                num_paragraphs_in_summary,
                out_rank_order_of_paragraphs,
                out_paragraph_index_of_paragraphs,
            )
        }
    }
}

#[deprecated = "renamed to `SKSummary::with_string`"]
#[inline]
pub unsafe extern "C-unwind" fn SKSummaryCreateWithString(
    in_string: Option<&CFString>,
) -> Option<CFRetained<SKSummary>> {
    extern "C-unwind" {
        fn SKSummaryCreateWithString(in_string: Option<&CFString>) -> Option<NonNull<SKSummary>>;
    }
    let ret = unsafe { SKSummaryCreateWithString(in_string) };
    ret.map(|ret| unsafe { CFRetained::from_raw(ret) })
}

extern "C-unwind" {
    #[deprecated = "renamed to `SKSummary::sentence_count`"]
    pub fn SKSummaryGetSentenceCount(summary: &SKSummary) -> CFIndex;
}

extern "C-unwind" {
    #[deprecated = "renamed to `SKSummary::paragraph_count`"]
    pub fn SKSummaryGetParagraphCount(summary: &SKSummary) -> CFIndex;
}

#[deprecated = "renamed to `SKSummary::sentence_at_index`"]
#[inline]
pub unsafe extern "C-unwind" fn SKSummaryCopySentenceAtIndex(
    summary: &SKSummary,
    i: CFIndex,
) -> Option<CFRetained<CFString>> {
    extern "C-unwind" {
        fn SKSummaryCopySentenceAtIndex(
            summary: &SKSummary,
            i: CFIndex,
        ) -> Option<NonNull<CFString>>;
    }
    let ret = unsafe { SKSummaryCopySentenceAtIndex(summary, i) };
    ret.map(|ret| unsafe { CFRetained::from_raw(ret) })
}

#[deprecated = "renamed to `SKSummary::paragraph_at_index`"]
#[inline]
pub unsafe extern "C-unwind" fn SKSummaryCopyParagraphAtIndex(
    summary: &SKSummary,
    i: CFIndex,
) -> Option<CFRetained<CFString>> {
    extern "C-unwind" {
        fn SKSummaryCopyParagraphAtIndex(
            summary: &SKSummary,
            i: CFIndex,
        ) -> Option<NonNull<CFString>>;
    }
    let ret = unsafe { SKSummaryCopyParagraphAtIndex(summary, i) };
    ret.map(|ret| unsafe { CFRetained::from_raw(ret) })
}

#[deprecated = "renamed to `SKSummary::sentence_summary_string`"]
#[inline]
pub unsafe extern "C-unwind" fn SKSummaryCopySentenceSummaryString(
    summary: &SKSummary,
    num_sentences: CFIndex,
) -> Option<CFRetained<CFString>> {
    extern "C-unwind" {
        fn SKSummaryCopySentenceSummaryString(
            summary: &SKSummary,
            num_sentences: CFIndex,
        ) -> Option<NonNull<CFString>>;
    }
    let ret = unsafe { SKSummaryCopySentenceSummaryString(summary, num_sentences) };
    ret.map(|ret| unsafe { CFRetained::from_raw(ret) })
}

#[deprecated = "renamed to `SKSummary::paragraph_summary_string`"]
#[inline]
pub unsafe extern "C-unwind" fn SKSummaryCopyParagraphSummaryString(
    summary: &SKSummary,
    num_paragraphs: CFIndex,
) -> Option<CFRetained<CFString>> {
    extern "C-unwind" {
        fn SKSummaryCopyParagraphSummaryString(
            summary: &SKSummary,
            num_paragraphs: CFIndex,
        ) -> Option<NonNull<CFString>>;
    }
    let ret = unsafe { SKSummaryCopyParagraphSummaryString(summary, num_paragraphs) };
    ret.map(|ret| unsafe { CFRetained::from_raw(ret) })
}

extern "C-unwind" {
    #[deprecated = "renamed to `SKSummary::sentence_summary_info`"]
    pub fn SKSummaryGetSentenceSummaryInfo(
        summary: &SKSummary,
        num_sentences_in_summary: CFIndex,
        out_rank_order_of_sentences: *mut CFIndex,
        out_sentence_index_of_sentences: *mut CFIndex,
        out_paragraph_index_of_sentences: *mut CFIndex,
    ) -> CFIndex;
}

extern "C-unwind" {
    #[deprecated = "renamed to `SKSummary::paragraph_summary_info`"]
    pub fn SKSummaryGetParagraphSummaryInfo(
        summary: &SKSummary,
        num_paragraphs_in_summary: CFIndex,
        out_rank_order_of_paragraphs: *mut CFIndex,
        out_paragraph_index_of_paragraphs: *mut CFIndex,
    ) -> CFIndex;
}