Skip to content

Commit 44cca2b

Browse files
authored
Merge pull request SSheldon#6 from madsmtm/no-std-exception
More `no_std` support
2 parents d343048 + 63f8c5c commit 44cca2b

33 files changed

Lines changed: 135 additions & 91 deletions

objc/src/cache.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
use std::os::raw::c_void;
2-
use std::ptr;
3-
use std::sync::atomic::{AtomicPtr, Ordering};
1+
use core::ffi::c_void;
2+
use core::ptr;
3+
use core::sync::atomic::{AtomicPtr, Ordering};
44

55
use crate::runtime::{self, Class, Sel};
66

objc/src/declare.rs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,11 @@ decl.register();
3434
```
3535
*/
3636

37+
use alloc::format;
38+
use alloc::string::ToString;
39+
use core::mem;
40+
use core::ptr;
3741
use std::ffi::CString;
38-
use std::mem;
39-
use std::ptr;
4042

4143
use crate::runtime::{self, Class, Imp, Object, Protocol, Sel, BOOL, NO};
4244
use crate::{Encode, EncodeArguments, Encoding, Message};
@@ -95,7 +97,7 @@ fn method_type_encoding(ret: &Encoding<'_>, args: &[Encoding<'_>]) -> CString {
9597
// First two arguments are always self and the selector
9698
let mut types = format!("{}{}{}", ret, <*mut Object>::ENCODING, Sel::ENCODING);
9799
for enc in args {
98-
use std::fmt::Write;
100+
use core::fmt::Write;
99101
write!(&mut types, "{}", enc).unwrap();
100102
}
101103
CString::new(types).unwrap()

objc/src/encode.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ encode_args_impl!(A, B, C, D, E, F, G, H, I, J, K, L);
5555
#[cfg(test)]
5656
mod tests {
5757
use crate::runtime::{Class, Object, Sel};
58+
use alloc::string::ToString;
5859
use objc_encode::Encode;
5960

6061
#[test]

objc/src/lib.rs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,11 +60,13 @@ The bindings can be used on Linux or *BSD utilizing the
6060
[GNUstep Objective-C runtime](https://www.github.com/gnustep/libobjc2).
6161
*/
6262

63-
#![crate_name = "objc"]
64-
#![crate_type = "lib"]
63+
#![no_std]
6564
#![warn(missing_docs)]
6665
#![allow(clippy::missing_safety_doc)]
6766

67+
extern crate alloc;
68+
extern crate std;
69+
6870
pub use objc_encode::{Encode, Encoding};
6971

7072
pub use crate::encode::EncodeArguments;

objc/src/message/apple/arm.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
use std::any::{Any, TypeId};
2-
use std::mem;
1+
use core::any::{Any, TypeId};
2+
use core::mem;
33

44
use crate::runtime::Imp;
55

objc/src/message/apple/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use std::any::Any;
1+
use core::any::Any;
22

33
use super::{Message, MessageArguments, MessageError, Super};
44
use crate::runtime::{Class, Object, Sel};

objc/src/message/apple/x86.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
use std::any::{Any, TypeId};
2-
use std::mem;
1+
use core::any::{Any, TypeId};
2+
use core::mem;
33

44
use crate::runtime::Imp;
55

objc/src/message/apple/x86_64.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use std::mem;
1+
use core::mem;
22

33
use crate::runtime::Imp;
44

objc/src/message/gnustep.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
use std::any::Any;
2-
use std::mem;
1+
use core::any::Any;
2+
use core::mem;
33

44
use super::{Message, MessageArguments, MessageError, Super};
55
use crate::runtime::{Class, Imp, Object, Sel};

objc/src/message/mod.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1-
use std::any::Any;
1+
use alloc::string::{String, ToString};
2+
use core::any::Any;
3+
use core::fmt;
4+
use core::mem;
25
use std::error::Error;
3-
use std::fmt;
4-
use std::mem;
56

67
use crate::runtime::{Class, Imp, Object, Sel};
78
use crate::{Encode, EncodeArguments};
@@ -314,7 +315,7 @@ mod tests {
314315
#[cfg(not(feature = "verify_message"))]
315316
#[test]
316317
fn test_send_message_nil() {
317-
let nil: *mut Object = ::std::ptr::null_mut();
318+
let nil: *mut Object = ::core::ptr::null_mut();
318319
let result: usize = unsafe { msg_send![nil, hash] };
319320
assert!(result == 0);
320321

0 commit comments

Comments
 (0)