@@ -49,7 +49,7 @@ use crate::Encoding;
49
49
/// }
50
50
///
51
51
/// unsafe impl Encode for MyType {
52
- /// const ENCODING: Encoding<'static> = Encoding::Struct(
52
+ /// const ENCODING: Encoding = Encoding::Struct(
53
53
/// // The name of the type that Objective-C sees.
54
54
/// "MyType",
55
55
/// &[
@@ -68,7 +68,7 @@ use crate::Encoding;
68
68
/// [reprs]: https://doc.rust-lang.org/nomicon/other-reprs.html
69
69
pub unsafe trait Encode {
70
70
/// The Objective-C type-encoding for this type.
71
- const ENCODING : Encoding < ' static > ;
71
+ const ENCODING : Encoding ;
72
72
}
73
73
74
74
/// Types whoose references has an Objective-C type-encoding.
@@ -127,7 +127,7 @@ pub unsafe trait RefEncode {
127
127
/// # _priv: [u8; 0],
128
128
/// # }
129
129
/// # unsafe impl RefEncode for MyObject {
130
- /// const ENCODING_REF: Encoding<'static> = Encoding::Object;
130
+ /// const ENCODING_REF: Encoding = Encoding::Object;
131
131
/// # }
132
132
/// ```
133
133
///
@@ -138,13 +138,13 @@ pub unsafe trait RefEncode {
138
138
/// # #[repr(transparent)]
139
139
/// # struct MyType(i32);
140
140
/// # unsafe impl Encode for MyType {
141
- /// # const ENCODING: Encoding<'static> = i32::ENCODING;
141
+ /// # const ENCODING: Encoding = i32::ENCODING;
142
142
/// # }
143
143
/// # unsafe impl RefEncode for MyType {
144
- /// const ENCODING_REF: Encoding<'static> = Encoding::Pointer(&Self::ENCODING);
144
+ /// const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
145
145
/// # }
146
146
/// ```
147
- const ENCODING_REF : Encoding < ' static > ;
147
+ const ENCODING_REF : Encoding ;
148
148
}
149
149
150
150
// TODO: Implement for `PhantomData` and `PhantomPinned`?
@@ -153,7 +153,7 @@ pub unsafe trait RefEncode {
153
153
macro_rules! encode_impls {
154
154
( $( $t: ty => $e: ident, ) * ) => ( $(
155
155
unsafe impl Encode for $t {
156
- const ENCODING : Encoding < ' static > = Encoding :: $e;
156
+ const ENCODING : Encoding = Encoding :: $e;
157
157
}
158
158
) * ) ;
159
159
}
@@ -182,7 +182,7 @@ encode_impls!(
182
182
/// `()` is not FFI-safe)!
183
183
// TODO: Figure out a way to remove this - maybe with a `EncodeReturn` trait?
184
184
unsafe impl Encode for ( ) {
185
- const ENCODING : Encoding < ' static > = Encoding :: Void ;
185
+ const ENCODING : Encoding = Encoding :: Void ;
186
186
}
187
187
188
188
// UI tests of this is too brittle.
@@ -212,19 +212,19 @@ extern "C" {}
212
212
///
213
213
/// Use `objc2::runtime::Bool::ENCODING` instead.
214
214
unsafe impl Encode for bool {
215
- const ENCODING : Encoding < ' static > = Encoding :: Bool ;
215
+ const ENCODING : Encoding = Encoding :: Bool ;
216
216
}
217
217
218
218
macro_rules! encode_impls_size {
219
219
( $( $t: ty => ( $t16: ty, $t32: ty, $t64: ty) , ) * ) => ( $(
220
220
#[ doc = concat!( "The encoding of [`" , stringify!( $t) , "`] varies based on the target pointer width." ) ]
221
221
unsafe impl Encode for $t {
222
222
#[ cfg( target_pointer_width = "16" ) ]
223
- const ENCODING : Encoding < ' static > = <$t16>:: ENCODING ;
223
+ const ENCODING : Encoding = <$t16>:: ENCODING ;
224
224
#[ cfg( target_pointer_width = "32" ) ]
225
- const ENCODING : Encoding < ' static > = <$t32>:: ENCODING ;
225
+ const ENCODING : Encoding = <$t32>:: ENCODING ;
226
226
#[ cfg( target_pointer_width = "64" ) ]
227
- const ENCODING : Encoding < ' static > = <$t64>:: ENCODING ;
227
+ const ENCODING : Encoding = <$t64>:: ENCODING ;
228
228
}
229
229
) * ) ;
230
230
}
@@ -238,7 +238,7 @@ encode_impls_size!(
238
238
macro_rules! pointer_refencode_impl {
239
239
( $( $t: ty) ,* ) => ( $(
240
240
unsafe impl RefEncode for $t {
241
- const ENCODING_REF : Encoding < ' static > = Encoding :: Pointer ( & Self :: ENCODING ) ;
241
+ const ENCODING_REF : Encoding = Encoding :: Pointer ( & Self :: ENCODING ) ;
242
242
}
243
243
) * ) ;
244
244
}
@@ -247,31 +247,31 @@ pointer_refencode_impl!(bool, i16, i32, i64, isize, u16, u32, u64, usize, f32, f
247
247
248
248
/// Pointers to [`i8`] use the special [`Encoding::String`] encoding.
249
249
unsafe impl RefEncode for i8 {
250
- const ENCODING_REF : Encoding < ' static > = Encoding :: String ;
250
+ const ENCODING_REF : Encoding = Encoding :: String ;
251
251
}
252
252
253
253
/// Pointers to [`u8`] use the special [`Encoding::String`] encoding.
254
254
unsafe impl RefEncode for u8 {
255
- const ENCODING_REF : Encoding < ' static > = Encoding :: String ;
255
+ const ENCODING_REF : Encoding = Encoding :: String ;
256
256
}
257
257
258
258
/// Simple helper for implementing [`Encode`] for nonzero integer types.
259
259
macro_rules! encode_impls_nonzero {
260
260
( $( $nonzero: ident => $type: ty, ) * ) => ( $(
261
261
unsafe impl Encode for $nonzero {
262
- const ENCODING : Encoding < ' static > = <$type>:: ENCODING ;
262
+ const ENCODING : Encoding = <$type>:: ENCODING ;
263
263
}
264
264
265
265
unsafe impl Encode for Option <$nonzero> {
266
- const ENCODING : Encoding < ' static > = <$type>:: ENCODING ;
266
+ const ENCODING : Encoding = <$type>:: ENCODING ;
267
267
}
268
268
269
269
unsafe impl RefEncode for $nonzero {
270
- const ENCODING_REF : Encoding < ' static > = <$type>:: ENCODING_REF ;
270
+ const ENCODING_REF : Encoding = <$type>:: ENCODING_REF ;
271
271
}
272
272
273
273
unsafe impl RefEncode for Option <$nonzero> {
274
- const ENCODING_REF : Encoding < ' static > = <$type>:: ENCODING_REF ;
274
+ const ENCODING_REF : Encoding = <$type>:: ENCODING_REF ;
275
275
}
276
276
) * ) ;
277
277
}
@@ -300,12 +300,12 @@ macro_rules! encode_atomic_impls {
300
300
// in-memory representation as the underlying type.
301
301
$( #[ $m] ) *
302
302
unsafe impl Encode for atomic:: $atomic {
303
- const ENCODING : Encoding < ' static > = Encoding :: Atomic ( & <$type>:: ENCODING ) ;
303
+ const ENCODING : Encoding = Encoding :: Atomic ( & <$type>:: ENCODING ) ;
304
304
}
305
305
306
306
$( #[ $m] ) *
307
307
unsafe impl RefEncode for atomic:: $atomic {
308
- const ENCODING_REF : Encoding < ' static > = Encoding :: Pointer ( & Self :: ENCODING ) ;
308
+ const ENCODING_REF : Encoding = Encoding :: Pointer ( & Self :: ENCODING ) ;
309
309
}
310
310
) * ) ;
311
311
}
@@ -348,50 +348,50 @@ encode_atomic_impls!(
348
348
// SAFETY: Guaranteed to have the same in-memory representation as `*mut T`.
349
349
#[ cfg( target_has_atomic = "ptr" ) ]
350
350
unsafe impl < T : RefEncode > Encode for atomic:: AtomicPtr < T > {
351
- const ENCODING : Encoding < ' static > = Encoding :: Atomic ( & T :: ENCODING_REF ) ;
351
+ const ENCODING : Encoding = Encoding :: Atomic ( & T :: ENCODING_REF ) ;
352
352
}
353
353
354
354
#[ cfg( target_has_atomic = "ptr" ) ]
355
355
unsafe impl < T : RefEncode > RefEncode for atomic:: AtomicPtr < T > {
356
- const ENCODING_REF : Encoding < ' static > = Encoding :: Pointer ( & Self :: ENCODING ) ;
356
+ const ENCODING_REF : Encoding = Encoding :: Pointer ( & Self :: ENCODING ) ;
357
357
}
358
358
359
359
/// [`Encode`] is implemented manually for `*const c_void`, instead of
360
360
/// implementing [`RefEncode`], to discourage creating `&c_void`.
361
361
unsafe impl Encode for * const c_void {
362
- const ENCODING : Encoding < ' static > = Encoding :: Pointer ( & Encoding :: Void ) ;
362
+ const ENCODING : Encoding = Encoding :: Pointer ( & Encoding :: Void ) ;
363
363
}
364
364
365
365
unsafe impl RefEncode for * const c_void {
366
- const ENCODING_REF : Encoding < ' static > = Encoding :: Pointer ( & Self :: ENCODING ) ;
366
+ const ENCODING_REF : Encoding = Encoding :: Pointer ( & Self :: ENCODING ) ;
367
367
}
368
368
369
369
/// [`Encode`] is implemented manually for `*mut c_void`, instead of
370
370
/// implementing [`RefEncode`], to discourage creating `&mut c_void`.
371
371
unsafe impl Encode for * mut c_void {
372
- const ENCODING : Encoding < ' static > = Encoding :: Pointer ( & Encoding :: Void ) ;
372
+ const ENCODING : Encoding = Encoding :: Pointer ( & Encoding :: Void ) ;
373
373
}
374
374
375
375
unsafe impl RefEncode for * mut c_void {
376
- const ENCODING_REF : Encoding < ' static > = Encoding :: Pointer ( & Self :: ENCODING ) ;
376
+ const ENCODING_REF : Encoding = Encoding :: Pointer ( & Self :: ENCODING ) ;
377
377
}
378
378
379
379
unsafe impl < T : Encode , const LENGTH : usize > Encode for [ T ; LENGTH ] {
380
- const ENCODING : Encoding < ' static > = Encoding :: Array ( LENGTH , & T :: ENCODING ) ;
380
+ const ENCODING : Encoding = Encoding :: Array ( LENGTH , & T :: ENCODING ) ;
381
381
}
382
382
383
383
unsafe impl < T : Encode , const LENGTH : usize > RefEncode for [ T ; LENGTH ] {
384
- const ENCODING_REF : Encoding < ' static > = Encoding :: Pointer ( & Self :: ENCODING ) ;
384
+ const ENCODING_REF : Encoding = Encoding :: Pointer ( & Self :: ENCODING ) ;
385
385
}
386
386
387
387
macro_rules! encode_impls_transparent {
388
388
( $( $t: ident<T $( : ?$b: ident) ?>, ) * ) => ( $(
389
389
unsafe impl <T : Encode $( + ?$b) ?> Encode for $t<T > {
390
- const ENCODING : Encoding < ' static > = T :: ENCODING ;
390
+ const ENCODING : Encoding = T :: ENCODING ;
391
391
}
392
392
393
393
unsafe impl <T : RefEncode $( + ?$b) ?> RefEncode for $t<T > {
394
- const ENCODING_REF : Encoding < ' static > = T :: ENCODING_REF ;
394
+ const ENCODING_REF : Encoding = T :: ENCODING_REF ;
395
395
}
396
396
) * ) ;
397
397
}
@@ -439,35 +439,35 @@ macro_rules! encode_pointer_impls {
439
439
const $c: ident = $e: expr;
440
440
} ) => (
441
441
unsafe impl <T : RefEncode + ?Sized > $x for * const T {
442
- const $c: Encoding < ' static > = $e;
442
+ const $c: Encoding = $e;
443
443
}
444
444
445
445
unsafe impl <T : RefEncode + ?Sized > $x for * mut T {
446
- const $c: Encoding < ' static > = $e;
446
+ const $c: Encoding = $e;
447
447
}
448
448
449
449
unsafe impl <' a, T : RefEncode + ?Sized > $x for & ' a T {
450
- const $c: Encoding < ' static > = $e;
450
+ const $c: Encoding = $e;
451
451
}
452
452
453
453
unsafe impl <' a, T : RefEncode + ?Sized > $x for & ' a mut T {
454
- const $c: Encoding < ' static > = $e;
454
+ const $c: Encoding = $e;
455
455
}
456
456
457
457
unsafe impl <T : RefEncode + ?Sized > $x for NonNull <T > {
458
- const $c: Encoding < ' static > = $e;
458
+ const $c: Encoding = $e;
459
459
}
460
460
461
461
unsafe impl <' a, T : RefEncode + ?Sized > $x for Option <& ' a T > {
462
- const $c: Encoding < ' static > = $e;
462
+ const $c: Encoding = $e;
463
463
}
464
464
465
465
unsafe impl <' a, T : RefEncode + ?Sized > $x for Option <& ' a mut T > {
466
- const $c: Encoding < ' static > = $e;
466
+ const $c: Encoding = $e;
467
467
}
468
468
469
469
unsafe impl <T : RefEncode + ?Sized > $x for Option <NonNull <T >> {
470
- const $c: Encoding < ' static > = $e;
470
+ const $c: Encoding = $e;
471
471
}
472
472
) ;
473
473
}
@@ -510,17 +510,17 @@ encode_pointer_impls!(
510
510
macro_rules! encode_fn_pointer_impl {
511
511
( @ $FnTy: ty, $( $Arg: ident) ,* ) => {
512
512
unsafe impl <Ret : Encode , $( $Arg: Encode ) ,* > Encode for $FnTy {
513
- const ENCODING : Encoding < ' static > = Encoding :: Pointer ( & Encoding :: Unknown ) ;
513
+ const ENCODING : Encoding = Encoding :: Pointer ( & Encoding :: Unknown ) ;
514
514
}
515
515
unsafe impl <Ret : Encode , $( $Arg: Encode ) ,* > RefEncode for $FnTy {
516
- const ENCODING_REF : Encoding < ' static > = Encoding :: Pointer ( & Self :: ENCODING ) ;
516
+ const ENCODING_REF : Encoding = Encoding :: Pointer ( & Self :: ENCODING ) ;
517
517
}
518
518
519
519
unsafe impl <Ret : Encode , $( $Arg: Encode ) ,* > Encode for Option <$FnTy> {
520
- const ENCODING : Encoding < ' static > = Encoding :: Pointer ( & Encoding :: Unknown ) ;
520
+ const ENCODING : Encoding = Encoding :: Pointer ( & Encoding :: Unknown ) ;
521
521
}
522
522
unsafe impl <Ret : Encode , $( $Arg: Encode ) ,* > RefEncode for Option <$FnTy> {
523
- const ENCODING_REF : Encoding < ' static > = Encoding :: Pointer ( & Self :: ENCODING ) ;
523
+ const ENCODING_REF : Encoding = Encoding :: Pointer ( & Self :: ENCODING ) ;
524
524
}
525
525
} ;
526
526
( # $abi: literal; $( $Arg: ident) ,+) => {
@@ -576,15 +576,15 @@ mod private {
576
576
/// issue if you know a use-case where this restrition should be lifted!
577
577
pub unsafe trait EncodeArguments : private:: Sealed {
578
578
/// The encodings for the arguments.
579
- const ENCODINGS : & ' static [ Encoding < ' static > ] ;
579
+ const ENCODINGS : & ' static [ Encoding ] ;
580
580
}
581
581
582
582
macro_rules! encode_args_impl {
583
583
( $( $Arg: ident) ,* ) => {
584
584
impl <$( $Arg: Encode ) ,* > private:: Sealed for ( $( $Arg, ) * ) { }
585
585
586
586
unsafe impl <$( $Arg: Encode ) ,* > EncodeArguments for ( $( $Arg, ) * ) {
587
- const ENCODINGS : & ' static [ Encoding < ' static > ] = & [
587
+ const ENCODINGS : & ' static [ Encoding ] = & [
588
588
$( $Arg:: ENCODING ) ,*
589
589
] ;
590
590
}
0 commit comments