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
142extern_conformance!(
143 unsafe impl NSCopying for OSAScript {}
144);
145
146unsafe impl CopyingHelper for OSAScript {
147 type Result = Self;
148}
149
150extern_conformance!(
151 unsafe impl NSObjectProtocol for OSAScript {}
152);
153
154impl OSAScript {
155 extern_methods!(
156 #[unsafe(method(scriptDataDescriptorWithContentsOfURL:))]
157 #[unsafe(method_family = none)]
158 pub unsafe fn scriptDataDescriptorWithContentsOfURL(
159 url: &NSURL,
160 ) -> Option<Retained<NSAppleEventDescriptor>>;
161
162 #[unsafe(method(initWithSource:))]
163 #[unsafe(method_family = init)]
164 pub unsafe fn initWithSource(this: Allocated<Self>, source: &NSString) -> Retained<Self>;
165
166 #[cfg(feature = "OSALanguage")]
167 #[unsafe(method(initWithSource:language:))]
168 #[unsafe(method_family = init)]
169 pub unsafe fn initWithSource_language(
170 this: Allocated<Self>,
171 source: &NSString,
172 language: Option<&OSALanguage>,
173 ) -> Retained<Self>;
174
175 #[cfg(feature = "OSALanguageInstance")]
176 #[unsafe(method(initWithSource:fromURL:languageInstance:usingStorageOptions:))]
177 #[unsafe(method_family = init)]
178 pub unsafe fn initWithSource_fromURL_languageInstance_usingStorageOptions(
179 this: Allocated<Self>,
180 source: &NSString,
181 url: Option<&NSURL>,
182 instance: Option<&OSALanguageInstance>,
183 storage_options: OSAStorageOptions,
184 ) -> Retained<Self>;
185
186 #[unsafe(method(initWithContentsOfURL:error:))]
190 #[unsafe(method_family = init)]
191 pub unsafe fn initWithContentsOfURL_error(
192 this: Allocated<Self>,
193 url: &NSURL,
194 error_info: Option<&mut Option<Retained<NSDictionary<NSString, AnyObject>>>>,
195 ) -> Option<Retained<Self>>;
196
197 #[cfg(feature = "OSALanguage")]
198 #[deprecated]
202 #[unsafe(method(initWithContentsOfURL:language:error:))]
203 #[unsafe(method_family = init)]
204 pub unsafe fn initWithContentsOfURL_language_error(
205 this: Allocated<Self>,
206 url: &NSURL,
207 language: &OSALanguage,
208 error_info: Option<&mut Option<Retained<NSDictionary<NSString, AnyObject>>>>,
209 ) -> Retained<Self>;
210
211 #[cfg(feature = "OSALanguageInstance")]
212 #[unsafe(method(initWithContentsOfURL:languageInstance:usingStorageOptions:error:_))]
213 #[unsafe(method_family = init)]
214 pub unsafe fn initWithContentsOfURL_languageInstance_usingStorageOptions_error(
215 this: Allocated<Self>,
216 url: &NSURL,
217 instance: Option<&OSALanguageInstance>,
218 storage_options: OSAStorageOptions,
219 ) -> Result<Retained<Self>, Retained<NSError>>;
220
221 #[deprecated]
225 #[unsafe(method(initWithCompiledData:error:))]
226 #[unsafe(method_family = init)]
227 pub unsafe fn initWithCompiledData_error(
228 this: Allocated<Self>,
229 data: &NSData,
230 error_info: Option<&mut Option<Retained<NSDictionary<NSString, AnyObject>>>>,
231 ) -> Retained<Self>;
232
233 #[unsafe(method(initWithCompiledData:fromURL:usingStorageOptions:error:_))]
234 #[unsafe(method_family = init)]
235 pub unsafe fn initWithCompiledData_fromURL_usingStorageOptions_error(
236 this: Allocated<Self>,
237 data: &NSData,
238 url: Option<&NSURL>,
239 storage_options: OSAStorageOptions,
240 ) -> Result<Retained<Self>, Retained<NSError>>;
241
242 #[cfg(feature = "OSALanguageInstance")]
243 #[unsafe(method(initWithScriptDataDescriptor:fromURL:languageInstance:usingStorageOptions:error:_))]
244 #[unsafe(method_family = init)]
245 pub unsafe fn initWithScriptDataDescriptor_fromURL_languageInstance_usingStorageOptions_error(
246 this: Allocated<Self>,
247 data: &NSAppleEventDescriptor,
248 url: Option<&NSURL>,
249 instance: Option<&OSALanguageInstance>,
250 storage_options: OSAStorageOptions,
251 ) -> Result<Retained<Self>, Retained<NSError>>;
252
253 #[unsafe(method(source))]
254 #[unsafe(method_family = none)]
255 pub unsafe fn source(&self) -> Retained<NSString>;
256
257 #[unsafe(method(url))]
258 #[unsafe(method_family = none)]
259 pub unsafe fn url(&self) -> Option<Retained<NSURL>>;
260
261 #[cfg(feature = "OSALanguage")]
262 #[unsafe(method(language))]
263 #[unsafe(method_family = none)]
264 pub unsafe fn language(&self) -> Retained<OSALanguage>;
265
266 #[cfg(feature = "OSALanguage")]
267 #[unsafe(method(setLanguage:))]
269 #[unsafe(method_family = none)]
270 pub unsafe fn setLanguage(&self, language: &OSALanguage);
271
272 #[cfg(feature = "OSALanguageInstance")]
273 #[unsafe(method(languageInstance))]
274 #[unsafe(method_family = none)]
275 pub unsafe fn languageInstance(&self) -> Retained<OSALanguageInstance>;
276
277 #[cfg(feature = "OSALanguageInstance")]
278 #[unsafe(method(setLanguageInstance:))]
280 #[unsafe(method_family = none)]
281 pub unsafe fn setLanguageInstance(&self, language_instance: &OSALanguageInstance);
282
283 #[unsafe(method(isCompiled))]
284 #[unsafe(method_family = none)]
285 pub unsafe fn isCompiled(&self) -> bool;
286
287 #[unsafe(method(compileAndReturnError:))]
291 #[unsafe(method_family = none)]
292 pub unsafe fn compileAndReturnError(
293 &self,
294 error_info: Option<&mut Option<Retained<NSDictionary<NSString, AnyObject>>>>,
295 ) -> bool;
296
297 #[unsafe(method(executeAndReturnError:))]
301 #[unsafe(method_family = none)]
302 pub unsafe fn executeAndReturnError(
303 &self,
304 error_info: Option<&mut Option<Retained<NSDictionary<NSString, AnyObject>>>>,
305 ) -> Option<Retained<NSAppleEventDescriptor>>;
306
307 #[unsafe(method(executeAppleEvent:error:))]
311 #[unsafe(method_family = none)]
312 pub unsafe fn executeAppleEvent_error(
313 &self,
314 event: &NSAppleEventDescriptor,
315 error_info: Option<&mut Option<Retained<NSDictionary<NSString, AnyObject>>>>,
316 ) -> Option<Retained<NSAppleEventDescriptor>>;
317
318 #[unsafe(method(executeAndReturnDisplayValue:error:))]
322 #[unsafe(method_family = none)]
323 pub unsafe fn executeAndReturnDisplayValue_error(
324 &self,
325 display_value: &mut Option<Retained<NSAttributedString>>,
326 error_info: Option<&mut Option<Retained<NSDictionary<NSString, AnyObject>>>>,
327 ) -> Option<Retained<NSAppleEventDescriptor>>;
328
329 #[unsafe(method(executeHandlerWithName:arguments:error:))]
334 #[unsafe(method_family = none)]
335 pub unsafe fn executeHandlerWithName_arguments_error(
336 &self,
337 name: &NSString,
338 arguments: &NSArray,
339 error_info: Option<&mut Option<Retained<NSDictionary<NSString, AnyObject>>>>,
340 ) -> Option<Retained<NSAppleEventDescriptor>>;
341
342 #[unsafe(method(richTextSource))]
343 #[unsafe(method_family = none)]
344 pub unsafe fn richTextSource(&self) -> Option<Retained<NSAttributedString>>;
345
346 #[unsafe(method(richTextFromDescriptor:))]
347 #[unsafe(method_family = none)]
348 pub unsafe fn richTextFromDescriptor(
349 &self,
350 descriptor: &NSAppleEventDescriptor,
351 ) -> Option<Retained<NSAttributedString>>;
352
353 #[unsafe(method(writeToURL:ofType:error:))]
357 #[unsafe(method_family = none)]
358 pub unsafe fn writeToURL_ofType_error(
359 &self,
360 url: &NSURL,
361 r#type: &NSString,
362 error_info: Option<&mut Option<Retained<NSDictionary<NSString, AnyObject>>>>,
363 ) -> bool;
364
365 #[unsafe(method(writeToURL:ofType:usingStorageOptions:error:))]
369 #[unsafe(method_family = none)]
370 pub unsafe fn writeToURL_ofType_usingStorageOptions_error(
371 &self,
372 url: &NSURL,
373 r#type: &NSString,
374 storage_options: OSAStorageOptions,
375 error_info: Option<&mut Option<Retained<NSDictionary<NSString, AnyObject>>>>,
376 ) -> bool;
377
378 #[unsafe(method(compiledDataForType:usingStorageOptions:error:))]
382 #[unsafe(method_family = none)]
383 pub unsafe fn compiledDataForType_usingStorageOptions_error(
384 &self,
385 r#type: &NSString,
386 storage_options: OSAStorageOptions,
387 error_info: Option<&mut Option<Retained<NSDictionary<NSString, AnyObject>>>>,
388 ) -> Option<Retained<NSData>>;
389 );
390}
391
392impl OSAScript {
394 extern_methods!(
395 #[unsafe(method(init))]
396 #[unsafe(method_family = init)]
397 pub unsafe fn init(this: Allocated<Self>) -> Retained<Self>;
398
399 #[unsafe(method(new))]
400 #[unsafe(method_family = new)]
401 pub unsafe fn new() -> Retained<Self>;
402 );
403}