1use core::ffi::*;
4use core::ptr::NonNull;
5use objc2::__framework_prelude::*;
6use objc2_foundation::*;
7
8use crate::*;
9
10extern "C" {
11 pub static OSAScriptErrorMessageKey: &'static NSString;
13}
14
15extern "C" {
16 pub static OSAScriptErrorBriefMessageKey: &'static NSString;
18}
19
20extern "C" {
21 pub static OSAScriptErrorNumberKey: &'static NSString;
23}
24
25extern "C" {
26 pub static OSAScriptErrorPartialResultKey: &'static NSString;
28}
29
30extern "C" {
31 pub static OSAScriptErrorOffendingObjectKey: &'static NSString;
33}
34
35extern "C" {
36 pub static OSAScriptErrorExpectedTypeKey: &'static NSString;
38}
39
40extern "C" {
41 pub static OSAScriptErrorAppAddressKey: &'static NSString;
43}
44
45extern "C" {
46 pub static OSAScriptErrorAppNameKey: &'static NSString;
48}
49
50extern "C" {
51 pub static OSAScriptErrorRangeKey: &'static NSString;
53}
54
55extern "C" {
56 pub static OSAScriptErrorMessage: &'static NSString;
58}
59
60extern "C" {
61 pub static OSAScriptErrorNumber: &'static NSString;
63}
64
65extern "C" {
66 pub static OSAScriptErrorAppName: &'static NSString;
68}
69
70extern "C" {
71 pub static OSAScriptErrorBriefMessage: &'static NSString;
73}
74
75extern "C" {
76 pub static OSAScriptErrorRange: &'static NSString;
78}
79
80extern "C" {
81 pub static OSAStorageScriptType: &'static NSString;
83}
84
85extern "C" {
86 pub static OSAStorageScriptBundleType: &'static NSString;
88}
89
90extern "C" {
91 pub static OSAStorageApplicationType: &'static NSString;
93}
94
95extern "C" {
96 pub static OSAStorageApplicationBundleType: &'static NSString;
98}
99
100extern "C" {
101 pub static OSAStorageTextType: &'static NSString;
103}
104
105#[repr(transparent)]
108#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)]
109pub struct OSAStorageOptions(pub NSUInteger);
110bitflags::bitflags! {
111 impl OSAStorageOptions: NSUInteger {
112 #[doc(alias = "OSANull")]
113 const Null = 0x00000000;
114 #[doc(alias = "OSAPreventGetSource")]
115 const PreventGetSource = 0x00000001;
116 #[doc(alias = "OSACompileIntoContext")]
117 const CompileIntoContext = 0x00000002;
118 #[doc(alias = "OSADontSetScriptLocation")]
119 const DontSetScriptLocation = 0x01000000;
120 #[doc(alias = "OSAStayOpenApplet")]
121 const StayOpenApplet = 0x10000000;
122 #[doc(alias = "OSAShowStartupScreen")]
123 const ShowStartupScreen = 0x20000000;
124 }
125}
126
127unsafe impl Encode for OSAStorageOptions {
128 const ENCODING: Encoding = NSUInteger::ENCODING;
129}
130
131unsafe impl RefEncode for OSAStorageOptions {
132 const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
133}
134
135extern_class!(
136 #[unsafe(super(NSObject))]
138 #[derive(Debug, PartialEq, Eq, Hash)]
139 pub struct OSAScript;
140);
141
142unsafe impl NSCopying for OSAScript {}
143
144unsafe impl CopyingHelper for OSAScript {
145 type Result = Self;
146}
147
148unsafe impl NSObjectProtocol for OSAScript {}
149
150impl OSAScript {
151 extern_methods!(
152 #[unsafe(method(scriptDataDescriptorWithContentsOfURL:))]
153 #[unsafe(method_family = none)]
154 pub unsafe fn scriptDataDescriptorWithContentsOfURL(
155 url: &NSURL,
156 ) -> Option<Retained<NSAppleEventDescriptor>>;
157
158 #[unsafe(method(initWithSource:))]
159 #[unsafe(method_family = init)]
160 pub unsafe fn initWithSource(this: Allocated<Self>, source: &NSString) -> Retained<Self>;
161
162 #[cfg(feature = "OSALanguage")]
163 #[unsafe(method(initWithSource:language:))]
164 #[unsafe(method_family = init)]
165 pub unsafe fn initWithSource_language(
166 this: Allocated<Self>,
167 source: &NSString,
168 language: Option<&OSALanguage>,
169 ) -> Retained<Self>;
170
171 #[cfg(feature = "OSALanguageInstance")]
172 #[unsafe(method(initWithSource:fromURL:languageInstance:usingStorageOptions:))]
173 #[unsafe(method_family = init)]
174 pub unsafe fn initWithSource_fromURL_languageInstance_usingStorageOptions(
175 this: Allocated<Self>,
176 source: &NSString,
177 url: Option<&NSURL>,
178 instance: Option<&OSALanguageInstance>,
179 storage_options: OSAStorageOptions,
180 ) -> Retained<Self>;
181
182 #[unsafe(method(initWithContentsOfURL:error:))]
183 #[unsafe(method_family = init)]
184 pub unsafe fn initWithContentsOfURL_error(
185 this: Allocated<Self>,
186 url: &NSURL,
187 error_info: Option<&mut Option<Retained<NSDictionary<NSString, AnyObject>>>>,
188 ) -> Option<Retained<Self>>;
189
190 #[cfg(feature = "OSALanguage")]
191 #[deprecated]
192 #[unsafe(method(initWithContentsOfURL:language:error:))]
193 #[unsafe(method_family = init)]
194 pub unsafe fn initWithContentsOfURL_language_error(
195 this: Allocated<Self>,
196 url: &NSURL,
197 language: &OSALanguage,
198 error_info: Option<&mut Option<Retained<NSDictionary<NSString, AnyObject>>>>,
199 ) -> Retained<Self>;
200
201 #[cfg(feature = "OSALanguageInstance")]
202 #[unsafe(method(initWithContentsOfURL:languageInstance:usingStorageOptions:error:_))]
203 #[unsafe(method_family = init)]
204 pub unsafe fn initWithContentsOfURL_languageInstance_usingStorageOptions_error(
205 this: Allocated<Self>,
206 url: &NSURL,
207 instance: Option<&OSALanguageInstance>,
208 storage_options: OSAStorageOptions,
209 ) -> Result<Retained<Self>, Retained<NSError>>;
210
211 #[deprecated]
212 #[unsafe(method(initWithCompiledData:error:))]
213 #[unsafe(method_family = init)]
214 pub unsafe fn initWithCompiledData_error(
215 this: Allocated<Self>,
216 data: &NSData,
217 error_info: Option<&mut Option<Retained<NSDictionary<NSString, AnyObject>>>>,
218 ) -> Retained<Self>;
219
220 #[unsafe(method(initWithCompiledData:fromURL:usingStorageOptions:error:_))]
221 #[unsafe(method_family = init)]
222 pub unsafe fn initWithCompiledData_fromURL_usingStorageOptions_error(
223 this: Allocated<Self>,
224 data: &NSData,
225 url: Option<&NSURL>,
226 storage_options: OSAStorageOptions,
227 ) -> Result<Retained<Self>, Retained<NSError>>;
228
229 #[cfg(feature = "OSALanguageInstance")]
230 #[unsafe(method(initWithScriptDataDescriptor:fromURL:languageInstance:usingStorageOptions:error:_))]
231 #[unsafe(method_family = init)]
232 pub unsafe fn initWithScriptDataDescriptor_fromURL_languageInstance_usingStorageOptions_error(
233 this: Allocated<Self>,
234 data: &NSAppleEventDescriptor,
235 url: Option<&NSURL>,
236 instance: Option<&OSALanguageInstance>,
237 storage_options: OSAStorageOptions,
238 ) -> Result<Retained<Self>, Retained<NSError>>;
239
240 #[unsafe(method(source))]
241 #[unsafe(method_family = none)]
242 pub unsafe fn source(&self) -> Retained<NSString>;
243
244 #[unsafe(method(url))]
245 #[unsafe(method_family = none)]
246 pub unsafe fn url(&self) -> Option<Retained<NSURL>>;
247
248 #[cfg(feature = "OSALanguage")]
249 #[unsafe(method(language))]
250 #[unsafe(method_family = none)]
251 pub unsafe fn language(&self) -> Retained<OSALanguage>;
252
253 #[cfg(feature = "OSALanguage")]
254 #[unsafe(method(setLanguage:))]
256 #[unsafe(method_family = none)]
257 pub unsafe fn setLanguage(&self, language: &OSALanguage);
258
259 #[cfg(feature = "OSALanguageInstance")]
260 #[unsafe(method(languageInstance))]
261 #[unsafe(method_family = none)]
262 pub unsafe fn languageInstance(&self) -> Retained<OSALanguageInstance>;
263
264 #[cfg(feature = "OSALanguageInstance")]
265 #[unsafe(method(setLanguageInstance:))]
267 #[unsafe(method_family = none)]
268 pub unsafe fn setLanguageInstance(&self, language_instance: &OSALanguageInstance);
269
270 #[unsafe(method(isCompiled))]
271 #[unsafe(method_family = none)]
272 pub unsafe fn isCompiled(&self) -> bool;
273
274 #[unsafe(method(compileAndReturnError:))]
275 #[unsafe(method_family = none)]
276 pub unsafe fn compileAndReturnError(
277 &self,
278 error_info: Option<&mut Option<Retained<NSDictionary<NSString, AnyObject>>>>,
279 ) -> bool;
280
281 #[unsafe(method(executeAndReturnError:))]
282 #[unsafe(method_family = none)]
283 pub unsafe fn executeAndReturnError(
284 &self,
285 error_info: Option<&mut Option<Retained<NSDictionary<NSString, AnyObject>>>>,
286 ) -> Option<Retained<NSAppleEventDescriptor>>;
287
288 #[unsafe(method(executeAppleEvent:error:))]
289 #[unsafe(method_family = none)]
290 pub unsafe fn executeAppleEvent_error(
291 &self,
292 event: &NSAppleEventDescriptor,
293 error_info: Option<&mut Option<Retained<NSDictionary<NSString, AnyObject>>>>,
294 ) -> Option<Retained<NSAppleEventDescriptor>>;
295
296 #[unsafe(method(executeAndReturnDisplayValue:error:))]
297 #[unsafe(method_family = none)]
298 pub unsafe fn executeAndReturnDisplayValue_error(
299 &self,
300 display_value: &mut Option<Retained<NSAttributedString>>,
301 error_info: Option<&mut Option<Retained<NSDictionary<NSString, AnyObject>>>>,
302 ) -> Option<Retained<NSAppleEventDescriptor>>;
303
304 #[unsafe(method(executeHandlerWithName:arguments:error:))]
305 #[unsafe(method_family = none)]
306 pub unsafe fn executeHandlerWithName_arguments_error(
307 &self,
308 name: &NSString,
309 arguments: &NSArray,
310 error_info: Option<&mut Option<Retained<NSDictionary<NSString, AnyObject>>>>,
311 ) -> Option<Retained<NSAppleEventDescriptor>>;
312
313 #[unsafe(method(richTextSource))]
314 #[unsafe(method_family = none)]
315 pub unsafe fn richTextSource(&self) -> Option<Retained<NSAttributedString>>;
316
317 #[unsafe(method(richTextFromDescriptor:))]
318 #[unsafe(method_family = none)]
319 pub unsafe fn richTextFromDescriptor(
320 &self,
321 descriptor: &NSAppleEventDescriptor,
322 ) -> Option<Retained<NSAttributedString>>;
323
324 #[unsafe(method(writeToURL:ofType:error:))]
325 #[unsafe(method_family = none)]
326 pub unsafe fn writeToURL_ofType_error(
327 &self,
328 url: &NSURL,
329 r#type: &NSString,
330 error_info: Option<&mut Option<Retained<NSDictionary<NSString, AnyObject>>>>,
331 ) -> bool;
332
333 #[unsafe(method(writeToURL:ofType:usingStorageOptions:error:))]
334 #[unsafe(method_family = none)]
335 pub unsafe fn writeToURL_ofType_usingStorageOptions_error(
336 &self,
337 url: &NSURL,
338 r#type: &NSString,
339 storage_options: OSAStorageOptions,
340 error_info: Option<&mut Option<Retained<NSDictionary<NSString, AnyObject>>>>,
341 ) -> bool;
342
343 #[unsafe(method(compiledDataForType:usingStorageOptions:error:))]
344 #[unsafe(method_family = none)]
345 pub unsafe fn compiledDataForType_usingStorageOptions_error(
346 &self,
347 r#type: &NSString,
348 storage_options: OSAStorageOptions,
349 error_info: Option<&mut Option<Retained<NSDictionary<NSString, AnyObject>>>>,
350 ) -> Option<Retained<NSData>>;
351 );
352}
353
354impl OSAScript {
356 extern_methods!(
357 #[unsafe(method(init))]
358 #[unsafe(method_family = init)]
359 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
360
361 #[unsafe(method(new))]
362 #[unsafe(method_family = new)]
363 pub unsafe fn new() -> Retained<Self>;
364 );
365}