Skip to content

Commit 9f1dcf7

Browse files
authored
Merge pull request #4 from FabianLars/main
chore(deps): Update objc2 to 0.6
2 parents 3766f04 + 7d9b17e commit 9f1dcf7

File tree

5 files changed

+67
-145
lines changed

5 files changed

+67
-145
lines changed

Cargo.lock

Lines changed: 23 additions & 102 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "osakit"
3-
version = "0.3.0"
3+
version = "0.3.1"
44
edition = "2021"
55
authors = ["Marat Dulin <mdevils@gmail.com>"]
66
description = "OSAKit macOS Framework adapted for Rust"
@@ -17,12 +17,12 @@ categories = [
1717
]
1818

1919
[dependencies]
20-
icrate = { version = "0.1.0", features = ["OSAKit", "OSAKit_OSAScript", "Foundation_NSString", "OSAKit_OSALanguage", "Foundation_NSURL", "OSAKit_OSALanguageInstance", "Foundation_NSDictionary", "Foundation_NSAppleEventDescriptor", "Foundation_NSValue", "Foundation_NSNumber", "Foundation_NSNull", "Foundation_NSDate"] }
21-
objc2-foundation = { version = "0.2.2", features = ["NSAppleEventDescriptor", "NSArray", "NSDate", "NSDictionary", "NSEnumerator", "NSKeyValueCoding", "NSNull", "NSObject", "NSRange", "NSString", "NSValue"] }
22-
objc2-osa-kit = { version = "0.2.2", features = ["OSALanguage", "OSALanguageInstance", "OSAScript"] }
20+
objc2 = "0.6.0"
21+
objc2-foundation = { version = "0.3.0", features = ["NSAppleEventDescriptor", "NSArray", "NSDate", "NSDictionary", "NSEnumerator", "NSKeyValueCoding", "NSNull", "NSObject", "NSRange", "NSString", "NSValue"] }
22+
objc2-osa-kit = { version = "0.3.0", features = ["OSALanguage", "OSALanguageInstance", "OSAScript"] }
2323
serde = { version = "1", features = ["derive"] }
2424
serde_json = "1"
25-
thiserror = "1"
25+
thiserror = "2"
2626

2727
[dev-dependencies]
2828
libtest-mimic-collect = "0.3.1"

src/export/script.rs

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,7 @@
11
use crate::value::input::{values_vec_to_ns_array, ScriptInputConversionError};
22
use crate::value::output::{get_value_from_ns_apple_event_descriptor, ScriptOutputConversionError};
33
use crate::value::Value;
4-
use icrate::objc2::rc::Id;
5-
use icrate::objc2::runtime::AnyObject;
6-
use icrate::objc2::ClassType;
4+
use objc2::{rc::Retained, runtime::AnyObject, AllocAnyThread};
75
use objc2_foundation::{NSAppleEventDescriptor, NSDictionary, NSString, NSValue};
86
use objc2_osa_kit::{
97
OSALanguage, OSALanguageInstance, OSAScript, OSAScriptErrorMessageKey, OSAScriptErrorRangeKey,
@@ -78,7 +76,7 @@ fn check_main_thread() -> Result<(), ScriptExecutionError> {
7876
/// # }
7977
/// ```
8078
pub struct Script {
81-
script: Id<OSAScript>,
79+
script: Retained<OSAScript>,
8280
compiled: bool,
8381
}
8482

@@ -132,18 +130,21 @@ pub enum ScriptExecutionError {
132130
}
133131

134132
fn extract_error_data(
135-
error_dict_opt: Option<Id<NSDictionary<NSString, AnyObject>>>,
133+
error_dict_opt: Option<Retained<NSDictionary<NSString, AnyObject>>>,
136134
) -> Option<(String, (usize, usize))> {
137135
match error_dict_opt {
138136
None => None,
139137
Some(error_dict) => match unsafe { error_dict.valueForKey(OSAScriptErrorMessageKey) } {
140138
None => None,
141139
Some(message_obj) => {
142-
let error_message_ns_str: Id<NSString> = unsafe { Id::cast(message_obj) };
140+
let error_message_ns_str: Retained<NSString> =
141+
unsafe { Retained::cast_unchecked(message_obj) };
143142
Some((
144143
error_message_ns_str.to_string(),
145144
match unsafe { error_dict.valueForKey(OSAScriptErrorRangeKey) }
146-
.map(|range| -> Id<NSValue> { unsafe { Id::cast(range) } })
145+
.map(|range| -> Retained<NSValue> {
146+
unsafe { Retained::cast_unchecked(range) }
147+
})
147148
.map(|range| range.get_range())
148149
{
149150
Some(Some(range)) => (range.location, range.length),
@@ -156,7 +157,7 @@ fn extract_error_data(
156157
}
157158

158159
#[inline]
159-
fn get_osa_language_instance(language: Language) -> Id<OSALanguageInstance> {
160+
fn get_osa_language_instance(language: Language) -> Retained<OSALanguageInstance> {
160161
let language_name = match language {
161162
Language::AppleScript => "AppleScript",
162163
Language::JavaScript => "JavaScript",
@@ -178,7 +179,7 @@ impl Script {
178179
&script_ns_string,
179180
None,
180181
Some(ns_language_instance.deref()),
181-
OSAStorageOptions::OSANull,
182+
OSAStorageOptions::Null,
182183
)
183184
};
184185
Self {
@@ -193,7 +194,7 @@ impl Script {
193194
return Ok(());
194195
}
195196

196-
let mut error_opt: Option<Id<NSDictionary<NSString, AnyObject>>> = None;
197+
let mut error_opt: Option<Retained<NSDictionary<NSString, AnyObject>>> = None;
197198
if unsafe { self.script.compileAndReturnError(Some(&mut error_opt)) } {
198199
self.compiled = true;
199200
return Ok(());
@@ -214,14 +215,14 @@ impl Script {
214215
/// In case of `JavaScript` output can be returned using `output` variable. I.e. `output = "test";`.
215216
pub fn execute(&self) -> Result<Value, ScriptExecutionError> {
216217
check_main_thread()?;
217-
let mut error_opt: Option<Id<NSDictionary<NSString, AnyObject>>> = None;
218+
let mut error_opt: Option<Retained<NSDictionary<NSString, AnyObject>>> = None;
218219
let result = unsafe { self.script.executeAndReturnError(Some(&mut error_opt)) };
219220
Self::process_execution_result(result, error_opt)
220221
}
221222

222223
fn process_execution_result(
223-
result: Option<Id<NSAppleEventDescriptor>>,
224-
error_opt: Option<Id<NSDictionary<NSString, AnyObject>>>,
224+
result: Option<Retained<NSAppleEventDescriptor>>,
225+
error_opt: Option<Retained<NSDictionary<NSString, AnyObject>>>,
225226
) -> Result<Value, ScriptExecutionError> {
226227
match error_opt {
227228
None => match result {
@@ -249,7 +250,7 @@ impl Script {
249250
arguments: I,
250251
) -> Result<Value, ScriptExecutionError> {
251252
check_main_thread()?;
252-
let mut error_opt: Option<Id<NSDictionary<NSString, AnyObject>>> = None;
253+
let mut error_opt: Option<Retained<NSDictionary<NSString, AnyObject>>> = None;
253254
let ns_handler_name = NSString::from_str(function_name);
254255
let ns_arguments = values_vec_to_ns_array(arguments)?;
255256
let result = unsafe {

0 commit comments

Comments
 (0)