@@ -178,37 +178,37 @@ sockopt_impl!(GetOnly, OriginalDst, libc::SOL_IP, libc::SO_ORIGINAL_DST, libc::s
178
178
*
179
179
*/
180
180
181
- trait Get < T > {
181
+ unsafe trait Get < T > {
182
182
unsafe fn blank ( ) -> Self ;
183
- unsafe fn ffi_ptr ( & mut self ) -> * mut c_void ;
184
- unsafe fn ffi_len ( & mut self ) -> * mut socklen_t ;
183
+ fn ffi_ptr ( & mut self ) -> * mut c_void ;
184
+ fn ffi_len ( & mut self ) -> * mut socklen_t ;
185
185
unsafe fn unwrap ( self ) -> T ;
186
186
}
187
187
188
- trait Set < ' a , T > {
188
+ unsafe trait Set < ' a , T > {
189
189
fn new ( val : & ' a T ) -> Self ;
190
- unsafe fn ffi_ptr ( & self ) -> * const c_void ;
191
- unsafe fn ffi_len ( & self ) -> socklen_t ;
190
+ fn ffi_ptr ( & self ) -> * const c_void ;
191
+ fn ffi_len ( & self ) -> socklen_t ;
192
192
}
193
193
194
194
struct GetStruct < T > {
195
195
len : socklen_t ,
196
196
val : T ,
197
197
}
198
198
199
- impl < T > Get < T > for GetStruct < T > {
199
+ unsafe impl < T > Get < T > for GetStruct < T > {
200
200
unsafe fn blank ( ) -> Self {
201
201
GetStruct {
202
202
len : mem:: size_of :: < T > ( ) as socklen_t ,
203
203
val : mem:: zeroed ( ) ,
204
204
}
205
205
}
206
206
207
- unsafe fn ffi_ptr ( & mut self ) -> * mut c_void {
207
+ fn ffi_ptr ( & mut self ) -> * mut c_void {
208
208
& mut self . val as * mut T as * mut c_void
209
209
}
210
210
211
- unsafe fn ffi_len ( & mut self ) -> * mut socklen_t {
211
+ fn ffi_len ( & mut self ) -> * mut socklen_t {
212
212
& mut self . len
213
213
}
214
214
@@ -222,16 +222,16 @@ struct SetStruct<'a, T: 'static> {
222
222
ptr : & ' a T ,
223
223
}
224
224
225
- impl < ' a , T > Set < ' a , T > for SetStruct < ' a , T > {
225
+ unsafe impl < ' a , T > Set < ' a , T > for SetStruct < ' a , T > {
226
226
fn new ( ptr : & ' a T ) -> SetStruct < ' a , T > {
227
227
SetStruct { ptr : ptr }
228
228
}
229
229
230
- unsafe fn ffi_ptr ( & self ) -> * const c_void {
230
+ fn ffi_ptr ( & self ) -> * const c_void {
231
231
self . ptr as * const T as * const c_void
232
232
}
233
233
234
- unsafe fn ffi_len ( & self ) -> socklen_t {
234
+ fn ffi_len ( & self ) -> socklen_t {
235
235
mem:: size_of :: < T > ( ) as socklen_t
236
236
}
237
237
}
@@ -241,19 +241,19 @@ struct GetBool {
241
241
val : c_int ,
242
242
}
243
243
244
- impl Get < bool > for GetBool {
244
+ unsafe impl Get < bool > for GetBool {
245
245
unsafe fn blank ( ) -> Self {
246
246
GetBool {
247
247
len : mem:: size_of :: < c_int > ( ) as socklen_t ,
248
248
val : mem:: zeroed ( ) ,
249
249
}
250
250
}
251
251
252
- unsafe fn ffi_ptr ( & mut self ) -> * mut c_void {
252
+ fn ffi_ptr ( & mut self ) -> * mut c_void {
253
253
& mut self . val as * mut c_int as * mut c_void
254
254
}
255
255
256
- unsafe fn ffi_len ( & mut self ) -> * mut socklen_t {
256
+ fn ffi_len ( & mut self ) -> * mut socklen_t {
257
257
& mut self . len
258
258
}
259
259
@@ -267,16 +267,16 @@ struct SetBool {
267
267
val : c_int ,
268
268
}
269
269
270
- impl < ' a > Set < ' a , bool > for SetBool {
270
+ unsafe impl < ' a > Set < ' a , bool > for SetBool {
271
271
fn new ( val : & ' a bool ) -> SetBool {
272
272
SetBool { val : if * val { 1 } else { 0 } }
273
273
}
274
274
275
- unsafe fn ffi_ptr ( & self ) -> * const c_void {
275
+ fn ffi_ptr ( & self ) -> * const c_void {
276
276
& self . val as * const c_int as * const c_void
277
277
}
278
278
279
- unsafe fn ffi_len ( & self ) -> socklen_t {
279
+ fn ffi_len ( & self ) -> socklen_t {
280
280
mem:: size_of :: < c_int > ( ) as socklen_t
281
281
}
282
282
}
@@ -286,19 +286,19 @@ struct GetU8 {
286
286
val : uint8_t ,
287
287
}
288
288
289
- impl Get < u8 > for GetU8 {
289
+ unsafe impl Get < u8 > for GetU8 {
290
290
unsafe fn blank ( ) -> Self {
291
291
GetU8 {
292
292
len : mem:: size_of :: < uint8_t > ( ) as socklen_t ,
293
293
val : mem:: zeroed ( ) ,
294
294
}
295
295
}
296
296
297
- unsafe fn ffi_ptr ( & mut self ) -> * mut c_void {
297
+ fn ffi_ptr ( & mut self ) -> * mut c_void {
298
298
& mut self . val as * mut uint8_t as * mut c_void
299
299
}
300
300
301
- unsafe fn ffi_len ( & mut self ) -> * mut socklen_t {
301
+ fn ffi_len ( & mut self ) -> * mut socklen_t {
302
302
& mut self . len
303
303
}
304
304
@@ -312,16 +312,16 @@ struct SetU8 {
312
312
val : uint8_t ,
313
313
}
314
314
315
- impl < ' a > Set < ' a , u8 > for SetU8 {
315
+ unsafe impl < ' a > Set < ' a , u8 > for SetU8 {
316
316
fn new ( val : & ' a u8 ) -> SetU8 {
317
317
SetU8 { val : * val as uint8_t }
318
318
}
319
319
320
- unsafe fn ffi_ptr ( & self ) -> * const c_void {
320
+ fn ffi_ptr ( & self ) -> * const c_void {
321
321
& self . val as * const uint8_t as * const c_void
322
322
}
323
323
324
- unsafe fn ffi_len ( & self ) -> socklen_t {
324
+ fn ffi_len ( & self ) -> socklen_t {
325
325
mem:: size_of :: < c_int > ( ) as socklen_t
326
326
}
327
327
}
@@ -331,19 +331,19 @@ struct GetUsize {
331
331
val : c_int ,
332
332
}
333
333
334
- impl Get < usize > for GetUsize {
334
+ unsafe impl Get < usize > for GetUsize {
335
335
unsafe fn blank ( ) -> Self {
336
336
GetUsize {
337
337
len : mem:: size_of :: < c_int > ( ) as socklen_t ,
338
338
val : mem:: zeroed ( ) ,
339
339
}
340
340
}
341
341
342
- unsafe fn ffi_ptr ( & mut self ) -> * mut c_void {
342
+ fn ffi_ptr ( & mut self ) -> * mut c_void {
343
343
& mut self . val as * mut c_int as * mut c_void
344
344
}
345
345
346
- unsafe fn ffi_len ( & mut self ) -> * mut socklen_t {
346
+ fn ffi_len ( & mut self ) -> * mut socklen_t {
347
347
& mut self . len
348
348
}
349
349
@@ -357,16 +357,16 @@ struct SetUsize {
357
357
val : c_int ,
358
358
}
359
359
360
- impl < ' a > Set < ' a , usize > for SetUsize {
360
+ unsafe impl < ' a > Set < ' a , usize > for SetUsize {
361
361
fn new ( val : & ' a usize ) -> SetUsize {
362
362
SetUsize { val : * val as c_int }
363
363
}
364
364
365
- unsafe fn ffi_ptr ( & self ) -> * const c_void {
365
+ fn ffi_ptr ( & self ) -> * const c_void {
366
366
& self . val as * const c_int as * const c_void
367
367
}
368
368
369
- unsafe fn ffi_len ( & self ) -> socklen_t {
369
+ fn ffi_len ( & self ) -> socklen_t {
370
370
mem:: size_of :: < c_int > ( ) as socklen_t
371
371
}
372
372
}
0 commit comments