Coverage Report

Created: 2025-02-21 07:11

/rust/registry/src/index.crates.io-6f17d22bba15001f/reblessive-0.4.2/src/defer.rs
Line
Count
Source (jump to first uncovered line)
1
use std::{
2
    mem::ManuallyDrop,
3
    ops::{Deref, DerefMut},
4
};
5
6
pub struct Defer<T, F: FnOnce(&mut T)> {
7
    value: ManuallyDrop<T>,
8
    f: Option<F>,
9
}
10
11
impl<T, F: FnOnce(&mut T)> Defer<T, F> {
12
24.5M
    pub fn new(value: T, func: F) -> Self {
13
24.5M
        Defer {
14
24.5M
            value: ManuallyDrop::new(value),
15
24.5M
            f: Some(func),
16
24.5M
        }
17
24.5M
    }
Unexecuted instantiation: <reblessive::defer::Defer<core::option::Option<reblessive::ptr::Owned<reblessive::stack::Stack>>, <reblessive::stack::Stack>::enter_context<<reblessive::stack::Stack>::clear<core::result::Result<surrealdb_core::sql::kind::Kind, surrealdb_core::syn::error::SyntaxError>>::{closure#0}, ()>::{closure#1}>>::new
Unexecuted instantiation: <reblessive::defer::Defer<core::option::Option<reblessive::ptr::Owned<reblessive::stack::Stack>>, <reblessive::stack::Stack>::enter_context<<reblessive::stack::Stack>::clear<core::result::Result<surrealdb_core::sql::block::Block, surrealdb_core::syn::error::SyntaxError>>::{closure#0}, ()>::{closure#1}>>::new
Unexecuted instantiation: <reblessive::defer::Defer<core::option::Option<reblessive::ptr::Owned<reblessive::stack::Stack>>, <reblessive::stack::Stack>::enter_context<<reblessive::stack::Stack>::clear<core::result::Result<surrealdb_core::sql::idiom::Idiom, surrealdb_core::syn::error::SyntaxError>>::{closure#0}, ()>::{closure#1}>>::new
Unexecuted instantiation: <reblessive::defer::Defer<core::option::Option<reblessive::ptr::Owned<reblessive::stack::Stack>>, <reblessive::stack::Stack>::enter_context<<reblessive::stack::Stack>::clear<core::result::Result<surrealdb_core::sql::query::Query, surrealdb_core::syn::error::SyntaxError>>::{closure#0}, ()>::{closure#1}>>::new
Unexecuted instantiation: <reblessive::defer::Defer<core::option::Option<reblessive::ptr::Owned<reblessive::stack::Stack>>, <reblessive::stack::Stack>::enter_context<<reblessive::stack::Stack>::clear<core::result::Result<surrealdb_core::sql::range::Range, surrealdb_core::syn::error::SyntaxError>>::{closure#0}, ()>::{closure#1}>>::new
Unexecuted instantiation: <reblessive::defer::Defer<core::option::Option<reblessive::ptr::Owned<reblessive::stack::Stack>>, <reblessive::stack::Stack>::enter_context<<reblessive::stack::Stack>::clear<core::result::Result<surrealdb_core::sql::thing::Thing, surrealdb_core::syn::error::SyntaxError>>::{closure#0}, ()>::{closure#1}>>::new
Unexecuted instantiation: <reblessive::defer::Defer<core::option::Option<reblessive::ptr::Owned<reblessive::stack::Stack>>, <reblessive::stack::Stack>::enter_context<<reblessive::stack::Stack>::clear<core::result::Result<surrealdb_core::sql::subquery::Subquery, surrealdb_core::syn::error::SyntaxError>>::{closure#0}, ()>::{closure#1}>>::new
Unexecuted instantiation: <reblessive::defer::Defer<core::option::Option<reblessive::ptr::Owned<reblessive::stack::Stack>>, <reblessive::stack::Stack>::enter_context<<reblessive::stack::Stack>::clear<core::result::Result<surrealdb_core::sql::statement::Statement, surrealdb_core::syn::error::SyntaxError>>::{closure#0}, ()>::{closure#1}>>::new
Unexecuted instantiation: <reblessive::defer::Defer<core::option::Option<reblessive::ptr::Owned<reblessive::stack::Stack>>, <reblessive::stack::Stack>::enter_context<<reblessive::stack::Stack>::clear<core::result::Result<surrealdb_core::sql::value::value::Value, surrealdb_core::syn::error::SyntaxError>>::{closure#0}, ()>::{closure#1}>>::new
<reblessive::defer::Defer<core::option::Option<reblessive::ptr::Owned<reblessive::stack::Stack>>, <reblessive::stack::Stack>::enter_context<<reblessive::tree::future::ScopeStkFuture<core::result::Result<surrealdb_core::sql::value::value::Value, surrealdb_core::err::Error>> as core::future::future::Future>::poll::{closure#0}::{closure#0}, core::task::poll::Poll<core::result::Result<surrealdb_core::sql::value::value::Value, surrealdb_core::err::Error>>>::{closure#1}>>::new
Line
Count
Source
12
18.5k
    pub fn new(value: T, func: F) -> Self {
13
18.5k
        Defer {
14
18.5k
            value: ManuallyDrop::new(value),
15
18.5k
            f: Some(func),
16
18.5k
        }
17
18.5k
    }
Unexecuted instantiation: <reblessive::defer::Defer<core::option::Option<reblessive::ptr::Owned<reblessive::stack::Stack>>, <reblessive::stack::Stack>::enter_context<<reblessive::tree::future::ScopeStkFuture<core::result::Result<(), surrealdb_core::err::Error>> as core::future::future::Future>::poll::{closure#0}::{closure#0}, core::task::poll::Poll<core::result::Result<(), surrealdb_core::err::Error>>>::{closure#1}>>::new
<reblessive::defer::Defer<reblessive::ptr::Owned<reblessive::tree::schedular::Task<u8>>, <reblessive::tree::schedular::CancelToken as core::ops::drop::Drop>::drop::{closure#0}>>::new
Line
Count
Source
12
24.0k
    pub fn new(value: T, func: F) -> Self {
13
24.0k
        Defer {
14
24.0k
            value: ManuallyDrop::new(value),
15
24.0k
            f: Some(func),
16
24.0k
        }
17
24.0k
    }
Unexecuted instantiation: <reblessive::defer::Defer<core::option::Option<reblessive::ptr::Owned<reblessive::stack::Stack>>, <reblessive::stack::Stack>::enter_context<<reblessive::stack::Stack>::clear<()>::{closure#0}, ()>::{closure#1}>>::new
<reblessive::defer::Defer<core::option::Option<reblessive::ptr::Owned<reblessive::stack::Stack>>, <reblessive::stack::Stack>::enter_context<<reblessive::tree::TreeStack>::drive_top_task::{closure#0}::{closure#0}, bool>::{closure#1}>>::new
Line
Count
Source
12
23.9k
    pub fn new(value: T, func: F) -> Self {
13
23.9k
        Defer {
14
23.9k
            value: ManuallyDrop::new(value),
15
23.9k
            f: Some(func),
16
23.9k
        }
17
23.9k
    }
<reblessive::defer::Defer<core::option::Option<reblessive::ptr::Owned<reblessive::stack::Stack>>, <reblessive::stack::Stack>::enter_context<<reblessive::stack::Stack>::drive_top_task::{closure#0}, core::task::poll::Poll<bool>>::{closure#1}>>::new
Line
Count
Source
12
19.5M
    pub fn new(value: T, func: F) -> Self {
13
19.5M
        Defer {
14
19.5M
            value: ManuallyDrop::new(value),
15
19.5M
            f: Some(func),
16
19.5M
        }
17
19.5M
    }
<reblessive::defer::Defer<core::option::Option<reblessive::ptr::Owned<reblessive::tree::schedular::Schedular>>, <reblessive::tree::TreeStack>::enter_context<<reblessive::tree::TreeStack>::drive_top_task::{closure#0}, core::task::poll::Poll<bool>>::{closure#0}>>::new
Line
Count
Source
12
4.87M
    pub fn new(value: T, func: F) -> Self {
13
4.87M
        Defer {
14
4.87M
            value: ManuallyDrop::new(value),
15
4.87M
            f: Some(func),
16
4.87M
        }
17
4.87M
    }
<reblessive::defer::Defer<&reblessive::tree::schedular::Schedular, <reblessive::tree::schedular::Schedular>::poll::{closure#0}>>::new
Line
Count
Source
12
24.0k
    pub fn new(value: T, func: F) -> Self {
13
24.0k
        Defer {
14
24.0k
            value: ManuallyDrop::new(value),
15
24.0k
            f: Some(func),
16
24.0k
        }
17
24.0k
    }
18
19
    #[allow(dead_code)]
20
32
    pub fn take(mut self) -> T {
21
32
        self.f = None;
22
32
        unsafe { ManuallyDrop::take(&mut self.value) }
23
32
    }
Unexecuted instantiation: <reblessive::defer::Defer<reblessive::ptr::Owned<reblessive::tree::schedular::Task<u8>>, <reblessive::tree::schedular::CancelToken as core::ops::drop::Drop>::drop::{closure#0}>>::take
<reblessive::defer::Defer<&reblessive::tree::schedular::Schedular, <reblessive::tree::schedular::Schedular>::poll::{closure#0}>>::take
Line
Count
Source
20
32
    pub fn take(mut self) -> T {
21
32
        self.f = None;
22
32
        unsafe { ManuallyDrop::take(&mut self.value) }
23
32
    }
24
}
25
26
impl<T, F: FnOnce(&mut T)> Deref for Defer<T, F> {
27
    type Target = T;
28
29
0
    fn deref(&self) -> &Self::Target {
30
0
        &self.value
31
0
    }
32
}
33
34
impl<T, F: FnOnce(&mut T)> DerefMut for Defer<T, F> {
35
0
    fn deref_mut(&mut self) -> &mut Self::Target {
36
0
        &mut self.value
37
0
    }
38
}
39
40
impl<T, F> Drop for Defer<T, F>
41
where
42
    F: FnOnce(&mut T),
43
{
44
24.5M
    fn drop(&mut self) {
45
24.5M
        if let Some(x) = self.f.take() {
46
24.5M
            (x)(&mut *self.value);
47
24.5M
            unsafe { ManuallyDrop::drop(&mut self.value) }
48
32
        }
49
24.5M
    }
Unexecuted instantiation: <reblessive::defer::Defer<core::option::Option<reblessive::ptr::Owned<reblessive::stack::Stack>>, <reblessive::stack::Stack>::enter_context<<reblessive::stack::Stack>::clear<core::result::Result<surrealdb_core::sql::kind::Kind, surrealdb_core::syn::error::SyntaxError>>::{closure#0}, ()>::{closure#1}> as core::ops::drop::Drop>::drop
Unexecuted instantiation: <reblessive::defer::Defer<core::option::Option<reblessive::ptr::Owned<reblessive::stack::Stack>>, <reblessive::stack::Stack>::enter_context<<reblessive::stack::Stack>::clear<core::result::Result<surrealdb_core::sql::block::Block, surrealdb_core::syn::error::SyntaxError>>::{closure#0}, ()>::{closure#1}> as core::ops::drop::Drop>::drop
Unexecuted instantiation: <reblessive::defer::Defer<core::option::Option<reblessive::ptr::Owned<reblessive::stack::Stack>>, <reblessive::stack::Stack>::enter_context<<reblessive::stack::Stack>::clear<core::result::Result<surrealdb_core::sql::idiom::Idiom, surrealdb_core::syn::error::SyntaxError>>::{closure#0}, ()>::{closure#1}> as core::ops::drop::Drop>::drop
Unexecuted instantiation: <reblessive::defer::Defer<core::option::Option<reblessive::ptr::Owned<reblessive::stack::Stack>>, <reblessive::stack::Stack>::enter_context<<reblessive::stack::Stack>::clear<core::result::Result<surrealdb_core::sql::query::Query, surrealdb_core::syn::error::SyntaxError>>::{closure#0}, ()>::{closure#1}> as core::ops::drop::Drop>::drop
Unexecuted instantiation: <reblessive::defer::Defer<core::option::Option<reblessive::ptr::Owned<reblessive::stack::Stack>>, <reblessive::stack::Stack>::enter_context<<reblessive::stack::Stack>::clear<core::result::Result<surrealdb_core::sql::range::Range, surrealdb_core::syn::error::SyntaxError>>::{closure#0}, ()>::{closure#1}> as core::ops::drop::Drop>::drop
Unexecuted instantiation: <reblessive::defer::Defer<core::option::Option<reblessive::ptr::Owned<reblessive::stack::Stack>>, <reblessive::stack::Stack>::enter_context<<reblessive::stack::Stack>::clear<core::result::Result<surrealdb_core::sql::thing::Thing, surrealdb_core::syn::error::SyntaxError>>::{closure#0}, ()>::{closure#1}> as core::ops::drop::Drop>::drop
Unexecuted instantiation: <reblessive::defer::Defer<core::option::Option<reblessive::ptr::Owned<reblessive::stack::Stack>>, <reblessive::stack::Stack>::enter_context<<reblessive::stack::Stack>::clear<core::result::Result<surrealdb_core::sql::subquery::Subquery, surrealdb_core::syn::error::SyntaxError>>::{closure#0}, ()>::{closure#1}> as core::ops::drop::Drop>::drop
Unexecuted instantiation: <reblessive::defer::Defer<core::option::Option<reblessive::ptr::Owned<reblessive::stack::Stack>>, <reblessive::stack::Stack>::enter_context<<reblessive::stack::Stack>::clear<core::result::Result<surrealdb_core::sql::statement::Statement, surrealdb_core::syn::error::SyntaxError>>::{closure#0}, ()>::{closure#1}> as core::ops::drop::Drop>::drop
Unexecuted instantiation: <reblessive::defer::Defer<core::option::Option<reblessive::ptr::Owned<reblessive::stack::Stack>>, <reblessive::stack::Stack>::enter_context<<reblessive::stack::Stack>::clear<core::result::Result<surrealdb_core::sql::value::value::Value, surrealdb_core::syn::error::SyntaxError>>::{closure#0}, ()>::{closure#1}> as core::ops::drop::Drop>::drop
<reblessive::defer::Defer<core::option::Option<reblessive::ptr::Owned<reblessive::stack::Stack>>, <reblessive::stack::Stack>::enter_context<<reblessive::tree::future::ScopeStkFuture<core::result::Result<surrealdb_core::sql::value::value::Value, surrealdb_core::err::Error>> as core::future::future::Future>::poll::{closure#0}::{closure#0}, core::task::poll::Poll<core::result::Result<surrealdb_core::sql::value::value::Value, surrealdb_core::err::Error>>>::{closure#1}> as core::ops::drop::Drop>::drop
Line
Count
Source
44
18.5k
    fn drop(&mut self) {
45
18.5k
        if let Some(x) = self.f.take() {
46
18.5k
            (x)(&mut *self.value);
47
18.5k
            unsafe { ManuallyDrop::drop(&mut self.value) }
48
0
        }
49
18.5k
    }
Unexecuted instantiation: <reblessive::defer::Defer<core::option::Option<reblessive::ptr::Owned<reblessive::stack::Stack>>, <reblessive::stack::Stack>::enter_context<<reblessive::tree::future::ScopeStkFuture<core::result::Result<(), surrealdb_core::err::Error>> as core::future::future::Future>::poll::{closure#0}::{closure#0}, core::task::poll::Poll<core::result::Result<(), surrealdb_core::err::Error>>>::{closure#1}> as core::ops::drop::Drop>::drop
<reblessive::defer::Defer<reblessive::ptr::Owned<reblessive::tree::schedular::Task<u8>>, <reblessive::tree::schedular::CancelToken as core::ops::drop::Drop>::drop::{closure#0}> as core::ops::drop::Drop>::drop
Line
Count
Source
44
24.0k
    fn drop(&mut self) {
45
24.0k
        if let Some(x) = self.f.take() {
46
24.0k
            (x)(&mut *self.value);
47
24.0k
            unsafe { ManuallyDrop::drop(&mut self.value) }
48
0
        }
49
24.0k
    }
Unexecuted instantiation: <reblessive::defer::Defer<core::option::Option<reblessive::ptr::Owned<reblessive::stack::Stack>>, <reblessive::stack::Stack>::enter_context<<reblessive::stack::Stack>::clear<()>::{closure#0}, ()>::{closure#1}> as core::ops::drop::Drop>::drop
<reblessive::defer::Defer<core::option::Option<reblessive::ptr::Owned<reblessive::stack::Stack>>, <reblessive::stack::Stack>::enter_context<<reblessive::tree::TreeStack>::drive_top_task::{closure#0}::{closure#0}, bool>::{closure#1}> as core::ops::drop::Drop>::drop
Line
Count
Source
44
23.9k
    fn drop(&mut self) {
45
23.9k
        if let Some(x) = self.f.take() {
46
23.9k
            (x)(&mut *self.value);
47
23.9k
            unsafe { ManuallyDrop::drop(&mut self.value) }
48
0
        }
49
23.9k
    }
<reblessive::defer::Defer<core::option::Option<reblessive::ptr::Owned<reblessive::stack::Stack>>, <reblessive::stack::Stack>::enter_context<<reblessive::stack::Stack>::drive_top_task::{closure#0}, core::task::poll::Poll<bool>>::{closure#1}> as core::ops::drop::Drop>::drop
Line
Count
Source
44
19.5M
    fn drop(&mut self) {
45
19.5M
        if let Some(x) = self.f.take() {
46
19.5M
            (x)(&mut *self.value);
47
19.5M
            unsafe { ManuallyDrop::drop(&mut self.value) }
48
0
        }
49
19.5M
    }
<reblessive::defer::Defer<core::option::Option<reblessive::ptr::Owned<reblessive::tree::schedular::Schedular>>, <reblessive::tree::TreeStack>::enter_context<<reblessive::tree::TreeStack>::drive_top_task::{closure#0}, core::task::poll::Poll<bool>>::{closure#0}> as core::ops::drop::Drop>::drop
Line
Count
Source
44
4.87M
    fn drop(&mut self) {
45
4.87M
        if let Some(x) = self.f.take() {
46
4.87M
            (x)(&mut *self.value);
47
4.87M
            unsafe { ManuallyDrop::drop(&mut self.value) }
48
0
        }
49
4.87M
    }
<reblessive::defer::Defer<&reblessive::tree::schedular::Schedular, <reblessive::tree::schedular::Schedular>::poll::{closure#0}> as core::ops::drop::Drop>::drop
Line
Count
Source
44
24.0k
    fn drop(&mut self) {
45
24.0k
        if let Some(x) = self.f.take() {
46
24.0k
            (x)(&mut *self.value);
47
24.0k
            unsafe { ManuallyDrop::drop(&mut self.value) }
48
32
        }
49
24.0k
    }
50
}