llama_cpp_bindings/mtmd/
mtmd_context_params.rs1use std::ffi::{CStr, CString};
2
3#[derive(Debug, Clone)]
4pub struct MtmdContextParams {
5 pub use_gpu: bool,
6 pub print_timings: bool,
7 pub n_threads: i32,
8 pub media_marker: CString,
9}
10
11impl Default for MtmdContextParams {
12 fn default() -> Self {
13 unsafe { llama_cpp_bindings_sys::mtmd_context_params_default() }.into()
14 }
15}
16
17impl From<&MtmdContextParams> for llama_cpp_bindings_sys::mtmd_context_params {
18 fn from(params: &MtmdContextParams) -> Self {
19 let mut context = unsafe { llama_cpp_bindings_sys::mtmd_context_params_default() };
20 let MtmdContextParams {
21 use_gpu,
22 print_timings,
23 n_threads,
24 media_marker,
25 } = params;
26
27 context.use_gpu = *use_gpu;
28 context.print_timings = *print_timings;
29 context.n_threads = *n_threads;
30 context.media_marker = media_marker.as_ptr();
31
32 context
33 }
34}
35
36impl From<llama_cpp_bindings_sys::mtmd_context_params> for MtmdContextParams {
37 fn from(params: llama_cpp_bindings_sys::mtmd_context_params) -> Self {
38 Self {
39 use_gpu: params.use_gpu,
40 print_timings: params.print_timings,
41 n_threads: params.n_threads,
42 media_marker: unsafe { CStr::from_ptr(params.media_marker) }.to_owned(),
43 }
44 }
45}