rust_ai/azure/types/
common.rs1use reqwest::header::HeaderValue;
2
3#[derive(Debug, Clone)]
5pub enum Gender {
6 Male,
7 Female,
8}
9
10impl Into<String> for Gender {
11 fn into(self) -> String {
12 (match self {
13 Self::Male => "Male",
14 Self::Female => "Female",
15 })
16 .into()
17 }
18}
19
20#[derive(Debug, Clone)]
23pub enum ResponseType {
24 Bytes(Vec<u8>),
25 Text(String),
26}
27
28#[derive(Debug, Clone)]
30pub enum ResponseExpectation {
31 Bytes,
32 Text,
33}
34
35#[allow(non_camel_case_types)]
54#[derive(Debug, Clone)]
55pub enum MicrosoftOutputFormat {
56 Amr_Wb_16000hz,
58
59 Audio_16khz_16bit_32kbps_Mono_Opus,
61
62 Audio_16khz_32kbitrate_Mono_Mp3,
64
65 Audio_16khz_64kbitrate_Mono_Mp3,
67
68 Audio_16khz_128kbitrate_Mono_Mp3,
70
71 Audio_24khz_16bit_24kbps_Mono_Opus,
73
74 Audio_24khz_16bit_48kbps_Mono_Opus,
76
77 Audio_24khz_48kbitrate_Mono_Mp3,
79
80 Audio_24khz_96kbitrate_Mono_Mp3,
82
83 Audio_24khz_160kbitrate_Mono_Mp3,
85
86 Audio_48khz_96kbitrate_Mono_Mp3,
88
89 Audio_48khz_192kbitrate_Mono_Mp3,
91
92 Ogg_16khz_16bit_Mono_Opus,
94
95 Ogg_24khz_16bit_Mono_Opus,
97
98 Ogg_48khz_16bit_Mono_Opus,
100
101 Raw_8khz_8bit_Mono_Alaw,
103
104 Raw_8khz_8bit_Mono_Mulaw,
106
107 Raw_8khz_16bit_Mono_Pcm,
109
110 Raw_16khz_16bit_Mono_Pcm,
112
113 Raw_16khz_16bit_Mono_Truesilk,
115
116 Raw_22050hz_16bit_Mono_Pcm,
118
119 Raw_24khz_16bit_Mono_Pcm,
121
122 Raw_24khz_16bit_Mono_Truesilk,
124
125 Raw_44100hz_16bit_Mono_Pcm,
127
128 Raw_48khz_16bit_Mono_Pcm,
130
131 Webm_16khz_16bit_Mono_Opus,
133
134 Webm_24khz_16bit_24kbps_Mono_Opus,
136
137 Webm_24khz_16bit_Mono_Opus,
139
140 Riff_8khz_8bit_Mono_Alaw,
142
143 Riff_8khz_8bit_Mono_Mulaw,
145
146 Riff_8khz_16bit_Mono_Pcm,
148
149 Riff_22050hz_16bit_Mono_Pcm,
151
152 Riff_24khz_16bit_Mono_Pcm,
154
155 Riff_44100hz_16bit_Mono_Pcm,
157
158 Riff_48khz_16bit_Mono_Pcm,
160}
161
162impl Into<HeaderValue> for MicrosoftOutputFormat {
163 fn into(self) -> HeaderValue {
164 let s: String = self.into();
165 s.as_str().parse().unwrap()
166 }
167}
168
169impl Into<String> for MicrosoftOutputFormat {
170 fn into(self) -> String {
171 (match self {
172 Self::Amr_Wb_16000hz => "amr-wb-16000hz",
173 Self::Audio_16khz_16bit_32kbps_Mono_Opus => "audio-16khz-16bit-32kbps-mono-opus",
174 Self::Audio_16khz_32kbitrate_Mono_Mp3 => "audio-16khz-32kbitrate-mono-mp3",
175 Self::Audio_16khz_64kbitrate_Mono_Mp3 => "audio-16khz-64kbitrate-mono-mp3",
176 Self::Audio_16khz_128kbitrate_Mono_Mp3 => "audio-16khz-128kbitrate-mono-mp3",
177 Self::Audio_24khz_16bit_24kbps_Mono_Opus => "audio-24khz-16bit-24kbps-mono-opus",
178 Self::Audio_24khz_16bit_48kbps_Mono_Opus => "audio-24khz-16bit-48kbps-mono-opus",
179 Self::Audio_24khz_48kbitrate_Mono_Mp3 => "audio-24khz-48kbitrate-mono-mp3",
180 Self::Audio_24khz_96kbitrate_Mono_Mp3 => "audio-24khz-96kbitrate-mono-mp3",
181 Self::Audio_24khz_160kbitrate_Mono_Mp3 => "audio-24khz-160kbitrate-mono-mp3",
182 Self::Audio_48khz_96kbitrate_Mono_Mp3 => "audio-48khz-96kbitrate-mono-mp3",
183 Self::Audio_48khz_192kbitrate_Mono_Mp3 => "audio-48khz-192kbitrate-mono-mp3",
184 Self::Ogg_16khz_16bit_Mono_Opus => "ogg-16khz-16bit-mono-opus",
185 Self::Ogg_24khz_16bit_Mono_Opus => "ogg-24khz-16bit-mono-opus",
186 Self::Ogg_48khz_16bit_Mono_Opus => "ogg-48khz-16bit-mono-opus",
187 Self::Raw_8khz_8bit_Mono_Alaw => "raw-8khz-8bit-mono-alaw",
188 Self::Raw_8khz_8bit_Mono_Mulaw => "raw-8khz-8bit-mono-mulaw",
189 Self::Raw_8khz_16bit_Mono_Pcm => "raw-8khz-16bit-mono-pcm",
190 Self::Raw_16khz_16bit_Mono_Pcm => "raw-16khz-16bit-mono-pcm",
191 Self::Raw_16khz_16bit_Mono_Truesilk => "raw-16khz-16bit-mono-truesilk",
192 Self::Raw_22050hz_16bit_Mono_Pcm => "raw-22050hz-16bit-mono-pcm",
193 Self::Raw_24khz_16bit_Mono_Pcm => "raw-24khz-16bit-mono-pcm",
194 Self::Raw_24khz_16bit_Mono_Truesilk => "raw-24khz-16bit-mono-truesilk",
195 Self::Raw_44100hz_16bit_Mono_Pcm => "raw-44100hz-16bit-mono-pcm",
196 Self::Raw_48khz_16bit_Mono_Pcm => "raw-48khz-16bit-mono-pcm",
197 Self::Webm_16khz_16bit_Mono_Opus => "webm-16khz-16bit-mono-opus",
198 Self::Webm_24khz_16bit_24kbps_Mono_Opus => "webm-24khz-16bit-24kbps-mono-opus",
199 Self::Webm_24khz_16bit_Mono_Opus => "webm-24khz-16bit-mono-opus",
200
201 Self::Riff_8khz_8bit_Mono_Alaw => "riff-8khz-8bit-mono-alaw",
202 Self::Riff_8khz_8bit_Mono_Mulaw => "riff-8khz-8bit-mono-mulaw",
203 Self::Riff_8khz_16bit_Mono_Pcm => "riff-8khz-16bit-mono-pcm",
204 Self::Riff_22050hz_16bit_Mono_Pcm => "riff-22050hz-16bit-mono-pcm",
205 Self::Riff_24khz_16bit_Mono_Pcm => "riff-24khz-16bit-mono-pcm",
206 Self::Riff_44100hz_16bit_Mono_Pcm => "riff-44100hz-16bit-mono-pcm",
207 Self::Riff_48khz_16bit_Mono_Pcm => "riff-48khz-16bit-mono-pcm",
208 })
209 .into()
210 }
211}