• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

facet-rs / facet / 14459841398

15 Apr 2025 02:20AM UTC coverage: 30.835% (+0.7%) from 30.122%
14459841398

push

github

web-flow
Rename opaque to ptr, closes #221 (#222)

47 of 344 new or added lines in 20 files covered. (13.66%)

1 existing line in 1 file now uncovered.

2032 of 6590 relevant lines covered (30.83%)

25.82 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/facet-core/src/impls_core/smartptr.rs
1
use core::alloc::Layout;
2

3
use crate::{
4
    ConstTypeId, Def, Facet, KnownSmartPointer, PtrConst, SmartPointerDef, SmartPointerFlags,
5
    SmartPointerVTable, value_vtable,
6
};
7

8
unsafe impl<T: Facet> Facet for core::ptr::NonNull<T> {
9
    const SHAPE: &'static crate::Shape = &const {
10
        crate::Shape::builder()
11
            .id(ConstTypeId::of::<Self>())
12
            .layout(Layout::new::<Self>())
13
            .def(Def::SmartPointer(
14
                SmartPointerDef::builder()
15
                    .pointee(T::SHAPE)
16
                    .flags(SmartPointerFlags::EMPTY)
17
                    .known(KnownSmartPointer::NonNull)
18
                    .vtable(
19
                        &const {
20
                            SmartPointerVTable::builder()
21
                                .borrow_fn(|opaque| {
×
22
                                    let ptr = unsafe { opaque.get::<Self>().as_ptr() };
×
NEW
23
                                    PtrConst::new(ptr)
×
24
                                })
25
                                .new_into_fn(|this, ptr| {
×
26
                                    let ptr = unsafe { ptr.read::<*mut T>() };
×
27
                                    let non_null =
×
28
                                        unsafe { core::ptr::NonNull::new_unchecked(ptr) };
×
29
                                    unsafe { this.put(non_null) }
×
30
                                })
31
                                .build()
32
                        },
33
                    )
34
                    .build(),
35
            ))
36
            .vtable(value_vtable!(core::ptr::NonNull<T>, |f, _opts| write!(
×
37
                f,
×
38
                "NonNull"
×
39
            )))
40
            .build()
41
    };
42
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc