#![allow(dead_code)]
use std::ffi::c_char;
use blazen_llm::providers::defaults::{
AudioMusicProviderDefaults as InnerAudioMusicProviderDefaults,
AudioSpeechProviderDefaults as InnerAudioSpeechProviderDefaults,
BackgroundRemovalProviderDefaults as InnerBackgroundRemovalProviderDefaults,
BaseProviderDefaults as InnerBaseProviderDefaults,
CompletionProviderDefaults as InnerCompletionProviderDefaults,
EmbeddingProviderDefaults as InnerEmbeddingProviderDefaults,
ImageGenerationProviderDefaults as InnerImageGenerationProviderDefaults,
ImageUpscaleProviderDefaults as InnerImageUpscaleProviderDefaults,
ThreeDProviderDefaults as InnerThreeDProviderDefaults,
TranscriptionProviderDefaults as InnerTranscriptionProviderDefaults,
VideoProviderDefaults as InnerVideoProviderDefaults,
VoiceCloningProviderDefaults as InnerVoiceCloningProviderDefaults,
};
use blazen_llm::types::ToolDefinition;
use crate::string::{alloc_cstring, cstr_to_opt_string, cstr_to_str};
unsafe fn parse_tools_json(ptr: *const c_char) -> Vec<ToolDefinition> {
let Some(s) = (unsafe { cstr_to_str(ptr) }) else {
return Vec::new();
};
serde_json::from_str::<Vec<ToolDefinition>>(s).unwrap_or_default()
}
fn alloc_tools_json(tools: &[ToolDefinition]) -> *mut c_char {
match serde_json::to_string(tools) {
Ok(s) => alloc_cstring(&s),
Err(_) => std::ptr::null_mut(),
}
}
unsafe fn parse_opt_json_value(ptr: *const c_char) -> Option<serde_json::Value> {
if ptr.is_null() {
return None;
}
let Some(s) = (unsafe { cstr_to_str(ptr) }) else {
return Some(serde_json::Value::Null);
};
Some(serde_json::from_str::<serde_json::Value>(s).unwrap_or(serde_json::Value::Null))
}
fn alloc_opt_json(value: Option<&serde_json::Value>) -> *mut c_char {
let Some(v) = value else {
return std::ptr::null_mut();
};
match serde_json::to_string(v) {
Ok(s) => alloc_cstring(&s),
Err(_) => std::ptr::null_mut(),
}
}
#[repr(C)]
pub struct BlazenBaseProviderDefaults(pub(crate) InnerBaseProviderDefaults);
impl BlazenBaseProviderDefaults {
pub(crate) fn into_ptr(self) -> *mut BlazenBaseProviderDefaults {
Box::into_raw(Box::new(self))
}
}
impl From<InnerBaseProviderDefaults> for BlazenBaseProviderDefaults {
fn from(inner: InnerBaseProviderDefaults) -> Self {
Self(inner)
}
}
#[unsafe(no_mangle)]
pub extern "C" fn blazen_base_provider_defaults_new() -> *mut BlazenBaseProviderDefaults {
BlazenBaseProviderDefaults(InnerBaseProviderDefaults::default()).into_ptr()
}
#[unsafe(no_mangle)]
pub unsafe extern "C" fn blazen_base_provider_defaults_has_before_request(
handle: *const BlazenBaseProviderDefaults,
) -> bool {
if handle.is_null() {
return false;
}
let r = unsafe { &*handle };
r.0.before_request.is_some()
}
#[unsafe(no_mangle)]
pub unsafe extern "C" fn blazen_base_provider_defaults_free(
handle: *mut BlazenBaseProviderDefaults,
) {
if handle.is_null() {
return;
}
drop(unsafe { Box::from_raw(handle) });
}
#[repr(C)]
pub struct BlazenCompletionProviderDefaults(pub(crate) InnerCompletionProviderDefaults);
impl BlazenCompletionProviderDefaults {
pub(crate) fn into_ptr(self) -> *mut BlazenCompletionProviderDefaults {
Box::into_raw(Box::new(self))
}
}
impl From<InnerCompletionProviderDefaults> for BlazenCompletionProviderDefaults {
fn from(inner: InnerCompletionProviderDefaults) -> Self {
Self(inner)
}
}
#[unsafe(no_mangle)]
pub extern "C" fn blazen_completion_provider_defaults_new() -> *mut BlazenCompletionProviderDefaults
{
BlazenCompletionProviderDefaults(InnerCompletionProviderDefaults::default()).into_ptr()
}
#[unsafe(no_mangle)]
pub unsafe extern "C" fn blazen_completion_provider_defaults_set_system_prompt(
handle: *mut BlazenCompletionProviderDefaults,
prompt: *const c_char,
) {
if handle.is_null() {
return;
}
let r = unsafe { &mut *handle };
r.0.system_prompt = unsafe { cstr_to_opt_string(prompt) };
}
#[unsafe(no_mangle)]
pub unsafe extern "C" fn blazen_completion_provider_defaults_system_prompt(
handle: *const BlazenCompletionProviderDefaults,
) -> *mut c_char {
if handle.is_null() {
return std::ptr::null_mut();
}
let r = unsafe { &*handle };
r.0.system_prompt
.as_deref()
.map_or(std::ptr::null_mut(), alloc_cstring)
}
#[unsafe(no_mangle)]
pub unsafe extern "C" fn blazen_completion_provider_defaults_set_tools_json(
handle: *mut BlazenCompletionProviderDefaults,
json: *const c_char,
) {
if handle.is_null() {
return;
}
let r = unsafe { &mut *handle };
r.0.tools = unsafe { parse_tools_json(json) };
}
#[unsafe(no_mangle)]
pub unsafe extern "C" fn blazen_completion_provider_defaults_tools_json(
handle: *const BlazenCompletionProviderDefaults,
) -> *mut c_char {
if handle.is_null() {
return std::ptr::null_mut();
}
let r = unsafe { &*handle };
alloc_tools_json(&r.0.tools)
}
#[unsafe(no_mangle)]
pub unsafe extern "C" fn blazen_completion_provider_defaults_set_response_format_json(
handle: *mut BlazenCompletionProviderDefaults,
json: *const c_char,
) {
if handle.is_null() {
return;
}
let r = unsafe { &mut *handle };
r.0.response_format = unsafe { parse_opt_json_value(json) };
}
#[unsafe(no_mangle)]
pub unsafe extern "C" fn blazen_completion_provider_defaults_response_format_json(
handle: *const BlazenCompletionProviderDefaults,
) -> *mut c_char {
if handle.is_null() {
return std::ptr::null_mut();
}
let r = unsafe { &*handle };
alloc_opt_json(r.0.response_format.as_ref())
}
#[unsafe(no_mangle)]
pub unsafe extern "C" fn blazen_completion_provider_defaults_set_base(
handle: *mut BlazenCompletionProviderDefaults,
base: *const BlazenBaseProviderDefaults,
) {
if handle.is_null() || base.is_null() {
return;
}
let r = unsafe { &mut *handle };
let b = unsafe { &*base };
r.0.base = b.0.clone();
}
#[unsafe(no_mangle)]
pub unsafe extern "C" fn blazen_completion_provider_defaults_base(
handle: *const BlazenCompletionProviderDefaults,
) -> *mut BlazenBaseProviderDefaults {
if handle.is_null() {
return std::ptr::null_mut();
}
let r = unsafe { &*handle };
BlazenBaseProviderDefaults(r.0.base.clone()).into_ptr()
}
#[unsafe(no_mangle)]
pub unsafe extern "C" fn blazen_completion_provider_defaults_has_before_completion(
handle: *const BlazenCompletionProviderDefaults,
) -> bool {
if handle.is_null() {
return false;
}
let r = unsafe { &*handle };
r.0.before_completion.is_some()
}
#[unsafe(no_mangle)]
pub unsafe extern "C" fn blazen_completion_provider_defaults_free(
handle: *mut BlazenCompletionProviderDefaults,
) {
if handle.is_null() {
return;
}
drop(unsafe { Box::from_raw(handle) });
}
#[repr(C)]
pub struct BlazenEmbeddingProviderDefaults(pub(crate) InnerEmbeddingProviderDefaults);
impl BlazenEmbeddingProviderDefaults {
pub(crate) fn into_ptr(self) -> *mut BlazenEmbeddingProviderDefaults {
Box::into_raw(Box::new(self))
}
}
impl From<InnerEmbeddingProviderDefaults> for BlazenEmbeddingProviderDefaults {
fn from(inner: InnerEmbeddingProviderDefaults) -> Self {
Self(inner)
}
}
#[unsafe(no_mangle)]
pub extern "C" fn blazen_embedding_provider_defaults_new() -> *mut BlazenEmbeddingProviderDefaults {
BlazenEmbeddingProviderDefaults(InnerEmbeddingProviderDefaults::default()).into_ptr()
}
#[unsafe(no_mangle)]
pub unsafe extern "C" fn blazen_embedding_provider_defaults_set_base(
handle: *mut BlazenEmbeddingProviderDefaults,
base: *const BlazenBaseProviderDefaults,
) {
if handle.is_null() || base.is_null() {
return;
}
let r = unsafe { &mut *handle };
let b = unsafe { &*base };
r.0.base = b.0.clone();
}
#[unsafe(no_mangle)]
pub unsafe extern "C" fn blazen_embedding_provider_defaults_base(
handle: *const BlazenEmbeddingProviderDefaults,
) -> *mut BlazenBaseProviderDefaults {
if handle.is_null() {
return std::ptr::null_mut();
}
let r = unsafe { &*handle };
BlazenBaseProviderDefaults(r.0.base.clone()).into_ptr()
}
#[unsafe(no_mangle)]
pub unsafe extern "C" fn blazen_embedding_provider_defaults_free(
handle: *mut BlazenEmbeddingProviderDefaults,
) {
if handle.is_null() {
return;
}
drop(unsafe { Box::from_raw(handle) });
}
#[repr(C)]
pub struct BlazenAudioSpeechProviderDefaults(pub(crate) InnerAudioSpeechProviderDefaults);
impl BlazenAudioSpeechProviderDefaults {
pub(crate) fn into_ptr(self) -> *mut BlazenAudioSpeechProviderDefaults {
Box::into_raw(Box::new(self))
}
}
impl From<InnerAudioSpeechProviderDefaults> for BlazenAudioSpeechProviderDefaults {
fn from(inner: InnerAudioSpeechProviderDefaults) -> Self {
Self(inner)
}
}
#[unsafe(no_mangle)]
pub extern "C" fn blazen_audio_speech_provider_defaults_new()
-> *mut BlazenAudioSpeechProviderDefaults {
BlazenAudioSpeechProviderDefaults(InnerAudioSpeechProviderDefaults::default()).into_ptr()
}
#[unsafe(no_mangle)]
pub unsafe extern "C" fn blazen_audio_speech_provider_defaults_set_base(
handle: *mut BlazenAudioSpeechProviderDefaults,
base: *const BlazenBaseProviderDefaults,
) {
if handle.is_null() || base.is_null() {
return;
}
let r = unsafe { &mut *handle };
let b = unsafe { &*base };
r.0.base = b.0.clone();
}
#[unsafe(no_mangle)]
pub unsafe extern "C" fn blazen_audio_speech_provider_defaults_base(
handle: *const BlazenAudioSpeechProviderDefaults,
) -> *mut BlazenBaseProviderDefaults {
if handle.is_null() {
return std::ptr::null_mut();
}
let r = unsafe { &*handle };
BlazenBaseProviderDefaults(r.0.base.clone()).into_ptr()
}
#[unsafe(no_mangle)]
pub unsafe extern "C" fn blazen_audio_speech_provider_defaults_has_before(
handle: *const BlazenAudioSpeechProviderDefaults,
) -> bool {
if handle.is_null() {
return false;
}
let r = unsafe { &*handle };
r.0.before.is_some()
}
#[unsafe(no_mangle)]
pub unsafe extern "C" fn blazen_audio_speech_provider_defaults_free(
handle: *mut BlazenAudioSpeechProviderDefaults,
) {
if handle.is_null() {
return;
}
drop(unsafe { Box::from_raw(handle) });
}
#[repr(C)]
pub struct BlazenAudioMusicProviderDefaults(pub(crate) InnerAudioMusicProviderDefaults);
impl BlazenAudioMusicProviderDefaults {
pub(crate) fn into_ptr(self) -> *mut BlazenAudioMusicProviderDefaults {
Box::into_raw(Box::new(self))
}
}
impl From<InnerAudioMusicProviderDefaults> for BlazenAudioMusicProviderDefaults {
fn from(inner: InnerAudioMusicProviderDefaults) -> Self {
Self(inner)
}
}
#[unsafe(no_mangle)]
pub extern "C" fn blazen_audio_music_provider_defaults_new() -> *mut BlazenAudioMusicProviderDefaults
{
BlazenAudioMusicProviderDefaults(InnerAudioMusicProviderDefaults::default()).into_ptr()
}
#[unsafe(no_mangle)]
pub unsafe extern "C" fn blazen_audio_music_provider_defaults_set_base(
handle: *mut BlazenAudioMusicProviderDefaults,
base: *const BlazenBaseProviderDefaults,
) {
if handle.is_null() || base.is_null() {
return;
}
let r = unsafe { &mut *handle };
let b = unsafe { &*base };
r.0.base = b.0.clone();
}
#[unsafe(no_mangle)]
pub unsafe extern "C" fn blazen_audio_music_provider_defaults_base(
handle: *const BlazenAudioMusicProviderDefaults,
) -> *mut BlazenBaseProviderDefaults {
if handle.is_null() {
return std::ptr::null_mut();
}
let r = unsafe { &*handle };
BlazenBaseProviderDefaults(r.0.base.clone()).into_ptr()
}
#[unsafe(no_mangle)]
pub unsafe extern "C" fn blazen_audio_music_provider_defaults_has_before(
handle: *const BlazenAudioMusicProviderDefaults,
) -> bool {
if handle.is_null() {
return false;
}
let r = unsafe { &*handle };
r.0.before.is_some()
}
#[unsafe(no_mangle)]
pub unsafe extern "C" fn blazen_audio_music_provider_defaults_free(
handle: *mut BlazenAudioMusicProviderDefaults,
) {
if handle.is_null() {
return;
}
drop(unsafe { Box::from_raw(handle) });
}
#[repr(C)]
pub struct BlazenVoiceCloningProviderDefaults(pub(crate) InnerVoiceCloningProviderDefaults);
impl BlazenVoiceCloningProviderDefaults {
pub(crate) fn into_ptr(self) -> *mut BlazenVoiceCloningProviderDefaults {
Box::into_raw(Box::new(self))
}
}
impl From<InnerVoiceCloningProviderDefaults> for BlazenVoiceCloningProviderDefaults {
fn from(inner: InnerVoiceCloningProviderDefaults) -> Self {
Self(inner)
}
}
#[unsafe(no_mangle)]
pub extern "C" fn blazen_voice_cloning_provider_defaults_new()
-> *mut BlazenVoiceCloningProviderDefaults {
BlazenVoiceCloningProviderDefaults(InnerVoiceCloningProviderDefaults::default()).into_ptr()
}
#[unsafe(no_mangle)]
pub unsafe extern "C" fn blazen_voice_cloning_provider_defaults_set_base(
handle: *mut BlazenVoiceCloningProviderDefaults,
base: *const BlazenBaseProviderDefaults,
) {
if handle.is_null() || base.is_null() {
return;
}
let r = unsafe { &mut *handle };
let b = unsafe { &*base };
r.0.base = b.0.clone();
}
#[unsafe(no_mangle)]
pub unsafe extern "C" fn blazen_voice_cloning_provider_defaults_base(
handle: *const BlazenVoiceCloningProviderDefaults,
) -> *mut BlazenBaseProviderDefaults {
if handle.is_null() {
return std::ptr::null_mut();
}
let r = unsafe { &*handle };
BlazenBaseProviderDefaults(r.0.base.clone()).into_ptr()
}
#[unsafe(no_mangle)]
pub unsafe extern "C" fn blazen_voice_cloning_provider_defaults_has_before(
handle: *const BlazenVoiceCloningProviderDefaults,
) -> bool {
if handle.is_null() {
return false;
}
let r = unsafe { &*handle };
r.0.before.is_some()
}
#[unsafe(no_mangle)]
pub unsafe extern "C" fn blazen_voice_cloning_provider_defaults_free(
handle: *mut BlazenVoiceCloningProviderDefaults,
) {
if handle.is_null() {
return;
}
drop(unsafe { Box::from_raw(handle) });
}
#[repr(C)]
pub struct BlazenImageGenerationProviderDefaults(pub(crate) InnerImageGenerationProviderDefaults);
impl BlazenImageGenerationProviderDefaults {
pub(crate) fn into_ptr(self) -> *mut BlazenImageGenerationProviderDefaults {
Box::into_raw(Box::new(self))
}
}
impl From<InnerImageGenerationProviderDefaults> for BlazenImageGenerationProviderDefaults {
fn from(inner: InnerImageGenerationProviderDefaults) -> Self {
Self(inner)
}
}
#[unsafe(no_mangle)]
pub extern "C" fn blazen_image_generation_provider_defaults_new()
-> *mut BlazenImageGenerationProviderDefaults {
BlazenImageGenerationProviderDefaults(InnerImageGenerationProviderDefaults::default())
.into_ptr()
}
#[unsafe(no_mangle)]
pub unsafe extern "C" fn blazen_image_generation_provider_defaults_set_base(
handle: *mut BlazenImageGenerationProviderDefaults,
base: *const BlazenBaseProviderDefaults,
) {
if handle.is_null() || base.is_null() {
return;
}
let r = unsafe { &mut *handle };
let b = unsafe { &*base };
r.0.base = b.0.clone();
}
#[unsafe(no_mangle)]
pub unsafe extern "C" fn blazen_image_generation_provider_defaults_base(
handle: *const BlazenImageGenerationProviderDefaults,
) -> *mut BlazenBaseProviderDefaults {
if handle.is_null() {
return std::ptr::null_mut();
}
let r = unsafe { &*handle };
BlazenBaseProviderDefaults(r.0.base.clone()).into_ptr()
}
#[unsafe(no_mangle)]
pub unsafe extern "C" fn blazen_image_generation_provider_defaults_has_before(
handle: *const BlazenImageGenerationProviderDefaults,
) -> bool {
if handle.is_null() {
return false;
}
let r = unsafe { &*handle };
r.0.before.is_some()
}
#[unsafe(no_mangle)]
pub unsafe extern "C" fn blazen_image_generation_provider_defaults_free(
handle: *mut BlazenImageGenerationProviderDefaults,
) {
if handle.is_null() {
return;
}
drop(unsafe { Box::from_raw(handle) });
}
#[repr(C)]
pub struct BlazenImageUpscaleProviderDefaults(pub(crate) InnerImageUpscaleProviderDefaults);
impl BlazenImageUpscaleProviderDefaults {
pub(crate) fn into_ptr(self) -> *mut BlazenImageUpscaleProviderDefaults {
Box::into_raw(Box::new(self))
}
}
impl From<InnerImageUpscaleProviderDefaults> for BlazenImageUpscaleProviderDefaults {
fn from(inner: InnerImageUpscaleProviderDefaults) -> Self {
Self(inner)
}
}
#[unsafe(no_mangle)]
pub extern "C" fn blazen_image_upscale_provider_defaults_new()
-> *mut BlazenImageUpscaleProviderDefaults {
BlazenImageUpscaleProviderDefaults(InnerImageUpscaleProviderDefaults::default()).into_ptr()
}
#[unsafe(no_mangle)]
pub unsafe extern "C" fn blazen_image_upscale_provider_defaults_set_base(
handle: *mut BlazenImageUpscaleProviderDefaults,
base: *const BlazenBaseProviderDefaults,
) {
if handle.is_null() || base.is_null() {
return;
}
let r = unsafe { &mut *handle };
let b = unsafe { &*base };
r.0.base = b.0.clone();
}
#[unsafe(no_mangle)]
pub unsafe extern "C" fn blazen_image_upscale_provider_defaults_base(
handle: *const BlazenImageUpscaleProviderDefaults,
) -> *mut BlazenBaseProviderDefaults {
if handle.is_null() {
return std::ptr::null_mut();
}
let r = unsafe { &*handle };
BlazenBaseProviderDefaults(r.0.base.clone()).into_ptr()
}
#[unsafe(no_mangle)]
pub unsafe extern "C" fn blazen_image_upscale_provider_defaults_has_before(
handle: *const BlazenImageUpscaleProviderDefaults,
) -> bool {
if handle.is_null() {
return false;
}
let r = unsafe { &*handle };
r.0.before.is_some()
}
#[unsafe(no_mangle)]
pub unsafe extern "C" fn blazen_image_upscale_provider_defaults_free(
handle: *mut BlazenImageUpscaleProviderDefaults,
) {
if handle.is_null() {
return;
}
drop(unsafe { Box::from_raw(handle) });
}
#[repr(C)]
pub struct BlazenVideoProviderDefaults(pub(crate) InnerVideoProviderDefaults);
impl BlazenVideoProviderDefaults {
pub(crate) fn into_ptr(self) -> *mut BlazenVideoProviderDefaults {
Box::into_raw(Box::new(self))
}
}
impl From<InnerVideoProviderDefaults> for BlazenVideoProviderDefaults {
fn from(inner: InnerVideoProviderDefaults) -> Self {
Self(inner)
}
}
#[unsafe(no_mangle)]
pub extern "C" fn blazen_video_provider_defaults_new() -> *mut BlazenVideoProviderDefaults {
BlazenVideoProviderDefaults(InnerVideoProviderDefaults::default()).into_ptr()
}
#[unsafe(no_mangle)]
pub unsafe extern "C" fn blazen_video_provider_defaults_set_base(
handle: *mut BlazenVideoProviderDefaults,
base: *const BlazenBaseProviderDefaults,
) {
if handle.is_null() || base.is_null() {
return;
}
let r = unsafe { &mut *handle };
let b = unsafe { &*base };
r.0.base = b.0.clone();
}
#[unsafe(no_mangle)]
pub unsafe extern "C" fn blazen_video_provider_defaults_base(
handle: *const BlazenVideoProviderDefaults,
) -> *mut BlazenBaseProviderDefaults {
if handle.is_null() {
return std::ptr::null_mut();
}
let r = unsafe { &*handle };
BlazenBaseProviderDefaults(r.0.base.clone()).into_ptr()
}
#[unsafe(no_mangle)]
pub unsafe extern "C" fn blazen_video_provider_defaults_has_before(
handle: *const BlazenVideoProviderDefaults,
) -> bool {
if handle.is_null() {
return false;
}
let r = unsafe { &*handle };
r.0.before.is_some()
}
#[unsafe(no_mangle)]
pub unsafe extern "C" fn blazen_video_provider_defaults_free(
handle: *mut BlazenVideoProviderDefaults,
) {
if handle.is_null() {
return;
}
drop(unsafe { Box::from_raw(handle) });
}
#[repr(C)]
pub struct BlazenTranscriptionProviderDefaults(pub(crate) InnerTranscriptionProviderDefaults);
impl BlazenTranscriptionProviderDefaults {
pub(crate) fn into_ptr(self) -> *mut BlazenTranscriptionProviderDefaults {
Box::into_raw(Box::new(self))
}
}
impl From<InnerTranscriptionProviderDefaults> for BlazenTranscriptionProviderDefaults {
fn from(inner: InnerTranscriptionProviderDefaults) -> Self {
Self(inner)
}
}
#[unsafe(no_mangle)]
pub extern "C" fn blazen_transcription_provider_defaults_new()
-> *mut BlazenTranscriptionProviderDefaults {
BlazenTranscriptionProviderDefaults(InnerTranscriptionProviderDefaults::default()).into_ptr()
}
#[unsafe(no_mangle)]
pub unsafe extern "C" fn blazen_transcription_provider_defaults_set_base(
handle: *mut BlazenTranscriptionProviderDefaults,
base: *const BlazenBaseProviderDefaults,
) {
if handle.is_null() || base.is_null() {
return;
}
let r = unsafe { &mut *handle };
let b = unsafe { &*base };
r.0.base = b.0.clone();
}
#[unsafe(no_mangle)]
pub unsafe extern "C" fn blazen_transcription_provider_defaults_base(
handle: *const BlazenTranscriptionProviderDefaults,
) -> *mut BlazenBaseProviderDefaults {
if handle.is_null() {
return std::ptr::null_mut();
}
let r = unsafe { &*handle };
BlazenBaseProviderDefaults(r.0.base.clone()).into_ptr()
}
#[unsafe(no_mangle)]
pub unsafe extern "C" fn blazen_transcription_provider_defaults_has_before(
handle: *const BlazenTranscriptionProviderDefaults,
) -> bool {
if handle.is_null() {
return false;
}
let r = unsafe { &*handle };
r.0.before.is_some()
}
#[unsafe(no_mangle)]
pub unsafe extern "C" fn blazen_transcription_provider_defaults_free(
handle: *mut BlazenTranscriptionProviderDefaults,
) {
if handle.is_null() {
return;
}
drop(unsafe { Box::from_raw(handle) });
}
#[repr(C)]
pub struct BlazenThreeDProviderDefaults(pub(crate) InnerThreeDProviderDefaults);
impl BlazenThreeDProviderDefaults {
pub(crate) fn into_ptr(self) -> *mut BlazenThreeDProviderDefaults {
Box::into_raw(Box::new(self))
}
}
impl From<InnerThreeDProviderDefaults> for BlazenThreeDProviderDefaults {
fn from(inner: InnerThreeDProviderDefaults) -> Self {
Self(inner)
}
}
#[unsafe(no_mangle)]
pub extern "C" fn blazen_three_d_provider_defaults_new() -> *mut BlazenThreeDProviderDefaults {
BlazenThreeDProviderDefaults(InnerThreeDProviderDefaults::default()).into_ptr()
}
#[unsafe(no_mangle)]
pub unsafe extern "C" fn blazen_three_d_provider_defaults_set_base(
handle: *mut BlazenThreeDProviderDefaults,
base: *const BlazenBaseProviderDefaults,
) {
if handle.is_null() || base.is_null() {
return;
}
let r = unsafe { &mut *handle };
let b = unsafe { &*base };
r.0.base = b.0.clone();
}
#[unsafe(no_mangle)]
pub unsafe extern "C" fn blazen_three_d_provider_defaults_base(
handle: *const BlazenThreeDProviderDefaults,
) -> *mut BlazenBaseProviderDefaults {
if handle.is_null() {
return std::ptr::null_mut();
}
let r = unsafe { &*handle };
BlazenBaseProviderDefaults(r.0.base.clone()).into_ptr()
}
#[unsafe(no_mangle)]
pub unsafe extern "C" fn blazen_three_d_provider_defaults_has_before(
handle: *const BlazenThreeDProviderDefaults,
) -> bool {
if handle.is_null() {
return false;
}
let r = unsafe { &*handle };
r.0.before.is_some()
}
#[unsafe(no_mangle)]
pub unsafe extern "C" fn blazen_three_d_provider_defaults_free(
handle: *mut BlazenThreeDProviderDefaults,
) {
if handle.is_null() {
return;
}
drop(unsafe { Box::from_raw(handle) });
}
#[repr(C)]
pub struct BlazenBackgroundRemovalProviderDefaults(
pub(crate) InnerBackgroundRemovalProviderDefaults,
);
impl BlazenBackgroundRemovalProviderDefaults {
pub(crate) fn into_ptr(self) -> *mut BlazenBackgroundRemovalProviderDefaults {
Box::into_raw(Box::new(self))
}
}
impl From<InnerBackgroundRemovalProviderDefaults> for BlazenBackgroundRemovalProviderDefaults {
fn from(inner: InnerBackgroundRemovalProviderDefaults) -> Self {
Self(inner)
}
}
#[unsafe(no_mangle)]
pub extern "C" fn blazen_background_removal_provider_defaults_new()
-> *mut BlazenBackgroundRemovalProviderDefaults {
BlazenBackgroundRemovalProviderDefaults(InnerBackgroundRemovalProviderDefaults::default())
.into_ptr()
}
#[unsafe(no_mangle)]
pub unsafe extern "C" fn blazen_background_removal_provider_defaults_set_base(
handle: *mut BlazenBackgroundRemovalProviderDefaults,
base: *const BlazenBaseProviderDefaults,
) {
if handle.is_null() || base.is_null() {
return;
}
let r = unsafe { &mut *handle };
let b = unsafe { &*base };
r.0.base = b.0.clone();
}
#[unsafe(no_mangle)]
pub unsafe extern "C" fn blazen_background_removal_provider_defaults_base(
handle: *const BlazenBackgroundRemovalProviderDefaults,
) -> *mut BlazenBaseProviderDefaults {
if handle.is_null() {
return std::ptr::null_mut();
}
let r = unsafe { &*handle };
BlazenBaseProviderDefaults(r.0.base.clone()).into_ptr()
}
#[unsafe(no_mangle)]
pub unsafe extern "C" fn blazen_background_removal_provider_defaults_has_before(
handle: *const BlazenBackgroundRemovalProviderDefaults,
) -> bool {
if handle.is_null() {
return false;
}
let r = unsafe { &*handle };
r.0.before.is_some()
}
#[unsafe(no_mangle)]
pub unsafe extern "C" fn blazen_background_removal_provider_defaults_free(
handle: *mut BlazenBackgroundRemovalProviderDefaults,
) {
if handle.is_null() {
return;
}
drop(unsafe { Box::from_raw(handle) });
}