This crate is mainly just a wrapper around the objc runtime dylib, so it shouldn't need much else. If we can make it no_std then it might be usable in more places, perhaps even in the rust compiler itself.
The current std dependencies that aren't part of libcore are:
- Nul-terminating
&str via CString in the runtime module and the declare module
- Reading the length of a C string via
CStr in the runtime module and for Encoding
- Using a
String in Encoding to store dynamically-sized, runtime defined type encodings
- Allocating a buffer via
String when declaring methods to represent their type encodings in the declare module
- Using a
String in the representation of MessageError
- Implementing the
Error trait for MessageError
- Using the
std::os::raw types instead of the libc types in the runtime module and for implementing the Encode trait
This crate is mainly just a wrapper around the objc runtime dylib, so it shouldn't need much else. If we can make it
no_stdthen it might be usable in more places, perhaps even in the rust compiler itself.The current std dependencies that aren't part of libcore are:
&strviaCStringin the runtime module and the declare moduleCStrin the runtime module and forEncodingStringinEncodingto store dynamically-sized, runtime defined type encodingsStringwhen declaring methods to represent their type encodings in the declare moduleStringin the representation ofMessageErrorErrortrait forMessageErrorstd::os::rawtypes instead of thelibctypes in the runtime module and for implementing theEncodetrait