liter_llm 1.18.4 → 1.19.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  // This file is auto-generated by alef. DO NOT EDIT.
2
- // alef:hash:7ee7af693dbd14cbd12eff9ceb8a299134b2c8d34094c54d7e936a556c61da04
2
+ // alef:hash:60474db2c50465cf1ec1b24f42d2ca1e4420ad603e55340ad7a4817ae4a65cae
3
3
  // Re-generate with: alef generate
4
4
  #![allow(dead_code, unused_imports, unused_variables)]
5
5
  #![allow(
@@ -30,6 +30,52 @@ use magnus::{Error, IntoValueFromNative, Ruby, function, method, prelude::*, try
30
30
  use std::collections::HashMap;
31
31
  use std::sync::Arc;
32
32
 
33
+ /// Run owned Rust work while the calling Ruby thread releases the GVL.
34
+ fn alef_magnus_run_without_gvl<F, T>(callback: F) -> T
35
+ where
36
+ F: FnOnce() -> T,
37
+ {
38
+ struct RunState<F, T> {
39
+ callback: Option<F>,
40
+ result: Option<std::thread::Result<T>>,
41
+ }
42
+
43
+ extern "C" fn run_without_gvl<F, T>(data: *mut std::ffi::c_void) -> *mut std::ffi::c_void
44
+ where
45
+ F: FnOnce() -> T,
46
+ {
47
+ // SAFETY: `data` points to the caller's RunState for the duration of this callback.
48
+ let state = unsafe { &mut *(data as *mut RunState<F, T>) };
49
+ let Some(callback) = state.callback.take() else {
50
+ state.result = Some(Err(Box::new("Alef Magnus callback already consumed")));
51
+ return std::ptr::null_mut();
52
+ };
53
+ state.result = Some(std::panic::catch_unwind(std::panic::AssertUnwindSafe(callback)));
54
+ std::ptr::null_mut()
55
+ }
56
+
57
+ extern "C" fn unblock_run(_data: *mut std::ffi::c_void) {}
58
+
59
+ let mut state = RunState {
60
+ callback: Some(callback),
61
+ result: None,
62
+ };
63
+ // SAFETY: Ruby invokes the callback synchronously, and `state` remains live until it returns.
64
+ unsafe {
65
+ rb_sys::rb_thread_call_without_gvl(
66
+ Some(run_without_gvl::<F, T>),
67
+ &mut state as *mut RunState<F, T> as *mut std::ffi::c_void,
68
+ Some(unblock_run),
69
+ std::ptr::null_mut(),
70
+ );
71
+ }
72
+
73
+ match state.result.expect("Alef Magnus callback did not run") {
74
+ Ok(result) => result,
75
+ Err(payload) => std::panic::resume_unwind(payload),
76
+ }
77
+ }
78
+
33
79
  fn json_to_ruby(handle: &Ruby, val: serde_json::Value) -> magnus::Value {
34
80
  use magnus::IntoValue;
35
81
  match val {
@@ -64,7 +110,7 @@ fn json_to_ruby(handle: &Ruby, val: serde_json::Value) -> magnus::Value {
64
110
  }
65
111
  }
66
112
 
67
- #[derive(Clone, Debug, serde::Serialize, serde::Deserialize)]
113
+ #[derive(Clone, Debug, serde::Serialize)]
68
114
  #[serde(default)]
69
115
  #[magnus::wrap(class = "LiterLlm::AssistantMessage")]
70
116
  pub struct AssistantMessage {
@@ -103,6 +149,14 @@ impl magnus::TryConvert for AssistantMessage {
103
149
  }
104
150
 
105
151
  unsafe impl TryConvertOwned for AssistantMessage {}
152
+ impl<'de> serde::Deserialize<'de> for AssistantMessage {
153
+ fn deserialize<D>(deserializer: D) -> ::core::result::Result<Self, D::Error>
154
+ where
155
+ D: serde::Deserializer<'de>,
156
+ {
157
+ <liter_llm::types::AssistantMessage as serde::Deserialize>::deserialize(deserializer).map(Into::into)
158
+ }
159
+ }
106
160
 
107
161
  impl Default for AssistantMessage {
108
162
  fn default() -> Self {
@@ -398,7 +452,7 @@ impl AuthConfig {
398
452
  }
399
453
  }
400
454
 
401
- #[derive(Clone, Debug, serde::Serialize, serde::Deserialize)]
455
+ #[derive(Clone, Debug, serde::Serialize)]
402
456
  #[serde(default)]
403
457
  #[magnus::wrap(class = "LiterLlm::BatchListQuery")]
404
458
  pub struct BatchListQuery {
@@ -433,6 +487,14 @@ impl magnus::TryConvert for BatchListQuery {
433
487
  }
434
488
 
435
489
  unsafe impl TryConvertOwned for BatchListQuery {}
490
+ impl<'de> serde::Deserialize<'de> for BatchListQuery {
491
+ fn deserialize<D>(deserializer: D) -> ::core::result::Result<Self, D::Error>
492
+ where
493
+ D: serde::Deserializer<'de>,
494
+ {
495
+ <liter_llm::types::BatchListQuery as serde::Deserialize>::deserialize(deserializer).map(Into::into)
496
+ }
497
+ }
436
498
 
437
499
  impl Default for BatchListQuery {
438
500
  fn default() -> Self {
@@ -465,7 +527,7 @@ impl BatchListQuery {
465
527
  }
466
528
  }
467
529
 
468
- #[derive(Clone, Debug, serde::Serialize, serde::Deserialize)]
530
+ #[derive(Clone, Debug, serde::Serialize)]
469
531
  #[serde(default)]
470
532
  #[magnus::wrap(class = "LiterLlm::BatchListResponse")]
471
533
  pub struct BatchListResponse {
@@ -503,6 +565,14 @@ impl magnus::TryConvert for BatchListResponse {
503
565
  }
504
566
 
505
567
  unsafe impl TryConvertOwned for BatchListResponse {}
568
+ impl<'de> serde::Deserialize<'de> for BatchListResponse {
569
+ fn deserialize<D>(deserializer: D) -> ::core::result::Result<Self, D::Error>
570
+ where
571
+ D: serde::Deserializer<'de>,
572
+ {
573
+ <liter_llm::types::BatchListResponse as serde::Deserialize>::deserialize(deserializer).map(Into::into)
574
+ }
575
+ }
506
576
 
507
577
  impl Default for BatchListResponse {
508
578
  fn default() -> Self {
@@ -558,7 +628,7 @@ impl BatchListResponse {
558
628
  }
559
629
  }
560
630
 
561
- #[derive(Clone, Debug, serde::Serialize, serde::Deserialize)]
631
+ #[derive(Clone, Debug, serde::Serialize)]
562
632
  #[serde(default)]
563
633
  #[magnus::wrap(class = "LiterLlm::BatchObject")]
564
634
  pub struct BatchObject {
@@ -605,6 +675,14 @@ impl magnus::TryConvert for BatchObject {
605
675
  }
606
676
 
607
677
  unsafe impl TryConvertOwned for BatchObject {}
678
+ impl<'de> serde::Deserialize<'de> for BatchObject {
679
+ fn deserialize<D>(deserializer: D) -> ::core::result::Result<Self, D::Error>
680
+ where
681
+ D: serde::Deserializer<'de>,
682
+ {
683
+ <liter_llm::types::BatchObject as serde::Deserialize>::deserialize(deserializer).map(Into::into)
684
+ }
685
+ }
608
686
 
609
687
  impl Default for BatchObject {
610
688
  fn default() -> Self {
@@ -806,7 +884,7 @@ impl BatchRequestCounts {
806
884
  }
807
885
  }
808
886
 
809
- #[derive(Clone, Debug, serde::Serialize, serde::Deserialize)]
887
+ #[derive(Clone, Debug, serde::Serialize)]
810
888
  #[serde(default)]
811
889
  #[magnus::wrap(class = "LiterLlm::BedrockConfig")]
812
890
  pub struct BedrockConfig {
@@ -844,6 +922,14 @@ impl magnus::TryConvert for BedrockConfig {
844
922
  }
845
923
 
846
924
  unsafe impl TryConvertOwned for BedrockConfig {}
925
+ impl<'de> serde::Deserialize<'de> for BedrockConfig {
926
+ fn deserialize<D>(deserializer: D) -> ::core::result::Result<Self, D::Error>
927
+ where
928
+ D: serde::Deserializer<'de>,
929
+ {
930
+ <liter_llm::client::BedrockConfig as serde::Deserialize>::deserialize(deserializer).map(Into::into)
931
+ }
932
+ }
847
933
 
848
934
  impl Default for BedrockConfig {
849
935
  fn default() -> Self {
@@ -897,6 +983,7 @@ impl BedrockConfig {
897
983
  }
898
984
  }
899
985
 
986
+ #[cfg(feature = "tower")]
900
987
  #[derive(Clone, Debug, serde::Serialize, serde::Deserialize)]
901
988
  #[serde(default)]
902
989
  #[magnus::wrap(class = "LiterLlm::BudgetConfig")]
@@ -906,8 +993,10 @@ pub struct BudgetConfig {
906
993
  enforcement: Enforcement,
907
994
  }
908
995
 
996
+ #[cfg(feature = "tower")]
909
997
  unsafe impl IntoValueFromNative for BudgetConfig {}
910
998
 
999
+ #[cfg(feature = "tower")]
911
1000
  impl magnus::TryConvert for BudgetConfig {
912
1001
  fn try_convert(val: magnus::Value) -> Result<Self, magnus::Error> {
913
1002
  if let Ok(r) = <&BudgetConfig as magnus::TryConvert>::try_convert(val) {
@@ -932,14 +1021,17 @@ impl magnus::TryConvert for BudgetConfig {
932
1021
  }
933
1022
  }
934
1023
 
1024
+ #[cfg(feature = "tower")]
935
1025
  unsafe impl TryConvertOwned for BudgetConfig {}
936
1026
 
1027
+ #[cfg(feature = "tower")]
937
1028
  impl Default for BudgetConfig {
938
1029
  fn default() -> Self {
939
1030
  liter_llm::BudgetConfig::default().into()
940
1031
  }
941
1032
  }
942
1033
 
1034
+ #[cfg(feature = "tower")]
943
1035
  impl BudgetConfig {
944
1036
  fn new(args: &[magnus::Value]) -> Result<Self, magnus::Error> {
945
1037
  let ruby = unsafe { magnus::Ruby::get_unchecked() };
@@ -974,6 +1066,7 @@ impl BudgetConfig {
974
1066
  }
975
1067
  }
976
1068
 
1069
+ #[cfg(feature = "tower")]
977
1070
  #[derive(Clone, Debug, serde::Serialize, serde::Deserialize)]
978
1071
  #[serde(default)]
979
1072
  #[magnus::wrap(class = "LiterLlm::CacheConfig")]
@@ -983,8 +1076,10 @@ pub struct CacheConfig {
983
1076
  backend: CacheBackend,
984
1077
  }
985
1078
 
1079
+ #[cfg(feature = "tower")]
986
1080
  unsafe impl IntoValueFromNative for CacheConfig {}
987
1081
 
1082
+ #[cfg(feature = "tower")]
988
1083
  impl magnus::TryConvert for CacheConfig {
989
1084
  fn try_convert(val: magnus::Value) -> Result<Self, magnus::Error> {
990
1085
  if let Ok(r) = <&CacheConfig as magnus::TryConvert>::try_convert(val) {
@@ -1009,14 +1104,17 @@ impl magnus::TryConvert for CacheConfig {
1009
1104
  }
1010
1105
  }
1011
1106
 
1107
+ #[cfg(feature = "tower")]
1012
1108
  unsafe impl TryConvertOwned for CacheConfig {}
1013
1109
 
1110
+ #[cfg(feature = "tower")]
1014
1111
  impl Default for CacheConfig {
1015
1112
  fn default() -> Self {
1016
1113
  liter_llm::CacheConfig::default().into()
1017
1114
  }
1018
1115
  }
1019
1116
 
1117
+ #[cfg(feature = "tower")]
1020
1118
  impl CacheConfig {
1021
1119
  fn new(args: &[magnus::Value]) -> Result<Self, magnus::Error> {
1022
1120
  let ruby = unsafe { magnus::Ruby::get_unchecked() };
@@ -1140,7 +1238,7 @@ impl CatalogRefreshConfig {
1140
1238
  }
1141
1239
  }
1142
1240
 
1143
- #[derive(Clone, Debug, serde::Serialize, serde::Deserialize)]
1241
+ #[derive(Clone, Debug, serde::Serialize)]
1144
1242
  #[serde(default)]
1145
1243
  #[magnus::wrap(class = "LiterLlm::ChatCompletionChunk")]
1146
1244
  pub struct ChatCompletionChunk {
@@ -1181,6 +1279,14 @@ impl magnus::TryConvert for ChatCompletionChunk {
1181
1279
  }
1182
1280
 
1183
1281
  unsafe impl TryConvertOwned for ChatCompletionChunk {}
1282
+ impl<'de> serde::Deserialize<'de> for ChatCompletionChunk {
1283
+ fn deserialize<D>(deserializer: D) -> ::core::result::Result<Self, D::Error>
1284
+ where
1285
+ D: serde::Deserializer<'de>,
1286
+ {
1287
+ <liter_llm::types::ChatCompletionChunk as serde::Deserialize>::deserialize(deserializer).map(Into::into)
1288
+ }
1289
+ }
1184
1290
 
1185
1291
  impl Default for ChatCompletionChunk {
1186
1292
  fn default() -> Self {
@@ -1260,7 +1366,7 @@ impl ChatCompletionChunk {
1260
1366
  }
1261
1367
  }
1262
1368
 
1263
- #[derive(Clone, Debug, serde::Serialize, serde::Deserialize)]
1369
+ #[derive(Clone, Debug, serde::Serialize)]
1264
1370
  #[serde(default)]
1265
1371
  #[magnus::wrap(class = "LiterLlm::ChatCompletionRequest")]
1266
1372
  pub struct ChatCompletionRequest {
@@ -1323,6 +1429,14 @@ impl magnus::TryConvert for ChatCompletionRequest {
1323
1429
  }
1324
1430
 
1325
1431
  unsafe impl TryConvertOwned for ChatCompletionRequest {}
1432
+ impl<'de> serde::Deserialize<'de> for ChatCompletionRequest {
1433
+ fn deserialize<D>(deserializer: D) -> ::core::result::Result<Self, D::Error>
1434
+ where
1435
+ D: serde::Deserializer<'de>,
1436
+ {
1437
+ <liter_llm::types::ChatCompletionRequest as serde::Deserialize>::deserialize(deserializer).map(Into::into)
1438
+ }
1439
+ }
1326
1440
 
1327
1441
  impl Default for ChatCompletionRequest {
1328
1442
  fn default() -> Self {
@@ -1551,7 +1665,7 @@ impl ChatCompletionRequest {
1551
1665
  }
1552
1666
  }
1553
1667
 
1554
- #[derive(Clone, Debug, serde::Serialize, serde::Deserialize)]
1668
+ #[derive(Clone, Debug, serde::Serialize)]
1555
1669
  #[serde(default)]
1556
1670
  #[magnus::wrap(class = "LiterLlm::ChatCompletionResponse")]
1557
1671
  pub struct ChatCompletionResponse {
@@ -1592,6 +1706,14 @@ impl magnus::TryConvert for ChatCompletionResponse {
1592
1706
  }
1593
1707
 
1594
1708
  unsafe impl TryConvertOwned for ChatCompletionResponse {}
1709
+ impl<'de> serde::Deserialize<'de> for ChatCompletionResponse {
1710
+ fn deserialize<D>(deserializer: D) -> ::core::result::Result<Self, D::Error>
1711
+ where
1712
+ D: serde::Deserializer<'de>,
1713
+ {
1714
+ <liter_llm::types::ChatCompletionResponse as serde::Deserialize>::deserialize(deserializer).map(Into::into)
1715
+ }
1716
+ }
1595
1717
 
1596
1718
  impl Default for ChatCompletionResponse {
1597
1719
  fn default() -> Self {
@@ -1743,7 +1865,7 @@ impl ChatCompletionTool {
1743
1865
  }
1744
1866
  }
1745
1867
 
1746
- #[derive(Clone, Debug, serde::Serialize, serde::Deserialize)]
1868
+ #[derive(Clone, Debug, serde::Serialize)]
1747
1869
  #[serde(default)]
1748
1870
  #[magnus::wrap(class = "LiterLlm::Choice")]
1749
1871
  pub struct Choice {
@@ -1780,6 +1902,14 @@ impl magnus::TryConvert for Choice {
1780
1902
  }
1781
1903
 
1782
1904
  unsafe impl TryConvertOwned for Choice {}
1905
+ impl<'de> serde::Deserialize<'de> for Choice {
1906
+ fn deserialize<D>(deserializer: D) -> ::core::result::Result<Self, D::Error>
1907
+ where
1908
+ D: serde::Deserializer<'de>,
1909
+ {
1910
+ <liter_llm::types::Choice as serde::Deserialize>::deserialize(deserializer).map(Into::into)
1911
+ }
1912
+ }
1783
1913
 
1784
1914
  impl Default for Choice {
1785
1915
  fn default() -> Self {
@@ -1828,7 +1958,7 @@ impl Choice {
1828
1958
  }
1829
1959
  }
1830
1960
 
1831
- #[derive(Clone, Debug, serde::Serialize, serde::Deserialize)]
1961
+ #[derive(Clone, Debug, serde::Serialize)]
1832
1962
  #[serde(default)]
1833
1963
  #[magnus::wrap(class = "LiterLlm::CreateBatchRequest")]
1834
1964
  pub struct CreateBatchRequest {
@@ -1865,6 +1995,14 @@ impl magnus::TryConvert for CreateBatchRequest {
1865
1995
  }
1866
1996
 
1867
1997
  unsafe impl TryConvertOwned for CreateBatchRequest {}
1998
+ impl<'de> serde::Deserialize<'de> for CreateBatchRequest {
1999
+ fn deserialize<D>(deserializer: D) -> ::core::result::Result<Self, D::Error>
2000
+ where
2001
+ D: serde::Deserializer<'de>,
2002
+ {
2003
+ <liter_llm::types::CreateBatchRequest as serde::Deserialize>::deserialize(deserializer).map(Into::into)
2004
+ }
2005
+ }
1868
2006
 
1869
2007
  impl Default for CreateBatchRequest {
1870
2008
  fn default() -> Self {
@@ -1914,7 +2052,7 @@ impl CreateBatchRequest {
1914
2052
  }
1915
2053
  }
1916
2054
 
1917
- #[derive(Clone, Debug, serde::Serialize, serde::Deserialize)]
2055
+ #[derive(Clone, Debug, serde::Serialize)]
1918
2056
  #[serde(default)]
1919
2057
  #[magnus::wrap(class = "LiterLlm::CreateFileRequest")]
1920
2058
  pub struct CreateFileRequest {
@@ -1950,6 +2088,14 @@ impl magnus::TryConvert for CreateFileRequest {
1950
2088
  }
1951
2089
 
1952
2090
  unsafe impl TryConvertOwned for CreateFileRequest {}
2091
+ impl<'de> serde::Deserialize<'de> for CreateFileRequest {
2092
+ fn deserialize<D>(deserializer: D) -> ::core::result::Result<Self, D::Error>
2093
+ where
2094
+ D: serde::Deserializer<'de>,
2095
+ {
2096
+ <liter_llm::types::CreateFileRequest as serde::Deserialize>::deserialize(deserializer).map(Into::into)
2097
+ }
2098
+ }
1953
2099
 
1954
2100
  impl Default for CreateFileRequest {
1955
2101
  fn default() -> Self {
@@ -1991,7 +2137,7 @@ impl CreateFileRequest {
1991
2137
  }
1992
2138
  }
1993
2139
 
1994
- #[derive(Clone, Debug, serde::Serialize, serde::Deserialize)]
2140
+ #[derive(Clone, Debug, serde::Serialize)]
1995
2141
  #[serde(default)]
1996
2142
  #[magnus::wrap(class = "LiterLlm::CreateImageRequest")]
1997
2143
  pub struct CreateImageRequest {
@@ -2032,6 +2178,14 @@ impl magnus::TryConvert for CreateImageRequest {
2032
2178
  }
2033
2179
 
2034
2180
  unsafe impl TryConvertOwned for CreateImageRequest {}
2181
+ impl<'de> serde::Deserialize<'de> for CreateImageRequest {
2182
+ fn deserialize<D>(deserializer: D) -> ::core::result::Result<Self, D::Error>
2183
+ where
2184
+ D: serde::Deserializer<'de>,
2185
+ {
2186
+ <liter_llm::types::CreateImageRequest as serde::Deserialize>::deserialize(deserializer).map(Into::into)
2187
+ }
2188
+ }
2035
2189
 
2036
2190
  impl Default for CreateImageRequest {
2037
2191
  fn default() -> Self {
@@ -2105,7 +2259,7 @@ impl CreateImageRequest {
2105
2259
  }
2106
2260
  }
2107
2261
 
2108
- #[derive(Clone, Debug, serde::Serialize, serde::Deserialize)]
2262
+ #[derive(Clone, Debug, serde::Serialize)]
2109
2263
  #[serde(default)]
2110
2264
  #[magnus::wrap(class = "LiterLlm::CreateResponseRequest")]
2111
2265
  pub struct CreateResponseRequest {
@@ -2147,6 +2301,14 @@ impl magnus::TryConvert for CreateResponseRequest {
2147
2301
  }
2148
2302
 
2149
2303
  unsafe impl TryConvertOwned for CreateResponseRequest {}
2304
+ impl<'de> serde::Deserialize<'de> for CreateResponseRequest {
2305
+ fn deserialize<D>(deserializer: D) -> ::core::result::Result<Self, D::Error>
2306
+ where
2307
+ D: serde::Deserializer<'de>,
2308
+ {
2309
+ <liter_llm::types::CreateResponseRequest as serde::Deserialize>::deserialize(deserializer).map(Into::into)
2310
+ }
2311
+ }
2150
2312
 
2151
2313
  impl Default for CreateResponseRequest {
2152
2314
  fn default() -> Self {
@@ -2230,7 +2392,7 @@ impl CreateResponseRequest {
2230
2392
  }
2231
2393
  }
2232
2394
 
2233
- #[derive(Clone, Debug, serde::Serialize, serde::Deserialize)]
2395
+ #[derive(Clone, Debug, serde::Serialize)]
2234
2396
  #[serde(default)]
2235
2397
  #[magnus::wrap(class = "LiterLlm::CreateSpeechRequest")]
2236
2398
  pub struct CreateSpeechRequest {
@@ -2268,6 +2430,14 @@ impl magnus::TryConvert for CreateSpeechRequest {
2268
2430
  }
2269
2431
 
2270
2432
  unsafe impl TryConvertOwned for CreateSpeechRequest {}
2433
+ impl<'de> serde::Deserialize<'de> for CreateSpeechRequest {
2434
+ fn deserialize<D>(deserializer: D) -> ::core::result::Result<Self, D::Error>
2435
+ where
2436
+ D: serde::Deserializer<'de>,
2437
+ {
2438
+ <liter_llm::types::CreateSpeechRequest as serde::Deserialize>::deserialize(deserializer).map(Into::into)
2439
+ }
2440
+ }
2271
2441
 
2272
2442
  impl Default for CreateSpeechRequest {
2273
2443
  fn default() -> Self {
@@ -2324,7 +2494,7 @@ impl CreateSpeechRequest {
2324
2494
  }
2325
2495
  }
2326
2496
 
2327
- #[derive(Clone, Debug, serde::Serialize, serde::Deserialize)]
2497
+ #[derive(Clone, Debug, serde::Serialize)]
2328
2498
  #[serde(default)]
2329
2499
  #[magnus::wrap(class = "LiterLlm::CreateTranscriptionRequest")]
2330
2500
  pub struct CreateTranscriptionRequest {
@@ -2363,6 +2533,14 @@ impl magnus::TryConvert for CreateTranscriptionRequest {
2363
2533
  }
2364
2534
 
2365
2535
  unsafe impl TryConvertOwned for CreateTranscriptionRequest {}
2536
+ impl<'de> serde::Deserialize<'de> for CreateTranscriptionRequest {
2537
+ fn deserialize<D>(deserializer: D) -> ::core::result::Result<Self, D::Error>
2538
+ where
2539
+ D: serde::Deserializer<'de>,
2540
+ {
2541
+ <liter_llm::types::CreateTranscriptionRequest as serde::Deserialize>::deserialize(deserializer).map(Into::into)
2542
+ }
2543
+ }
2366
2544
 
2367
2545
  impl Default for CreateTranscriptionRequest {
2368
2546
  fn default() -> Self {
@@ -2579,14 +2757,17 @@ impl DecodedDataUrl {
2579
2757
  }
2580
2758
  }
2581
2759
 
2760
+ #[cfg(any(feature = "native-http", feature = "wasm-http"))]
2582
2761
  #[derive(Clone)]
2583
2762
  #[magnus::wrap(class = "LiterLlm::DefaultClient")]
2584
2763
  pub struct DefaultClient {
2585
2764
  inner: Arc<liter_llm::client::DefaultClient>,
2586
2765
  }
2587
2766
 
2767
+ #[cfg(any(feature = "native-http", feature = "wasm-http"))]
2588
2768
  unsafe impl IntoValueFromNative for DefaultClient {}
2589
2769
 
2770
+ #[cfg(any(feature = "native-http", feature = "wasm-http"))]
2590
2771
  impl magnus::TryConvert for DefaultClient {
2591
2772
  fn try_convert(val: magnus::Value) -> Result<Self, magnus::Error> {
2592
2773
  let r: &DefaultClient = magnus::TryConvert::try_convert(val)?;
@@ -2594,8 +2775,10 @@ impl magnus::TryConvert for DefaultClient {
2594
2775
  }
2595
2776
  }
2596
2777
 
2778
+ #[cfg(any(feature = "native-http", feature = "wasm-http"))]
2597
2779
  unsafe impl TryConvertOwned for DefaultClient {}
2598
2780
 
2781
+ #[cfg(any(feature = "native-http", feature = "wasm-http"))]
2599
2782
  impl DefaultClient {
2600
2783
  #[cfg(any(feature = "native-http", feature = "wasm-http"))]
2601
2784
  fn chat_async(&self, req: ChatCompletionRequest) -> Result<ChatCompletionResponse, Error> {
@@ -3065,6 +3248,7 @@ impl DefaultClient {
3065
3248
  }
3066
3249
  }
3067
3250
 
3251
+ #[cfg(any(feature = "native-http", feature = "wasm-http"))]
3068
3252
  impl DefaultClient {
3069
3253
  /// Streaming variant of `chat_stream`. Drives the Rust core stream
3070
3254
  /// natively, yielding each chunk to the caller's block. When called
@@ -3181,7 +3365,7 @@ impl DeleteResponse {
3181
3365
  }
3182
3366
  }
3183
3367
 
3184
- #[derive(Clone, Debug, serde::Serialize, serde::Deserialize)]
3368
+ #[derive(Clone, Debug, serde::Serialize)]
3185
3369
  #[serde(default)]
3186
3370
  #[magnus::wrap(class = "LiterLlm::DeveloperMessage")]
3187
3371
  pub struct DeveloperMessage {
@@ -3216,6 +3400,14 @@ impl magnus::TryConvert for DeveloperMessage {
3216
3400
  }
3217
3401
 
3218
3402
  unsafe impl TryConvertOwned for DeveloperMessage {}
3403
+ impl<'de> serde::Deserialize<'de> for DeveloperMessage {
3404
+ fn deserialize<D>(deserializer: D) -> ::core::result::Result<Self, D::Error>
3405
+ where
3406
+ D: serde::Deserializer<'de>,
3407
+ {
3408
+ <liter_llm::types::DeveloperMessage as serde::Deserialize>::deserialize(deserializer).map(Into::into)
3409
+ }
3410
+ }
3219
3411
 
3220
3412
  impl Default for DeveloperMessage {
3221
3413
  fn default() -> Self {
@@ -3394,7 +3586,7 @@ impl EmbeddingObject {
3394
3586
  }
3395
3587
  }
3396
3588
 
3397
- #[derive(Clone, Debug, serde::Serialize, serde::Deserialize)]
3589
+ #[derive(Clone, Debug, serde::Serialize)]
3398
3590
  #[serde(default)]
3399
3591
  #[magnus::wrap(class = "LiterLlm::EmbeddingRequest")]
3400
3592
  pub struct EmbeddingRequest {
@@ -3432,6 +3624,14 @@ impl magnus::TryConvert for EmbeddingRequest {
3432
3624
  }
3433
3625
 
3434
3626
  unsafe impl TryConvertOwned for EmbeddingRequest {}
3627
+ impl<'de> serde::Deserialize<'de> for EmbeddingRequest {
3628
+ fn deserialize<D>(deserializer: D) -> ::core::result::Result<Self, D::Error>
3629
+ where
3630
+ D: serde::Deserializer<'de>,
3631
+ {
3632
+ <liter_llm::types::EmbeddingRequest as serde::Deserialize>::deserialize(deserializer).map(Into::into)
3633
+ }
3634
+ }
3435
3635
 
3436
3636
  impl Default for EmbeddingRequest {
3437
3637
  fn default() -> Self {
@@ -3487,7 +3687,7 @@ impl EmbeddingRequest {
3487
3687
  }
3488
3688
  }
3489
3689
 
3490
- #[derive(Clone, Debug, serde::Serialize, serde::Deserialize)]
3690
+ #[derive(Clone, Debug, serde::Serialize)]
3491
3691
  #[magnus::wrap(class = "LiterLlm::EmbeddingResponse")]
3492
3692
  pub struct EmbeddingResponse {
3493
3693
  object: String,
@@ -3523,6 +3723,14 @@ impl magnus::TryConvert for EmbeddingResponse {
3523
3723
  }
3524
3724
 
3525
3725
  unsafe impl TryConvertOwned for EmbeddingResponse {}
3726
+ impl<'de> serde::Deserialize<'de> for EmbeddingResponse {
3727
+ fn deserialize<D>(deserializer: D) -> ::core::result::Result<Self, D::Error>
3728
+ where
3729
+ D: serde::Deserializer<'de>,
3730
+ {
3731
+ <liter_llm::types::EmbeddingResponse as serde::Deserialize>::deserialize(deserializer).map(Into::into)
3732
+ }
3733
+ }
3526
3734
 
3527
3735
  impl Default for EmbeddingResponse {
3528
3736
  fn default() -> Self {
@@ -3577,7 +3785,7 @@ impl EmbeddingResponse {
3577
3785
  }
3578
3786
  }
3579
3787
 
3580
- #[derive(Clone, Debug, serde::Serialize, serde::Deserialize)]
3788
+ #[derive(Clone, Debug, serde::Serialize)]
3581
3789
  #[serde(default)]
3582
3790
  #[magnus::wrap(class = "LiterLlm::FileListQuery")]
3583
3791
  pub struct FileListQuery {
@@ -3613,6 +3821,14 @@ impl magnus::TryConvert for FileListQuery {
3613
3821
  }
3614
3822
 
3615
3823
  unsafe impl TryConvertOwned for FileListQuery {}
3824
+ impl<'de> serde::Deserialize<'de> for FileListQuery {
3825
+ fn deserialize<D>(deserializer: D) -> ::core::result::Result<Self, D::Error>
3826
+ where
3827
+ D: serde::Deserializer<'de>,
3828
+ {
3829
+ <liter_llm::types::FileListQuery as serde::Deserialize>::deserialize(deserializer).map(Into::into)
3830
+ }
3831
+ }
3616
3832
 
3617
3833
  impl Default for FileListQuery {
3618
3834
  fn default() -> Self {
@@ -3652,7 +3868,7 @@ impl FileListQuery {
3652
3868
  }
3653
3869
  }
3654
3870
 
3655
- #[derive(Clone, Debug, serde::Serialize, serde::Deserialize)]
3871
+ #[derive(Clone, Debug, serde::Serialize)]
3656
3872
  #[serde(default)]
3657
3873
  #[magnus::wrap(class = "LiterLlm::FileListResponse")]
3658
3874
  pub struct FileListResponse {
@@ -3688,6 +3904,14 @@ impl magnus::TryConvert for FileListResponse {
3688
3904
  }
3689
3905
 
3690
3906
  unsafe impl TryConvertOwned for FileListResponse {}
3907
+ impl<'de> serde::Deserialize<'de> for FileListResponse {
3908
+ fn deserialize<D>(deserializer: D) -> ::core::result::Result<Self, D::Error>
3909
+ where
3910
+ D: serde::Deserializer<'de>,
3911
+ {
3912
+ <liter_llm::types::FileListResponse as serde::Deserialize>::deserialize(deserializer).map(Into::into)
3913
+ }
3914
+ }
3691
3915
 
3692
3916
  impl Default for FileListResponse {
3693
3917
  fn default() -> Self {
@@ -3729,7 +3953,7 @@ impl FileListResponse {
3729
3953
  }
3730
3954
  }
3731
3955
 
3732
- #[derive(Clone, Debug, serde::Serialize, serde::Deserialize)]
3956
+ #[derive(Clone, Debug, serde::Serialize)]
3733
3957
  #[serde(default)]
3734
3958
  #[magnus::wrap(class = "LiterLlm::FileObject")]
3735
3959
  pub struct FileObject {
@@ -3769,6 +3993,14 @@ impl magnus::TryConvert for FileObject {
3769
3993
  }
3770
3994
 
3771
3995
  unsafe impl TryConvertOwned for FileObject {}
3996
+ impl<'de> serde::Deserialize<'de> for FileObject {
3997
+ fn deserialize<D>(deserializer: D) -> ::core::result::Result<Self, D::Error>
3998
+ where
3999
+ D: serde::Deserializer<'de>,
4000
+ {
4001
+ <liter_llm::types::FileObject as serde::Deserialize>::deserialize(deserializer).map(Into::into)
4002
+ }
4003
+ }
3772
4004
 
3773
4005
  impl Default for FileObject {
3774
4006
  fn default() -> Self {
@@ -3904,7 +4136,7 @@ impl FunctionCall {
3904
4136
  }
3905
4137
  }
3906
4138
 
3907
- #[derive(Clone, Debug, serde::Serialize, serde::Deserialize)]
4139
+ #[derive(Clone, Debug, serde::Serialize)]
3908
4140
  #[magnus::wrap(class = "LiterLlm::FunctionDefinition")]
3909
4141
  pub struct FunctionDefinition {
3910
4142
  name: String,
@@ -3940,6 +4172,14 @@ impl magnus::TryConvert for FunctionDefinition {
3940
4172
  }
3941
4173
 
3942
4174
  unsafe impl TryConvertOwned for FunctionDefinition {}
4175
+ impl<'de> serde::Deserialize<'de> for FunctionDefinition {
4176
+ fn deserialize<D>(deserializer: D) -> ::core::result::Result<Self, D::Error>
4177
+ where
4178
+ D: serde::Deserializer<'de>,
4179
+ {
4180
+ <liter_llm::types::FunctionDefinition as serde::Deserialize>::deserialize(deserializer).map(Into::into)
4181
+ }
4182
+ }
3943
4183
 
3944
4184
  impl Default for FunctionDefinition {
3945
4185
  fn default() -> Self {
@@ -4066,7 +4306,7 @@ impl FunctionMessage {
4066
4306
  }
4067
4307
  }
4068
4308
 
4069
- #[derive(Clone, Debug, serde::Serialize, serde::Deserialize)]
4309
+ #[derive(Clone, Debug, serde::Serialize)]
4070
4310
  #[serde(default)]
4071
4311
  #[magnus::wrap(class = "LiterLlm::Image")]
4072
4312
  pub struct Image {
@@ -4102,6 +4342,14 @@ impl magnus::TryConvert for Image {
4102
4342
  }
4103
4343
 
4104
4344
  unsafe impl TryConvertOwned for Image {}
4345
+ impl<'de> serde::Deserialize<'de> for Image {
4346
+ fn deserialize<D>(deserializer: D) -> ::core::result::Result<Self, D::Error>
4347
+ where
4348
+ D: serde::Deserializer<'de>,
4349
+ {
4350
+ <liter_llm::types::Image as serde::Deserialize>::deserialize(deserializer).map(Into::into)
4351
+ }
4352
+ }
4105
4353
 
4106
4354
  impl Default for Image {
4107
4355
  fn default() -> Self {
@@ -4141,7 +4389,7 @@ impl Image {
4141
4389
  }
4142
4390
  }
4143
4391
 
4144
- #[derive(Clone, Debug, serde::Serialize, serde::Deserialize)]
4392
+ #[derive(Clone, Debug, serde::Serialize)]
4145
4393
  #[serde(default)]
4146
4394
  #[magnus::wrap(class = "LiterLlm::ImageUrl")]
4147
4395
  pub struct ImageUrl {
@@ -4176,6 +4424,14 @@ impl magnus::TryConvert for ImageUrl {
4176
4424
  }
4177
4425
 
4178
4426
  unsafe impl TryConvertOwned for ImageUrl {}
4427
+ impl<'de> serde::Deserialize<'de> for ImageUrl {
4428
+ fn deserialize<D>(deserializer: D) -> ::core::result::Result<Self, D::Error>
4429
+ where
4430
+ D: serde::Deserializer<'de>,
4431
+ {
4432
+ <liter_llm::types::ImageUrl as serde::Deserialize>::deserialize(deserializer).map(Into::into)
4433
+ }
4434
+ }
4179
4435
 
4180
4436
  impl Default for ImageUrl {
4181
4437
  fn default() -> Self {
@@ -4278,6 +4534,7 @@ impl ImagesResponse {
4278
4534
  }
4279
4535
  }
4280
4536
 
4537
+ #[cfg(feature = "tower")]
4281
4538
  #[derive(Clone, Debug, serde::Serialize, serde::Deserialize)]
4282
4539
  #[serde(default)]
4283
4540
  #[magnus::wrap(class = "LiterLlm::InFlightLimitConfig")]
@@ -4285,8 +4542,10 @@ pub struct InFlightLimitConfig {
4285
4542
  max_in_flight: Option<usize>,
4286
4543
  }
4287
4544
 
4545
+ #[cfg(feature = "tower")]
4288
4546
  unsafe impl IntoValueFromNative for InFlightLimitConfig {}
4289
4547
 
4548
+ #[cfg(feature = "tower")]
4290
4549
  impl magnus::TryConvert for InFlightLimitConfig {
4291
4550
  fn try_convert(val: magnus::Value) -> Result<Self, magnus::Error> {
4292
4551
  if let Ok(r) = <&InFlightLimitConfig as magnus::TryConvert>::try_convert(val) {
@@ -4311,14 +4570,17 @@ impl magnus::TryConvert for InFlightLimitConfig {
4311
4570
  }
4312
4571
  }
4313
4572
 
4573
+ #[cfg(feature = "tower")]
4314
4574
  unsafe impl TryConvertOwned for InFlightLimitConfig {}
4315
4575
 
4576
+ #[cfg(feature = "tower")]
4316
4577
  impl Default for InFlightLimitConfig {
4317
4578
  fn default() -> Self {
4318
4579
  liter_llm::InFlightLimitConfig::default().into()
4319
4580
  }
4320
4581
  }
4321
4582
 
4583
+ #[cfg(feature = "tower")]
4322
4584
  impl InFlightLimitConfig {
4323
4585
  fn new(args: &[magnus::Value]) -> Result<Self, magnus::Error> {
4324
4586
  let ruby = unsafe { magnus::Ruby::get_unchecked() };
@@ -4337,6 +4599,7 @@ impl InFlightLimitConfig {
4337
4599
  }
4338
4600
  }
4339
4601
 
4602
+ #[cfg(feature = "tower")]
4340
4603
  #[derive(Clone, Debug, serde::Serialize, serde::Deserialize)]
4341
4604
  #[magnus::wrap(class = "LiterLlm::IntentPrototype")]
4342
4605
  pub struct IntentPrototype {
@@ -4345,8 +4608,10 @@ pub struct IntentPrototype {
4345
4608
  model: String,
4346
4609
  }
4347
4610
 
4611
+ #[cfg(feature = "tower")]
4348
4612
  unsafe impl IntoValueFromNative for IntentPrototype {}
4349
4613
 
4614
+ #[cfg(feature = "tower")]
4350
4615
  impl magnus::TryConvert for IntentPrototype {
4351
4616
  fn try_convert(val: magnus::Value) -> Result<Self, magnus::Error> {
4352
4617
  if let Ok(r) = <&IntentPrototype as magnus::TryConvert>::try_convert(val) {
@@ -4371,8 +4636,10 @@ impl magnus::TryConvert for IntentPrototype {
4371
4636
  }
4372
4637
  }
4373
4638
 
4639
+ #[cfg(feature = "tower")]
4374
4640
  unsafe impl TryConvertOwned for IntentPrototype {}
4375
4641
 
4642
+ #[cfg(feature = "tower")]
4376
4643
  impl IntentPrototype {
4377
4644
  fn new(args: &[magnus::Value]) -> Result<Self, magnus::Error> {
4378
4645
  let ruby = unsafe { magnus::Ruby::get_unchecked() };
@@ -4408,7 +4675,7 @@ impl IntentPrototype {
4408
4675
  }
4409
4676
  }
4410
4677
 
4411
- #[derive(Clone, Debug, serde::Serialize, serde::Deserialize)]
4678
+ #[derive(Clone, Debug, serde::Serialize)]
4412
4679
  #[serde(default)]
4413
4680
  #[magnus::wrap(class = "LiterLlm::JsonSchemaFormat")]
4414
4681
  pub struct JsonSchemaFormat {
@@ -4445,6 +4712,14 @@ impl magnus::TryConvert for JsonSchemaFormat {
4445
4712
  }
4446
4713
 
4447
4714
  unsafe impl TryConvertOwned for JsonSchemaFormat {}
4715
+ impl<'de> serde::Deserialize<'de> for JsonSchemaFormat {
4716
+ fn deserialize<D>(deserializer: D) -> ::core::result::Result<Self, D::Error>
4717
+ where
4718
+ D: serde::Deserializer<'de>,
4719
+ {
4720
+ <liter_llm::types::JsonSchemaFormat as serde::Deserialize>::deserialize(deserializer).map(Into::into)
4721
+ }
4722
+ }
4448
4723
 
4449
4724
  impl Default for JsonSchemaFormat {
4450
4725
  fn default() -> Self {
@@ -4493,7 +4768,7 @@ impl JsonSchemaFormat {
4493
4768
  }
4494
4769
  }
4495
4770
 
4496
- #[derive(Clone, Debug, serde::Serialize, serde::Deserialize)]
4771
+ #[derive(Clone, Debug, serde::Serialize)]
4497
4772
  #[serde(default)]
4498
4773
  #[magnus::wrap(class = "LiterLlm::LlmBudgetConfig")]
4499
4774
  pub struct LlmBudgetConfig {
@@ -4529,6 +4804,14 @@ impl magnus::TryConvert for LlmBudgetConfig {
4529
4804
  }
4530
4805
 
4531
4806
  unsafe impl TryConvertOwned for LlmBudgetConfig {}
4807
+ impl<'de> serde::Deserialize<'de> for LlmBudgetConfig {
4808
+ fn deserialize<D>(deserializer: D) -> ::core::result::Result<Self, D::Error>
4809
+ where
4810
+ D: serde::Deserializer<'de>,
4811
+ {
4812
+ <liter_llm::client::LlmBudgetConfig as serde::Deserialize>::deserialize(deserializer).map(Into::into)
4813
+ }
4814
+ }
4532
4815
 
4533
4816
  impl Default for LlmBudgetConfig {
4534
4817
  fn default() -> Self {
@@ -4568,7 +4851,7 @@ impl LlmBudgetConfig {
4568
4851
  }
4569
4852
  }
4570
4853
 
4571
- #[derive(Clone, Debug, serde::Serialize, serde::Deserialize)]
4854
+ #[derive(Clone, Debug, serde::Serialize)]
4572
4855
  #[serde(default)]
4573
4856
  #[magnus::wrap(class = "LiterLlm::LlmCacheConfig")]
4574
4857
  pub struct LlmCacheConfig {
@@ -4605,6 +4888,14 @@ impl magnus::TryConvert for LlmCacheConfig {
4605
4888
  }
4606
4889
 
4607
4890
  unsafe impl TryConvertOwned for LlmCacheConfig {}
4891
+ impl<'de> serde::Deserialize<'de> for LlmCacheConfig {
4892
+ fn deserialize<D>(deserializer: D) -> ::core::result::Result<Self, D::Error>
4893
+ where
4894
+ D: serde::Deserializer<'de>,
4895
+ {
4896
+ <liter_llm::client::LlmCacheConfig as serde::Deserialize>::deserialize(deserializer).map(Into::into)
4897
+ }
4898
+ }
4608
4899
 
4609
4900
  impl Default for LlmCacheConfig {
4610
4901
  fn default() -> Self {
@@ -4651,7 +4942,7 @@ impl LlmCacheConfig {
4651
4942
  }
4652
4943
  }
4653
4944
 
4654
- #[derive(Clone, Debug, serde::Serialize, serde::Deserialize)]
4945
+ #[derive(Clone, Debug, serde::Serialize)]
4655
4946
  #[serde(default)]
4656
4947
  #[magnus::wrap(class = "LiterLlm::LlmConfig")]
4657
4948
  pub struct LlmConfig {
@@ -4703,6 +4994,14 @@ impl magnus::TryConvert for LlmConfig {
4703
4994
  }
4704
4995
 
4705
4996
  unsafe impl TryConvertOwned for LlmConfig {}
4997
+ impl<'de> serde::Deserialize<'de> for LlmConfig {
4998
+ fn deserialize<D>(deserializer: D) -> ::core::result::Result<Self, D::Error>
4999
+ where
5000
+ D: serde::Deserializer<'de>,
5001
+ {
5002
+ <liter_llm::client::LlmConfig as serde::Deserialize>::deserialize(deserializer).map(Into::into)
5003
+ }
5004
+ }
4706
5005
 
4707
5006
  impl Default for LlmConfig {
4708
5007
  fn default() -> Self {
@@ -4855,7 +5154,7 @@ impl LlmConfig {
4855
5154
  }
4856
5155
  }
4857
5156
 
4858
- #[derive(Clone, Debug, serde::Serialize, serde::Deserialize)]
5157
+ #[derive(Clone, Debug, serde::Serialize)]
4859
5158
  #[serde(default)]
4860
5159
  #[magnus::wrap(class = "LiterLlm::LlmInFlightLimitConfig")]
4861
5160
  pub struct LlmInFlightLimitConfig {
@@ -4889,6 +5188,14 @@ impl magnus::TryConvert for LlmInFlightLimitConfig {
4889
5188
  }
4890
5189
 
4891
5190
  unsafe impl TryConvertOwned for LlmInFlightLimitConfig {}
5191
+ impl<'de> serde::Deserialize<'de> for LlmInFlightLimitConfig {
5192
+ fn deserialize<D>(deserializer: D) -> ::core::result::Result<Self, D::Error>
5193
+ where
5194
+ D: serde::Deserializer<'de>,
5195
+ {
5196
+ <liter_llm::client::LlmInFlightLimitConfig as serde::Deserialize>::deserialize(deserializer).map(Into::into)
5197
+ }
5198
+ }
4892
5199
 
4893
5200
  impl Default for LlmInFlightLimitConfig {
4894
5201
  fn default() -> Self {
@@ -4914,7 +5221,7 @@ impl LlmInFlightLimitConfig {
4914
5221
  }
4915
5222
  }
4916
5223
 
4917
- #[derive(Clone, Debug, serde::Serialize, serde::Deserialize)]
5224
+ #[derive(Clone, Debug, serde::Serialize)]
4918
5225
  #[serde(default)]
4919
5226
  #[magnus::wrap(class = "LiterLlm::LlmProviderConfig")]
4920
5227
  pub struct LlmProviderConfig {
@@ -4951,6 +5258,14 @@ impl magnus::TryConvert for LlmProviderConfig {
4951
5258
  }
4952
5259
 
4953
5260
  unsafe impl TryConvertOwned for LlmProviderConfig {}
5261
+ impl<'de> serde::Deserialize<'de> for LlmProviderConfig {
5262
+ fn deserialize<D>(deserializer: D) -> ::core::result::Result<Self, D::Error>
5263
+ where
5264
+ D: serde::Deserializer<'de>,
5265
+ {
5266
+ <liter_llm::client::LlmProviderConfig as serde::Deserialize>::deserialize(deserializer).map(Into::into)
5267
+ }
5268
+ }
4954
5269
 
4955
5270
  impl Default for LlmProviderConfig {
4956
5271
  fn default() -> Self {
@@ -5000,7 +5315,7 @@ impl LlmProviderConfig {
5000
5315
  }
5001
5316
  }
5002
5317
 
5003
- #[derive(Clone, Debug, serde::Serialize, serde::Deserialize)]
5318
+ #[derive(Clone, Debug, serde::Serialize)]
5004
5319
  #[serde(default)]
5005
5320
  #[magnus::wrap(class = "LiterLlm::LlmRateLimitConfig")]
5006
5321
  pub struct LlmRateLimitConfig {
@@ -5036,6 +5351,14 @@ impl magnus::TryConvert for LlmRateLimitConfig {
5036
5351
  }
5037
5352
 
5038
5353
  unsafe impl TryConvertOwned for LlmRateLimitConfig {}
5354
+ impl<'de> serde::Deserialize<'de> for LlmRateLimitConfig {
5355
+ fn deserialize<D>(deserializer: D) -> ::core::result::Result<Self, D::Error>
5356
+ where
5357
+ D: serde::Deserializer<'de>,
5358
+ {
5359
+ <liter_llm::client::LlmRateLimitConfig as serde::Deserialize>::deserialize(deserializer).map(Into::into)
5360
+ }
5361
+ }
5039
5362
 
5040
5363
  impl Default for LlmRateLimitConfig {
5041
5364
  fn default() -> Self {
@@ -5277,7 +5600,7 @@ impl ModelInfo {
5277
5600
  }
5278
5601
  }
5279
5602
 
5280
- #[derive(Clone, Debug, serde::Serialize, serde::Deserialize)]
5603
+ #[derive(Clone, Debug, serde::Serialize)]
5281
5604
  #[serde(default)]
5282
5605
  #[magnus::wrap(class = "LiterLlm::ModelObject")]
5283
5606
  pub struct ModelObject {
@@ -5314,6 +5637,14 @@ impl magnus::TryConvert for ModelObject {
5314
5637
  }
5315
5638
 
5316
5639
  unsafe impl TryConvertOwned for ModelObject {}
5640
+ impl<'de> serde::Deserialize<'de> for ModelObject {
5641
+ fn deserialize<D>(deserializer: D) -> ::core::result::Result<Self, D::Error>
5642
+ where
5643
+ D: serde::Deserializer<'de>,
5644
+ {
5645
+ <liter_llm::types::ModelObject as serde::Deserialize>::deserialize(deserializer).map(Into::into)
5646
+ }
5647
+ }
5317
5648
 
5318
5649
  impl Default for ModelObject {
5319
5650
  fn default() -> Self {
@@ -5482,7 +5813,7 @@ impl ModelTier {
5482
5813
  }
5483
5814
  }
5484
5815
 
5485
- #[derive(Clone, Debug, serde::Serialize, serde::Deserialize)]
5816
+ #[derive(Clone, Debug, serde::Serialize)]
5486
5817
  #[serde(default)]
5487
5818
  #[magnus::wrap(class = "LiterLlm::ModelsListResponse")]
5488
5819
  pub struct ModelsListResponse {
@@ -5517,6 +5848,14 @@ impl magnus::TryConvert for ModelsListResponse {
5517
5848
  }
5518
5849
 
5519
5850
  unsafe impl TryConvertOwned for ModelsListResponse {}
5851
+ impl<'de> serde::Deserialize<'de> for ModelsListResponse {
5852
+ fn deserialize<D>(deserializer: D) -> ::core::result::Result<Self, D::Error>
5853
+ where
5854
+ D: serde::Deserializer<'de>,
5855
+ {
5856
+ <liter_llm::types::ModelsListResponse as serde::Deserialize>::deserialize(deserializer).map(Into::into)
5857
+ }
5858
+ }
5520
5859
 
5521
5860
  impl Default for ModelsListResponse {
5522
5861
  fn default() -> Self {
@@ -5551,7 +5890,7 @@ impl ModelsListResponse {
5551
5890
  }
5552
5891
  }
5553
5892
 
5554
- #[derive(Clone, Debug, serde::Serialize, serde::Deserialize)]
5893
+ #[derive(Clone, Debug, serde::Serialize)]
5555
5894
  #[serde(default)]
5556
5895
  #[magnus::wrap(class = "LiterLlm::ModerationCategories")]
5557
5896
  pub struct ModerationCategories {
@@ -5595,6 +5934,14 @@ impl magnus::TryConvert for ModerationCategories {
5595
5934
  }
5596
5935
 
5597
5936
  unsafe impl TryConvertOwned for ModerationCategories {}
5937
+ impl<'de> serde::Deserialize<'de> for ModerationCategories {
5938
+ fn deserialize<D>(deserializer: D) -> ::core::result::Result<Self, D::Error>
5939
+ where
5940
+ D: serde::Deserializer<'de>,
5941
+ {
5942
+ <liter_llm::types::ModerationCategories as serde::Deserialize>::deserialize(deserializer).map(Into::into)
5943
+ }
5944
+ }
5598
5945
 
5599
5946
  impl Default for ModerationCategories {
5600
5947
  fn default() -> Self {
@@ -5701,7 +6048,7 @@ impl ModerationCategories {
5701
6048
  }
5702
6049
  }
5703
6050
 
5704
- #[derive(Clone, Debug, serde::Serialize, serde::Deserialize)]
6051
+ #[derive(Clone, Debug, serde::Serialize)]
5705
6052
  #[serde(default)]
5706
6053
  #[magnus::wrap(class = "LiterLlm::ModerationCategoryScores")]
5707
6054
  pub struct ModerationCategoryScores {
@@ -5745,6 +6092,14 @@ impl magnus::TryConvert for ModerationCategoryScores {
5745
6092
  }
5746
6093
 
5747
6094
  unsafe impl TryConvertOwned for ModerationCategoryScores {}
6095
+ impl<'de> serde::Deserialize<'de> for ModerationCategoryScores {
6096
+ fn deserialize<D>(deserializer: D) -> ::core::result::Result<Self, D::Error>
6097
+ where
6098
+ D: serde::Deserializer<'de>,
6099
+ {
6100
+ <liter_llm::types::ModerationCategoryScores as serde::Deserialize>::deserialize(deserializer).map(Into::into)
6101
+ }
6102
+ }
5748
6103
 
5749
6104
  impl Default for ModerationCategoryScores {
5750
6105
  fn default() -> Self {
@@ -5851,7 +6206,7 @@ impl ModerationCategoryScores {
5851
6206
  }
5852
6207
  }
5853
6208
 
5854
- #[derive(Clone, Debug, serde::Serialize, serde::Deserialize)]
6209
+ #[derive(Clone, Debug, serde::Serialize)]
5855
6210
  #[serde(default)]
5856
6211
  #[magnus::wrap(class = "LiterLlm::ModerationRequest")]
5857
6212
  pub struct ModerationRequest {
@@ -5886,6 +6241,14 @@ impl magnus::TryConvert for ModerationRequest {
5886
6241
  }
5887
6242
 
5888
6243
  unsafe impl TryConvertOwned for ModerationRequest {}
6244
+ impl<'de> serde::Deserialize<'de> for ModerationRequest {
6245
+ fn deserialize<D>(deserializer: D) -> ::core::result::Result<Self, D::Error>
6246
+ where
6247
+ D: serde::Deserializer<'de>,
6248
+ {
6249
+ <liter_llm::types::ModerationRequest as serde::Deserialize>::deserialize(deserializer).map(Into::into)
6250
+ }
6251
+ }
5889
6252
 
5890
6253
  impl Default for ModerationRequest {
5891
6254
  fn default() -> Self {
@@ -6071,7 +6434,7 @@ impl ModerationResult {
6071
6434
  }
6072
6435
  }
6073
6436
 
6074
- #[derive(Clone, Debug, serde::Serialize, serde::Deserialize)]
6437
+ #[derive(Clone, Debug, serde::Serialize)]
6075
6438
  #[magnus::wrap(class = "LiterLlm::OcrImage")]
6076
6439
  pub struct OcrImage {
6077
6440
  id: String,
@@ -6105,6 +6468,14 @@ impl magnus::TryConvert for OcrImage {
6105
6468
  }
6106
6469
 
6107
6470
  unsafe impl TryConvertOwned for OcrImage {}
6471
+ impl<'de> serde::Deserialize<'de> for OcrImage {
6472
+ fn deserialize<D>(deserializer: D) -> ::core::result::Result<Self, D::Error>
6473
+ where
6474
+ D: serde::Deserializer<'de>,
6475
+ {
6476
+ <liter_llm::types::OcrImage as serde::Deserialize>::deserialize(deserializer).map(Into::into)
6477
+ }
6478
+ }
6108
6479
 
6109
6480
  impl Default for OcrImage {
6110
6481
  fn default() -> Self {
@@ -6141,7 +6512,7 @@ impl OcrImage {
6141
6512
  }
6142
6513
  }
6143
6514
 
6144
- #[derive(Clone, Debug, serde::Serialize, serde::Deserialize)]
6515
+ #[derive(Clone, Debug, serde::Serialize)]
6145
6516
  #[magnus::wrap(class = "LiterLlm::OcrPage")]
6146
6517
  pub struct OcrPage {
6147
6518
  index: u32,
@@ -6177,6 +6548,14 @@ impl magnus::TryConvert for OcrPage {
6177
6548
  }
6178
6549
 
6179
6550
  unsafe impl TryConvertOwned for OcrPage {}
6551
+ impl<'de> serde::Deserialize<'de> for OcrPage {
6552
+ fn deserialize<D>(deserializer: D) -> ::core::result::Result<Self, D::Error>
6553
+ where
6554
+ D: serde::Deserializer<'de>,
6555
+ {
6556
+ <liter_llm::types::OcrPage as serde::Deserialize>::deserialize(deserializer).map(Into::into)
6557
+ }
6558
+ }
6180
6559
 
6181
6560
  impl Default for OcrPage {
6182
6561
  fn default() -> Self {
@@ -6230,7 +6609,7 @@ impl OcrPage {
6230
6609
  }
6231
6610
  }
6232
6611
 
6233
- #[derive(Clone, Debug, serde::Serialize, serde::Deserialize)]
6612
+ #[derive(Clone, Debug, serde::Serialize)]
6234
6613
  #[serde(default)]
6235
6614
  #[magnus::wrap(class = "LiterLlm::OcrRequest")]
6236
6615
  pub struct OcrRequest {
@@ -6267,6 +6646,14 @@ impl magnus::TryConvert for OcrRequest {
6267
6646
  }
6268
6647
 
6269
6648
  unsafe impl TryConvertOwned for OcrRequest {}
6649
+ impl<'de> serde::Deserialize<'de> for OcrRequest {
6650
+ fn deserialize<D>(deserializer: D) -> ::core::result::Result<Self, D::Error>
6651
+ where
6652
+ D: serde::Deserializer<'de>,
6653
+ {
6654
+ <liter_llm::types::OcrRequest as serde::Deserialize>::deserialize(deserializer).map(Into::into)
6655
+ }
6656
+ }
6270
6657
 
6271
6658
  impl Default for OcrRequest {
6272
6659
  fn default() -> Self {
@@ -6315,7 +6702,7 @@ impl OcrRequest {
6315
6702
  }
6316
6703
  }
6317
6704
 
6318
- #[derive(Clone, Debug, serde::Serialize, serde::Deserialize)]
6705
+ #[derive(Clone, Debug, serde::Serialize)]
6319
6706
  #[magnus::wrap(class = "LiterLlm::OcrResponse")]
6320
6707
  pub struct OcrResponse {
6321
6708
  pages: Vec<OcrPage>,
@@ -6350,6 +6737,14 @@ impl magnus::TryConvert for OcrResponse {
6350
6737
  }
6351
6738
 
6352
6739
  unsafe impl TryConvertOwned for OcrResponse {}
6740
+ impl<'de> serde::Deserialize<'de> for OcrResponse {
6741
+ fn deserialize<D>(deserializer: D) -> ::core::result::Result<Self, D::Error>
6742
+ where
6743
+ D: serde::Deserializer<'de>,
6744
+ {
6745
+ <liter_llm::types::OcrResponse as serde::Deserialize>::deserialize(deserializer).map(Into::into)
6746
+ }
6747
+ }
6353
6748
 
6354
6749
  impl Default for OcrResponse {
6355
6750
  fn default() -> Self {
@@ -6457,7 +6852,7 @@ impl PageDimensions {
6457
6852
  }
6458
6853
  }
6459
6854
 
6460
- #[derive(Clone, Debug, serde::Serialize, serde::Deserialize)]
6855
+ #[derive(Clone, Debug, serde::Serialize)]
6461
6856
  #[serde(default)]
6462
6857
  #[magnus::wrap(class = "LiterLlm::PromptTokensDetails")]
6463
6858
  pub struct PromptTokensDetails {
@@ -6492,6 +6887,14 @@ impl magnus::TryConvert for PromptTokensDetails {
6492
6887
  }
6493
6888
 
6494
6889
  unsafe impl TryConvertOwned for PromptTokensDetails {}
6890
+ impl<'de> serde::Deserialize<'de> for PromptTokensDetails {
6891
+ fn deserialize<D>(deserializer: D) -> ::core::result::Result<Self, D::Error>
6892
+ where
6893
+ D: serde::Deserializer<'de>,
6894
+ {
6895
+ <liter_llm::types::PromptTokensDetails as serde::Deserialize>::deserialize(deserializer).map(Into::into)
6896
+ }
6897
+ }
6495
6898
 
6496
6899
  impl Default for PromptTokensDetails {
6497
6900
  fn default() -> Self {
@@ -6741,6 +7144,7 @@ impl ProviderConfig {
6741
7144
  }
6742
7145
  }
6743
7146
 
7147
+ #[cfg(feature = "tower")]
6744
7148
  #[derive(Clone, Debug, serde::Serialize, serde::Deserialize)]
6745
7149
  #[serde(default)]
6746
7150
  #[magnus::wrap(class = "LiterLlm::RateLimitConfig")]
@@ -6750,8 +7154,10 @@ pub struct RateLimitConfig {
6750
7154
  window: u64,
6751
7155
  }
6752
7156
 
7157
+ #[cfg(feature = "tower")]
6753
7158
  unsafe impl IntoValueFromNative for RateLimitConfig {}
6754
7159
 
7160
+ #[cfg(feature = "tower")]
6755
7161
  impl magnus::TryConvert for RateLimitConfig {
6756
7162
  fn try_convert(val: magnus::Value) -> Result<Self, magnus::Error> {
6757
7163
  if let Ok(r) = <&RateLimitConfig as magnus::TryConvert>::try_convert(val) {
@@ -6776,14 +7182,17 @@ impl magnus::TryConvert for RateLimitConfig {
6776
7182
  }
6777
7183
  }
6778
7184
 
7185
+ #[cfg(feature = "tower")]
6779
7186
  unsafe impl TryConvertOwned for RateLimitConfig {}
6780
7187
 
7188
+ #[cfg(feature = "tower")]
6781
7189
  impl Default for RateLimitConfig {
6782
7190
  fn default() -> Self {
6783
7191
  liter_llm::RateLimitConfig::default().into()
6784
7192
  }
6785
7193
  }
6786
7194
 
7195
+ #[cfg(feature = "tower")]
6787
7196
  impl RateLimitConfig {
6788
7197
  fn new(args: &[magnus::Value]) -> Result<Self, magnus::Error> {
6789
7198
  let ruby = unsafe { magnus::Ruby::get_unchecked() };
@@ -6813,7 +7222,7 @@ impl RateLimitConfig {
6813
7222
  }
6814
7223
  }
6815
7224
 
6816
- #[derive(Clone, Debug, serde::Serialize, serde::Deserialize)]
7225
+ #[derive(Clone, Debug, serde::Serialize)]
6817
7226
  #[serde(default)]
6818
7227
  #[magnus::wrap(class = "LiterLlm::RerankRequest")]
6819
7228
  pub struct RerankRequest {
@@ -6851,6 +7260,14 @@ impl magnus::TryConvert for RerankRequest {
6851
7260
  }
6852
7261
 
6853
7262
  unsafe impl TryConvertOwned for RerankRequest {}
7263
+ impl<'de> serde::Deserialize<'de> for RerankRequest {
7264
+ fn deserialize<D>(deserializer: D) -> ::core::result::Result<Self, D::Error>
7265
+ where
7266
+ D: serde::Deserializer<'de>,
7267
+ {
7268
+ <liter_llm::types::RerankRequest as serde::Deserialize>::deserialize(deserializer).map(Into::into)
7269
+ }
7270
+ }
6854
7271
 
6855
7272
  impl Default for RerankRequest {
6856
7273
  fn default() -> Self {
@@ -6907,7 +7324,7 @@ impl RerankRequest {
6907
7324
  }
6908
7325
  }
6909
7326
 
6910
- #[derive(Clone, Debug, serde::Serialize, serde::Deserialize)]
7327
+ #[derive(Clone, Debug, serde::Serialize)]
6911
7328
  #[magnus::wrap(class = "LiterLlm::RerankResponse")]
6912
7329
  pub struct RerankResponse {
6913
7330
  id: Option<String>,
@@ -6942,6 +7359,14 @@ impl magnus::TryConvert for RerankResponse {
6942
7359
  }
6943
7360
 
6944
7361
  unsafe impl TryConvertOwned for RerankResponse {}
7362
+ impl<'de> serde::Deserialize<'de> for RerankResponse {
7363
+ fn deserialize<D>(deserializer: D) -> ::core::result::Result<Self, D::Error>
7364
+ where
7365
+ D: serde::Deserializer<'de>,
7366
+ {
7367
+ <liter_llm::types::RerankResponse as serde::Deserialize>::deserialize(deserializer).map(Into::into)
7368
+ }
7369
+ }
6945
7370
 
6946
7371
  impl Default for RerankResponse {
6947
7372
  fn default() -> Self {
@@ -6986,7 +7411,7 @@ impl RerankResponse {
6986
7411
  }
6987
7412
  }
6988
7413
 
6989
- #[derive(Clone, Debug, serde::Serialize, serde::Deserialize)]
7414
+ #[derive(Clone, Debug, serde::Serialize)]
6990
7415
  #[magnus::wrap(class = "LiterLlm::RerankResult")]
6991
7416
  pub struct RerankResult {
6992
7417
  index: u32,
@@ -7021,6 +7446,14 @@ impl magnus::TryConvert for RerankResult {
7021
7446
  }
7022
7447
 
7023
7448
  unsafe impl TryConvertOwned for RerankResult {}
7449
+ impl<'de> serde::Deserialize<'de> for RerankResult {
7450
+ fn deserialize<D>(deserializer: D) -> ::core::result::Result<Self, D::Error>
7451
+ where
7452
+ D: serde::Deserializer<'de>,
7453
+ {
7454
+ <liter_llm::types::RerankResult as serde::Deserialize>::deserialize(deserializer).map(Into::into)
7455
+ }
7456
+ }
7024
7457
 
7025
7458
  impl Default for RerankResult {
7026
7459
  fn default() -> Self {
@@ -7119,7 +7552,7 @@ impl RerankResultDocument {
7119
7552
  }
7120
7553
  }
7121
7554
 
7122
- #[derive(Clone, Debug, serde::Serialize, serde::Deserialize)]
7555
+ #[derive(Clone, Debug, serde::Serialize)]
7123
7556
  #[serde(default)]
7124
7557
  #[magnus::wrap(class = "LiterLlm::ResponseObject")]
7125
7558
  pub struct ResponseObject {
@@ -7160,6 +7593,14 @@ impl magnus::TryConvert for ResponseObject {
7160
7593
  }
7161
7594
 
7162
7595
  unsafe impl TryConvertOwned for ResponseObject {}
7596
+ impl<'de> serde::Deserialize<'de> for ResponseObject {
7597
+ fn deserialize<D>(deserializer: D) -> ::core::result::Result<Self, D::Error>
7598
+ where
7599
+ D: serde::Deserializer<'de>,
7600
+ {
7601
+ <liter_llm::types::ResponseObject as serde::Deserialize>::deserialize(deserializer).map(Into::into)
7602
+ }
7603
+ }
7163
7604
 
7164
7605
  impl Default for ResponseObject {
7165
7606
  fn default() -> Self {
@@ -7240,7 +7681,7 @@ impl ResponseObject {
7240
7681
  }
7241
7682
  }
7242
7683
 
7243
- #[derive(Clone, Debug, serde::Serialize, serde::Deserialize)]
7684
+ #[derive(Clone, Debug, serde::Serialize)]
7244
7685
  #[serde(default)]
7245
7686
  #[magnus::wrap(class = "LiterLlm::ResponseOutputItem")]
7246
7687
  pub struct ResponseOutputItem {
@@ -7275,6 +7716,14 @@ impl magnus::TryConvert for ResponseOutputItem {
7275
7716
  }
7276
7717
 
7277
7718
  unsafe impl TryConvertOwned for ResponseOutputItem {}
7719
+ impl<'de> serde::Deserialize<'de> for ResponseOutputItem {
7720
+ fn deserialize<D>(deserializer: D) -> ::core::result::Result<Self, D::Error>
7721
+ where
7722
+ D: serde::Deserializer<'de>,
7723
+ {
7724
+ <liter_llm::types::ResponseOutputItem as serde::Deserialize>::deserialize(deserializer).map(Into::into)
7725
+ }
7726
+ }
7278
7727
 
7279
7728
  impl Default for ResponseOutputItem {
7280
7729
  fn default() -> Self {
@@ -7309,7 +7758,7 @@ impl ResponseOutputItem {
7309
7758
  }
7310
7759
  }
7311
7760
 
7312
- #[derive(Clone, Debug, serde::Serialize, serde::Deserialize)]
7761
+ #[derive(Clone, Debug, serde::Serialize)]
7313
7762
  #[serde(default)]
7314
7763
  #[magnus::wrap(class = "LiterLlm::ResponseTool")]
7315
7764
  pub struct ResponseTool {
@@ -7344,6 +7793,14 @@ impl magnus::TryConvert for ResponseTool {
7344
7793
  }
7345
7794
 
7346
7795
  unsafe impl TryConvertOwned for ResponseTool {}
7796
+ impl<'de> serde::Deserialize<'de> for ResponseTool {
7797
+ fn deserialize<D>(deserializer: D) -> ::core::result::Result<Self, D::Error>
7798
+ where
7799
+ D: serde::Deserializer<'de>,
7800
+ {
7801
+ <liter_llm::types::ResponseTool as serde::Deserialize>::deserialize(deserializer).map(Into::into)
7802
+ }
7803
+ }
7347
7804
 
7348
7805
  impl Default for ResponseTool {
7349
7806
  fn default() -> Self {
@@ -7456,7 +7913,7 @@ impl ResponseUsage {
7456
7913
  }
7457
7914
  }
7458
7915
 
7459
- #[derive(Clone, Debug, serde::Serialize, serde::Deserialize)]
7916
+ #[derive(Clone, Debug, serde::Serialize)]
7460
7917
  #[serde(default)]
7461
7918
  #[magnus::wrap(class = "LiterLlm::SearchRequest")]
7462
7919
  pub struct SearchRequest {
@@ -7494,6 +7951,14 @@ impl magnus::TryConvert for SearchRequest {
7494
7951
  }
7495
7952
 
7496
7953
  unsafe impl TryConvertOwned for SearchRequest {}
7954
+ impl<'de> serde::Deserialize<'de> for SearchRequest {
7955
+ fn deserialize<D>(deserializer: D) -> ::core::result::Result<Self, D::Error>
7956
+ where
7957
+ D: serde::Deserializer<'de>,
7958
+ {
7959
+ <liter_llm::types::SearchRequest as serde::Deserialize>::deserialize(deserializer).map(Into::into)
7960
+ }
7961
+ }
7497
7962
 
7498
7963
  impl Default for SearchRequest {
7499
7964
  fn default() -> Self {
@@ -7611,7 +8076,7 @@ impl SearchResponse {
7611
8076
  }
7612
8077
  }
7613
8078
 
7614
- #[derive(Clone, Debug, serde::Serialize, serde::Deserialize)]
8079
+ #[derive(Clone, Debug, serde::Serialize)]
7615
8080
  #[magnus::wrap(class = "LiterLlm::SearchResult")]
7616
8081
  pub struct SearchResult {
7617
8082
  title: String,
@@ -7647,6 +8112,14 @@ impl magnus::TryConvert for SearchResult {
7647
8112
  }
7648
8113
 
7649
8114
  unsafe impl TryConvertOwned for SearchResult {}
8115
+ impl<'de> serde::Deserialize<'de> for SearchResult {
8116
+ fn deserialize<D>(deserializer: D) -> ::core::result::Result<Self, D::Error>
8117
+ where
8118
+ D: serde::Deserializer<'de>,
8119
+ {
8120
+ <liter_llm::types::SearchResult as serde::Deserialize>::deserialize(deserializer).map(Into::into)
8121
+ }
8122
+ }
7650
8123
 
7651
8124
  impl Default for SearchResult {
7652
8125
  fn default() -> Self {
@@ -7701,14 +8174,17 @@ impl SearchResult {
7701
8174
  }
7702
8175
  }
7703
8176
 
8177
+ #[cfg(feature = "tower")]
7704
8178
  #[derive(Clone)]
7705
8179
  #[magnus::wrap(class = "LiterLlm::SingleflightResult")]
7706
8180
  pub struct SingleflightResult {
7707
8181
  inner: Arc<liter_llm::tower::SingleflightResult>,
7708
8182
  }
7709
8183
 
8184
+ #[cfg(feature = "tower")]
7710
8185
  unsafe impl IntoValueFromNative for SingleflightResult {}
7711
8186
 
8187
+ #[cfg(feature = "tower")]
7712
8188
  impl magnus::TryConvert for SingleflightResult {
7713
8189
  fn try_convert(val: magnus::Value) -> Result<Self, magnus::Error> {
7714
8190
  let r: &SingleflightResult = magnus::TryConvert::try_convert(val)?;
@@ -7716,8 +8192,10 @@ impl magnus::TryConvert for SingleflightResult {
7716
8192
  }
7717
8193
  }
7718
8194
 
8195
+ #[cfg(feature = "tower")]
7719
8196
  unsafe impl TryConvertOwned for SingleflightResult {}
7720
8197
 
8198
+ #[cfg(feature = "tower")]
7721
8199
  impl SingleflightResult {}
7722
8200
 
7723
8201
  #[derive(Clone, Debug, serde::Serialize, serde::Deserialize)]
@@ -7926,7 +8404,7 @@ impl StreamChoice {
7926
8404
  }
7927
8405
  }
7928
8406
 
7929
- #[derive(Clone, Debug, serde::Serialize, serde::Deserialize)]
8407
+ #[derive(Clone, Debug, serde::Serialize)]
7930
8408
  #[serde(default)]
7931
8409
  #[magnus::wrap(class = "LiterLlm::StreamDelta")]
7932
8410
  pub struct StreamDelta {
@@ -7965,6 +8443,14 @@ impl magnus::TryConvert for StreamDelta {
7965
8443
  }
7966
8444
 
7967
8445
  unsafe impl TryConvertOwned for StreamDelta {}
8446
+ impl<'de> serde::Deserialize<'de> for StreamDelta {
8447
+ fn deserialize<D>(deserializer: D) -> ::core::result::Result<Self, D::Error>
8448
+ where
8449
+ D: serde::Deserializer<'de>,
8450
+ {
8451
+ <liter_llm::types::StreamDelta as serde::Deserialize>::deserialize(deserializer).map(Into::into)
8452
+ }
8453
+ }
7968
8454
 
7969
8455
  impl Default for StreamDelta {
7970
8456
  fn default() -> Self {
@@ -8030,7 +8516,7 @@ impl StreamDelta {
8030
8516
  }
8031
8517
  }
8032
8518
 
8033
- #[derive(Clone, Debug, serde::Serialize, serde::Deserialize)]
8519
+ #[derive(Clone, Debug, serde::Serialize)]
8034
8520
  #[serde(default)]
8035
8521
  #[magnus::wrap(class = "LiterLlm::StreamFunctionCall")]
8036
8522
  pub struct StreamFunctionCall {
@@ -8065,6 +8551,14 @@ impl magnus::TryConvert for StreamFunctionCall {
8065
8551
  }
8066
8552
 
8067
8553
  unsafe impl TryConvertOwned for StreamFunctionCall {}
8554
+ impl<'de> serde::Deserialize<'de> for StreamFunctionCall {
8555
+ fn deserialize<D>(deserializer: D) -> ::core::result::Result<Self, D::Error>
8556
+ where
8557
+ D: serde::Deserializer<'de>,
8558
+ {
8559
+ <liter_llm::types::StreamFunctionCall as serde::Deserialize>::deserialize(deserializer).map(Into::into)
8560
+ }
8561
+ }
8068
8562
 
8069
8563
  impl Default for StreamFunctionCall {
8070
8564
  fn default() -> Self {
@@ -8097,7 +8591,7 @@ impl StreamFunctionCall {
8097
8591
  }
8098
8592
  }
8099
8593
 
8100
- #[derive(Clone, Debug, serde::Serialize, serde::Deserialize)]
8594
+ #[derive(Clone, Debug, serde::Serialize)]
8101
8595
  #[serde(default)]
8102
8596
  #[magnus::wrap(class = "LiterLlm::StreamOptions")]
8103
8597
  pub struct StreamOptions {
@@ -8131,6 +8625,14 @@ impl magnus::TryConvert for StreamOptions {
8131
8625
  }
8132
8626
 
8133
8627
  unsafe impl TryConvertOwned for StreamOptions {}
8628
+ impl<'de> serde::Deserialize<'de> for StreamOptions {
8629
+ fn deserialize<D>(deserializer: D) -> ::core::result::Result<Self, D::Error>
8630
+ where
8631
+ D: serde::Deserializer<'de>,
8632
+ {
8633
+ <liter_llm::types::StreamOptions as serde::Deserialize>::deserialize(deserializer).map(Into::into)
8634
+ }
8635
+ }
8134
8636
 
8135
8637
  impl Default for StreamOptions {
8136
8638
  fn default() -> Self {
@@ -8156,7 +8658,7 @@ impl StreamOptions {
8156
8658
  }
8157
8659
  }
8158
8660
 
8159
- #[derive(Clone, Debug, serde::Serialize, serde::Deserialize)]
8661
+ #[derive(Clone, Debug, serde::Serialize)]
8160
8662
  #[serde(default)]
8161
8663
  #[magnus::wrap(class = "LiterLlm::StreamToolCall")]
8162
8664
  pub struct StreamToolCall {
@@ -8193,6 +8695,14 @@ impl magnus::TryConvert for StreamToolCall {
8193
8695
  }
8194
8696
 
8195
8697
  unsafe impl TryConvertOwned for StreamToolCall {}
8698
+ impl<'de> serde::Deserialize<'de> for StreamToolCall {
8699
+ fn deserialize<D>(deserializer: D) -> ::core::result::Result<Self, D::Error>
8700
+ where
8701
+ D: serde::Deserializer<'de>,
8702
+ {
8703
+ <liter_llm::types::StreamToolCall as serde::Deserialize>::deserialize(deserializer).map(Into::into)
8704
+ }
8705
+ }
8196
8706
 
8197
8707
  impl Default for StreamToolCall {
8198
8708
  fn default() -> Self {
@@ -8240,7 +8750,7 @@ impl StreamToolCall {
8240
8750
  }
8241
8751
  }
8242
8752
 
8243
- #[derive(Clone, Debug, serde::Serialize, serde::Deserialize)]
8753
+ #[derive(Clone, Debug, serde::Serialize)]
8244
8754
  #[serde(default)]
8245
8755
  #[magnus::wrap(class = "LiterLlm::SystemMessage")]
8246
8756
  pub struct SystemMessage {
@@ -8275,6 +8785,14 @@ impl magnus::TryConvert for SystemMessage {
8275
8785
  }
8276
8786
 
8277
8787
  unsafe impl TryConvertOwned for SystemMessage {}
8788
+ impl<'de> serde::Deserialize<'de> for SystemMessage {
8789
+ fn deserialize<D>(deserializer: D) -> ::core::result::Result<Self, D::Error>
8790
+ where
8791
+ D: serde::Deserializer<'de>,
8792
+ {
8793
+ <liter_llm::types::SystemMessage as serde::Deserialize>::deserialize(deserializer).map(Into::into)
8794
+ }
8795
+ }
8278
8796
 
8279
8797
  impl Default for SystemMessage {
8280
8798
  fn default() -> Self {
@@ -8389,7 +8907,7 @@ impl ToolCall {
8389
8907
  }
8390
8908
  }
8391
8909
 
8392
- #[derive(Clone, Debug, serde::Serialize, serde::Deserialize)]
8910
+ #[derive(Clone, Debug, serde::Serialize)]
8393
8911
  #[serde(default)]
8394
8912
  #[magnus::wrap(class = "LiterLlm::ToolMessage")]
8395
8913
  pub struct ToolMessage {
@@ -8425,6 +8943,14 @@ impl magnus::TryConvert for ToolMessage {
8425
8943
  }
8426
8944
 
8427
8945
  unsafe impl TryConvertOwned for ToolMessage {}
8946
+ impl<'de> serde::Deserialize<'de> for ToolMessage {
8947
+ fn deserialize<D>(deserializer: D) -> ::core::result::Result<Self, D::Error>
8948
+ where
8949
+ D: serde::Deserializer<'de>,
8950
+ {
8951
+ <liter_llm::types::ToolMessage as serde::Deserialize>::deserialize(deserializer).map(Into::into)
8952
+ }
8953
+ }
8428
8954
 
8429
8955
  impl Default for ToolMessage {
8430
8956
  fn default() -> Self {
@@ -8466,7 +8992,7 @@ impl ToolMessage {
8466
8992
  }
8467
8993
  }
8468
8994
 
8469
- #[derive(Clone, Debug, serde::Serialize, serde::Deserialize)]
8995
+ #[derive(Clone, Debug, serde::Serialize)]
8470
8996
  #[serde(default)]
8471
8997
  #[magnus::wrap(class = "LiterLlm::TranscriptionResponse")]
8472
8998
  pub struct TranscriptionResponse {
@@ -8503,6 +9029,14 @@ impl magnus::TryConvert for TranscriptionResponse {
8503
9029
  }
8504
9030
 
8505
9031
  unsafe impl TryConvertOwned for TranscriptionResponse {}
9032
+ impl<'de> serde::Deserialize<'de> for TranscriptionResponse {
9033
+ fn deserialize<D>(deserializer: D) -> ::core::result::Result<Self, D::Error>
9034
+ where
9035
+ D: serde::Deserializer<'de>,
9036
+ {
9037
+ <liter_llm::types::TranscriptionResponse as serde::Deserialize>::deserialize(deserializer).map(Into::into)
9038
+ }
9039
+ }
8506
9040
 
8507
9041
  impl Default for TranscriptionResponse {
8508
9042
  fn default() -> Self {
@@ -8637,7 +9171,7 @@ impl TranscriptionSegment {
8637
9171
  }
8638
9172
  }
8639
9173
 
8640
- #[derive(Clone, Debug, serde::Serialize, serde::Deserialize)]
9174
+ #[derive(Clone, Debug, serde::Serialize)]
8641
9175
  #[serde(default)]
8642
9176
  #[magnus::wrap(class = "LiterLlm::Usage")]
8643
9177
  pub struct Usage {
@@ -8674,6 +9208,14 @@ impl magnus::TryConvert for Usage {
8674
9208
  }
8675
9209
 
8676
9210
  unsafe impl TryConvertOwned for Usage {}
9211
+ impl<'de> serde::Deserialize<'de> for Usage {
9212
+ fn deserialize<D>(deserializer: D) -> ::core::result::Result<Self, D::Error>
9213
+ where
9214
+ D: serde::Deserializer<'de>,
9215
+ {
9216
+ <liter_llm::types::Usage as serde::Deserialize>::deserialize(deserializer).map(Into::into)
9217
+ }
9218
+ }
8677
9219
 
8678
9220
  impl Default for Usage {
8679
9221
  fn default() -> Self {
@@ -8723,7 +9265,7 @@ impl Usage {
8723
9265
  }
8724
9266
  }
8725
9267
 
8726
- #[derive(Clone, Debug, serde::Serialize, serde::Deserialize)]
9268
+ #[derive(Clone, Debug, serde::Serialize)]
8727
9269
  #[serde(default)]
8728
9270
  #[magnus::wrap(class = "LiterLlm::UserMessage")]
8729
9271
  pub struct UserMessage {
@@ -8758,6 +9300,14 @@ impl magnus::TryConvert for UserMessage {
8758
9300
  }
8759
9301
 
8760
9302
  unsafe impl TryConvertOwned for UserMessage {}
9303
+ impl<'de> serde::Deserialize<'de> for UserMessage {
9304
+ fn deserialize<D>(deserializer: D) -> ::core::result::Result<Self, D::Error>
9305
+ where
9306
+ D: serde::Deserializer<'de>,
9307
+ {
9308
+ <liter_llm::types::UserMessage as serde::Deserialize>::deserialize(deserializer).map(Into::into)
9309
+ }
9310
+ }
8761
9311
 
8762
9312
  impl Default for UserMessage {
8763
9313
  fn default() -> Self {
@@ -8791,6 +9341,7 @@ impl UserMessage {
8791
9341
  }
8792
9342
  }
8793
9343
 
9344
+ #[cfg(any(feature = "native-http", feature = "wasm-http"))]
8794
9345
  #[derive(Clone, Debug, serde::Serialize, serde::Deserialize)]
8795
9346
  #[serde(default)]
8796
9347
  #[magnus::wrap(class = "LiterLlm::WaitForBatchConfig")]
@@ -8801,8 +9352,10 @@ pub struct WaitForBatchConfig {
8801
9352
  timeout_secs: Option<f64>,
8802
9353
  }
8803
9354
 
9355
+ #[cfg(any(feature = "native-http", feature = "wasm-http"))]
8804
9356
  unsafe impl IntoValueFromNative for WaitForBatchConfig {}
8805
9357
 
9358
+ #[cfg(any(feature = "native-http", feature = "wasm-http"))]
8806
9359
  impl magnus::TryConvert for WaitForBatchConfig {
8807
9360
  fn try_convert(val: magnus::Value) -> Result<Self, magnus::Error> {
8808
9361
  if let Ok(r) = <&WaitForBatchConfig as magnus::TryConvert>::try_convert(val) {
@@ -8827,14 +9380,17 @@ impl magnus::TryConvert for WaitForBatchConfig {
8827
9380
  }
8828
9381
  }
8829
9382
 
9383
+ #[cfg(any(feature = "native-http", feature = "wasm-http"))]
8830
9384
  unsafe impl TryConvertOwned for WaitForBatchConfig {}
8831
9385
 
9386
+ #[cfg(any(feature = "native-http", feature = "wasm-http"))]
8832
9387
  impl Default for WaitForBatchConfig {
8833
9388
  fn default() -> Self {
8834
9389
  liter_llm::client::WaitForBatchConfig::default().into()
8835
9390
  }
8836
9391
  }
8837
9392
 
9393
+ #[cfg(any(feature = "native-http", feature = "wasm-http"))]
8838
9394
  impl WaitForBatchConfig {
8839
9395
  fn new(args: &[magnus::Value]) -> Result<Self, magnus::Error> {
8840
9396
  let ruby = unsafe { magnus::Ruby::get_unchecked() };
@@ -10730,20 +11286,16 @@ fn refresh_catalog(args: &[magnus::Value]) -> Result<RefreshOutcome, Error> {
10730
11286
  }
10731
11287
  _ => Default::default(),
10732
11288
  };
10733
- let rt = tokio::runtime::Runtime::new().map_err(|e| {
10734
- magnus::Error::new(
10735
- unsafe { Ruby::get_unchecked() }.exception_runtime_error(),
10736
- e.to_string(),
10737
- )
10738
- })?;
10739
- let result = rt
10740
- .block_on(async { liter_llm::cost::refresh::refresh_catalog(&config_core).await })
10741
- .map_err(|e| {
10742
- magnus::Error::new(
10743
- unsafe { Ruby::get_unchecked() }.exception_runtime_error(),
10744
- e.to_string(),
10745
- )
10746
- })?;
11289
+ let async_result = alef_magnus_run_without_gvl(move || -> Result<_, String> {
11290
+ let rt = tokio::runtime::Builder::new_current_thread()
11291
+ .enable_all()
11292
+ .build()
11293
+ .map_err(|e| e.to_string())?;
11294
+ rt.block_on(async { liter_llm::cost::refresh::refresh_catalog(&config_core).await })
11295
+ .map_err(|e| e.to_string())
11296
+ });
11297
+ let result = async_result
11298
+ .map_err(|message| magnus::Error::new(unsafe { Ruby::get_unchecked() }.exception_runtime_error(), message))?;
10747
11299
  Ok(result.into())
10748
11300
  }
10749
11301
 
@@ -10763,20 +11315,16 @@ fn refresh_catalog_async(args: &[magnus::Value]) -> Result<RefreshOutcome, Error
10763
11315
  }
10764
11316
  _ => Default::default(),
10765
11317
  };
10766
- let rt = tokio::runtime::Runtime::new().map_err(|e| {
10767
- magnus::Error::new(
10768
- unsafe { Ruby::get_unchecked() }.exception_runtime_error(),
10769
- e.to_string(),
10770
- )
10771
- })?;
10772
- let result = rt
10773
- .block_on(async { liter_llm::cost::refresh::refresh_catalog(&config_core).await })
10774
- .map_err(|e| {
10775
- magnus::Error::new(
10776
- unsafe { Ruby::get_unchecked() }.exception_runtime_error(),
10777
- e.to_string(),
10778
- )
10779
- })?;
11318
+ let async_result = alef_magnus_run_without_gvl(move || -> Result<_, String> {
11319
+ let rt = tokio::runtime::Builder::new_current_thread()
11320
+ .enable_all()
11321
+ .build()
11322
+ .map_err(|e| e.to_string())?;
11323
+ rt.block_on(async { liter_llm::cost::refresh::refresh_catalog(&config_core).await })
11324
+ .map_err(|e| e.to_string())
11325
+ });
11326
+ let result = async_result
11327
+ .map_err(|message| magnus::Error::new(unsafe { Ruby::get_unchecked() }.exception_runtime_error(), message))?;
10780
11328
  Ok(result.into())
10781
11329
  }
10782
11330
 
@@ -11023,6 +11571,7 @@ impl From<liter_llm::client::BedrockConfig> for BedrockConfig {
11023
11571
  }
11024
11572
  }
11025
11573
 
11574
+ #[cfg(feature = "tower")]
11026
11575
  #[allow(clippy::needless_update)]
11027
11576
  #[allow(clippy::useless_conversion)]
11028
11577
  impl From<BudgetConfig> for liter_llm::BudgetConfig {
@@ -11036,6 +11585,7 @@ impl From<BudgetConfig> for liter_llm::BudgetConfig {
11036
11585
  }
11037
11586
  }
11038
11587
 
11588
+ #[cfg(feature = "tower")]
11039
11589
  #[allow(clippy::useless_conversion)]
11040
11590
  impl From<liter_llm::BudgetConfig> for BudgetConfig {
11041
11591
  fn from(val: liter_llm::BudgetConfig) -> Self {
@@ -11047,6 +11597,7 @@ impl From<liter_llm::BudgetConfig> for BudgetConfig {
11047
11597
  }
11048
11598
  }
11049
11599
 
11600
+ #[cfg(feature = "tower")]
11050
11601
  #[allow(clippy::needless_update)]
11051
11602
  #[allow(clippy::useless_conversion)]
11052
11603
  impl From<CacheConfig> for liter_llm::CacheConfig {
@@ -11060,6 +11611,7 @@ impl From<CacheConfig> for liter_llm::CacheConfig {
11060
11611
  }
11061
11612
  }
11062
11613
 
11614
+ #[cfg(feature = "tower")]
11063
11615
  #[allow(clippy::useless_conversion)]
11064
11616
  impl From<liter_llm::CacheConfig> for CacheConfig {
11065
11617
  fn from(val: liter_llm::CacheConfig) -> Self {
@@ -11839,6 +12391,7 @@ impl From<liter_llm::types::ImagesResponse> for ImagesResponse {
11839
12391
  }
11840
12392
  }
11841
12393
 
12394
+ #[cfg(feature = "tower")]
11842
12395
  impl From<liter_llm::InFlightLimitConfig> for InFlightLimitConfig {
11843
12396
  fn from(val: liter_llm::InFlightLimitConfig) -> Self {
11844
12397
  Self {
@@ -11847,6 +12400,7 @@ impl From<liter_llm::InFlightLimitConfig> for InFlightLimitConfig {
11847
12400
  }
11848
12401
  }
11849
12402
 
12403
+ #[cfg(feature = "tower")]
11850
12404
  impl From<liter_llm::tower::IntentPrototype> for IntentPrototype {
11851
12405
  fn from(val: liter_llm::tower::IntentPrototype) -> Self {
11852
12406
  Self {
@@ -12499,6 +13053,7 @@ impl From<liter_llm::provider::ProviderConfig> for ProviderConfig {
12499
13053
  }
12500
13054
  }
12501
13055
 
13056
+ #[cfg(feature = "tower")]
12502
13057
  #[allow(clippy::needless_update)]
12503
13058
  impl From<RateLimitConfig> for liter_llm::RateLimitConfig {
12504
13059
  fn from(val: RateLimitConfig) -> Self {
@@ -12511,6 +13066,7 @@ impl From<RateLimitConfig> for liter_llm::RateLimitConfig {
12511
13066
  }
12512
13067
  }
12513
13068
 
13069
+ #[cfg(feature = "tower")]
12514
13070
  impl From<liter_llm::RateLimitConfig> for RateLimitConfig {
12515
13071
  fn from(val: liter_llm::RateLimitConfig) -> Self {
12516
13072
  Self {
@@ -13045,6 +13601,7 @@ impl From<liter_llm::types::UserMessage> for UserMessage {
13045
13601
  }
13046
13602
  }
13047
13603
 
13604
+ #[cfg(any(feature = "native-http", feature = "wasm-http"))]
13048
13605
  #[allow(clippy::needless_update)]
13049
13606
  impl From<WaitForBatchConfig> for liter_llm::client::WaitForBatchConfig {
13050
13607
  fn from(val: WaitForBatchConfig) -> Self {
@@ -13058,6 +13615,7 @@ impl From<WaitForBatchConfig> for liter_llm::client::WaitForBatchConfig {
13058
13615
  }
13059
13616
  }
13060
13617
 
13618
+ #[cfg(any(feature = "native-http", feature = "wasm-http"))]
13061
13619
  impl From<liter_llm::client::WaitForBatchConfig> for WaitForBatchConfig {
13062
13620
  fn from(val: liter_llm::client::WaitForBatchConfig) -> Self {
13063
13621
  Self {