async_openai/
impls.rs

1#[cfg(feature = "batch")]
2use crate::batches::Batches;
3#[cfg(feature = "chat-completion")]
4use crate::chat::Chat;
5#[cfg(feature = "chatkit")]
6use crate::chatkit::{Chatkit, ChatkitSessions, ChatkitThreads};
7#[cfg(feature = "completions")]
8use crate::completion::Completions;
9#[cfg(feature = "embedding")]
10use crate::embedding::Embeddings;
11#[cfg(feature = "file")]
12use crate::file::Files;
13#[cfg(feature = "finetuning")]
14use crate::fine_tuning::FineTuning;
15#[cfg(feature = "image")]
16use crate::image::Images;
17#[cfg(feature = "model")]
18use crate::model::Models;
19#[cfg(feature = "moderation")]
20use crate::moderation::Moderations;
21#[cfg(feature = "upload")]
22use crate::uploads::Uploads;
23#[cfg(feature = "video")]
24use crate::video::Videos;
25#[cfg(feature = "realtime")]
26use crate::Realtime;
27#[cfg(feature = "administration")]
28use crate::{
29    admin::AdminAPIKeys, admin::AuditLogs, admin::Certificates, admin::GroupRoles,
30    admin::GroupUsers, admin::Groups, admin::Invites, admin::ProjectAPIKeys,
31    admin::ProjectCertificates, admin::ProjectGroupRoles, admin::ProjectGroups,
32    admin::ProjectRateLimits, admin::ProjectRoles, admin::ProjectServiceAccounts,
33    admin::ProjectUserRoles, admin::ProjectUsers, admin::Projects, admin::Roles, admin::Usage,
34    admin::UserRoles, admin::Users,
35};
36#[cfg(feature = "assistant")]
37use crate::{
38    assistants::Assistants, assistants::Messages, assistants::Runs, assistants::Steps,
39    assistants::Threads,
40};
41#[cfg(feature = "audio")]
42use crate::{audio::Audio, audio::Speech, audio::Transcriptions, audio::Translations};
43#[cfg(feature = "container")]
44use crate::{containers::ContainerFiles, containers::Containers};
45#[cfg(feature = "evals")]
46use crate::{evals::EvalRunOutputItems, evals::EvalRuns, evals::Evals};
47#[cfg(feature = "responses")]
48use crate::{responses::ConversationItems, responses::Conversations, responses::Responses};
49#[cfg(feature = "vectorstore")]
50use crate::{
51    vectorstores::VectorStoreFileBatches, vectorstores::VectorStoreFiles,
52    vectorstores::VectorStores,
53};
54
55// request builder impls macro
56
57/// Macro to implement `RequestOptionsBuilder` for wrapper types containing `RequestOptions`
58#[cfg(feature = "_api")]
59macro_rules! impl_request_options_builder {
60    ($type:ident) => {
61        impl<'c, C: crate::config::Config> crate::traits::RequestOptionsBuilder for $type<'c, C> {
62            fn options_mut(&mut self) -> &mut crate::RequestOptions {
63                &mut self.request_options
64            }
65
66            fn options(&self) -> &crate::RequestOptions {
67                &self.request_options
68            }
69        }
70    };
71}
72
73#[cfg(feature = "administration")]
74impl_request_options_builder!(AdminAPIKeys);
75#[cfg(feature = "assistant")]
76impl_request_options_builder!(Assistants);
77#[cfg(feature = "audio")]
78impl_request_options_builder!(Audio);
79#[cfg(feature = "administration")]
80impl_request_options_builder!(AuditLogs);
81#[cfg(feature = "batch")]
82impl_request_options_builder!(Batches);
83#[cfg(feature = "administration")]
84impl_request_options_builder!(Certificates);
85#[cfg(feature = "chat-completion")]
86impl_request_options_builder!(Chat);
87#[cfg(feature = "chatkit")]
88impl_request_options_builder!(Chatkit);
89#[cfg(feature = "chatkit")]
90impl_request_options_builder!(ChatkitSessions);
91#[cfg(feature = "chatkit")]
92impl_request_options_builder!(ChatkitThreads);
93#[cfg(feature = "completions")]
94impl_request_options_builder!(Completions);
95#[cfg(feature = "container")]
96impl_request_options_builder!(ContainerFiles);
97#[cfg(feature = "container")]
98impl_request_options_builder!(Containers);
99#[cfg(feature = "responses")]
100impl_request_options_builder!(ConversationItems);
101#[cfg(feature = "responses")]
102impl_request_options_builder!(Conversations);
103#[cfg(feature = "embedding")]
104impl_request_options_builder!(Embeddings);
105#[cfg(feature = "evals")]
106impl_request_options_builder!(Evals);
107#[cfg(feature = "evals")]
108impl_request_options_builder!(EvalRunOutputItems);
109#[cfg(feature = "evals")]
110impl_request_options_builder!(EvalRuns);
111#[cfg(feature = "file")]
112impl_request_options_builder!(Files);
113#[cfg(feature = "finetuning")]
114impl_request_options_builder!(FineTuning);
115#[cfg(feature = "administration")]
116impl_request_options_builder!(GroupRoles);
117#[cfg(feature = "administration")]
118impl_request_options_builder!(GroupUsers);
119#[cfg(feature = "administration")]
120impl_request_options_builder!(Groups);
121#[cfg(feature = "image")]
122impl_request_options_builder!(Images);
123#[cfg(feature = "administration")]
124impl_request_options_builder!(Invites);
125#[cfg(feature = "assistant")]
126impl_request_options_builder!(Messages);
127#[cfg(feature = "model")]
128impl_request_options_builder!(Models);
129#[cfg(feature = "moderation")]
130impl_request_options_builder!(Moderations);
131#[cfg(feature = "administration")]
132impl_request_options_builder!(Projects);
133#[cfg(feature = "administration")]
134impl_request_options_builder!(ProjectGroupRoles);
135#[cfg(feature = "administration")]
136impl_request_options_builder!(ProjectGroups);
137#[cfg(feature = "administration")]
138impl_request_options_builder!(ProjectRoles);
139#[cfg(feature = "administration")]
140impl_request_options_builder!(ProjectUserRoles);
141#[cfg(feature = "administration")]
142impl_request_options_builder!(ProjectUsers);
143#[cfg(feature = "administration")]
144impl_request_options_builder!(ProjectServiceAccounts);
145#[cfg(feature = "administration")]
146impl_request_options_builder!(ProjectAPIKeys);
147#[cfg(feature = "administration")]
148impl_request_options_builder!(ProjectRateLimits);
149#[cfg(feature = "administration")]
150impl_request_options_builder!(ProjectCertificates);
151#[cfg(feature = "administration")]
152impl_request_options_builder!(Roles);
153#[cfg(feature = "realtime")]
154impl_request_options_builder!(Realtime);
155#[cfg(feature = "responses")]
156impl_request_options_builder!(Responses);
157#[cfg(feature = "assistant")]
158impl_request_options_builder!(Runs);
159#[cfg(feature = "audio")]
160impl_request_options_builder!(Speech);
161#[cfg(feature = "assistant")]
162impl_request_options_builder!(Steps);
163#[cfg(feature = "assistant")]
164impl_request_options_builder!(Threads);
165#[cfg(feature = "audio")]
166impl_request_options_builder!(Transcriptions);
167#[cfg(feature = "audio")]
168impl_request_options_builder!(Translations);
169#[cfg(feature = "upload")]
170impl_request_options_builder!(Uploads);
171#[cfg(feature = "administration")]
172impl_request_options_builder!(Usage);
173#[cfg(feature = "administration")]
174impl_request_options_builder!(UserRoles);
175#[cfg(feature = "administration")]
176impl_request_options_builder!(Users);
177#[cfg(feature = "vectorstore")]
178impl_request_options_builder!(VectorStoreFileBatches);
179#[cfg(feature = "vectorstore")]
180impl_request_options_builder!(VectorStoreFiles);
181#[cfg(feature = "vectorstore")]
182impl_request_options_builder!(VectorStores);
183#[cfg(feature = "video")]
184impl_request_options_builder!(Videos);