llama_cpp_bindings/mtmd/
mtmd_context_params.rs1use std::ffi::{CStr, CString};
2
3#[derive(Debug, Clone)]
19pub struct MtmdContextParams {
20 pub use_gpu: bool,
22 pub print_timings: bool,
24 pub n_threads: i32,
26 pub media_marker: CString,
28}
29
30impl Default for MtmdContextParams {
31 fn default() -> Self {
32 unsafe { llama_cpp_bindings_sys::mtmd_context_params_default() }.into()
33 }
34}
35
36impl From<&MtmdContextParams> for llama_cpp_bindings_sys::mtmd_context_params {
37 fn from(params: &MtmdContextParams) -> Self {
38 let mut context = unsafe { llama_cpp_bindings_sys::mtmd_context_params_default() };
39 let MtmdContextParams {
40 use_gpu,
41 print_timings,
42 n_threads,
43 media_marker,
44 } = params;
45
46 context.use_gpu = *use_gpu;
47 context.print_timings = *print_timings;
48 context.n_threads = *n_threads;
49 context.media_marker = media_marker.as_ptr();
50
51 context
52 }
53}
54
55impl From<llama_cpp_bindings_sys::mtmd_context_params> for MtmdContextParams {
56 fn from(params: llama_cpp_bindings_sys::mtmd_context_params) -> Self {
57 Self {
58 use_gpu: params.use_gpu,
59 print_timings: params.print_timings,
60 n_threads: params.n_threads,
61 media_marker: unsafe { CStr::from_ptr(params.media_marker) }.to_owned(),
62 }
63 }
64}