/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 | | } |