|
|
|
|
@@ -8,9 +8,9 @@ use core::pin::Pin;
|
|
|
|
|
use core::ptr;
|
|
|
|
|
use core::{hint, mem};
|
|
|
|
|
|
|
|
|
|
// summary=repo::test;crate::option::replace;Argument[0].Reference;ReturnValue;value;dfc-generated
|
|
|
|
|
// summary=repo::test;crate::option::replace;Argument[1];Argument[0].Reference;value;dfc-generated
|
|
|
|
|
// sink=repo::test;crate::option::replace;Argument[0];pointer-access;df-generated
|
|
|
|
|
// summary=test::option::replace;Argument[0].Reference;ReturnValue;value;dfc-generated
|
|
|
|
|
// summary=test::option::replace;Argument[1];Argument[0].Reference;value;dfc-generated
|
|
|
|
|
// sink=test::option::replace;Argument[0];pointer-access;df-generated
|
|
|
|
|
pub fn replace<T>(dest: &mut T, src: T) -> T {
|
|
|
|
|
unsafe {
|
|
|
|
|
let result = ptr::read(dest);
|
|
|
|
|
@@ -34,8 +34,8 @@ impl<T> MyOption<T> {
|
|
|
|
|
matches!(*self, MySome(_))
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// summary=repo::test;<crate::option::MyOption>::is_some_and;Argument[0].ReturnValue;ReturnValue;value;dfc-generated
|
|
|
|
|
// summary=repo::test;<crate::option::MyOption>::is_some_and;Argument[self].Field[test::option::MyOption::MySome(0)];Argument[0].Parameter[0];value;dfc-generated
|
|
|
|
|
// summary=<test::option::MyOption>::is_some_and;Argument[0].ReturnValue;ReturnValue;value;dfc-generated
|
|
|
|
|
// summary=<test::option::MyOption>::is_some_and;Argument[self].Field[test::option::MyOption::MySome(0)];Argument[0].Parameter[0];value;dfc-generated
|
|
|
|
|
pub fn is_some_and(self, f: impl FnOnce(T) -> bool) -> bool {
|
|
|
|
|
match self {
|
|
|
|
|
MyNone => false,
|
|
|
|
|
@@ -47,8 +47,8 @@ impl<T> MyOption<T> {
|
|
|
|
|
!self.is_some()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// summary=repo::test;<crate::option::MyOption>::is_none_or;Argument[0].ReturnValue;ReturnValue;value;dfc-generated
|
|
|
|
|
// summary=repo::test;<crate::option::MyOption>::is_none_or;Argument[self].Field[test::option::MyOption::MySome(0)];Argument[0].Parameter[0];value;dfc-generated
|
|
|
|
|
// summary=<test::option::MyOption>::is_none_or;Argument[0].ReturnValue;ReturnValue;value;dfc-generated
|
|
|
|
|
// summary=<test::option::MyOption>::is_none_or;Argument[self].Field[test::option::MyOption::MySome(0)];Argument[0].Parameter[0];value;dfc-generated
|
|
|
|
|
pub fn is_none_or(self, f: impl FnOnce(T) -> bool) -> bool {
|
|
|
|
|
match self {
|
|
|
|
|
MyNone => true,
|
|
|
|
|
@@ -56,7 +56,7 @@ impl<T> MyOption<T> {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// summary=repo::test;<crate::option::MyOption>::as_ref;Argument[self].Reference.Field[test::option::MyOption::MySome(0)];ReturnValue.Field[test::option::MyOption::MySome(0)].Reference;value;dfc-generated
|
|
|
|
|
// summary=<test::option::MyOption>::as_ref;Argument[self].Reference.Field[test::option::MyOption::MySome(0)];ReturnValue.Field[test::option::MyOption::MySome(0)].Reference;value;dfc-generated
|
|
|
|
|
pub fn as_ref(&self) -> MyOption<&T> {
|
|
|
|
|
match *self {
|
|
|
|
|
MySome(ref x) => MySome(x),
|
|
|
|
|
@@ -64,7 +64,7 @@ impl<T> MyOption<T> {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// summary=repo::test;<crate::option::MyOption>::as_mut;Argument[self].Reference.Field[test::option::MyOption::MySome(0)];ReturnValue.Field[test::option::MyOption::MySome(0)].Reference;value;dfc-generated
|
|
|
|
|
// summary=<test::option::MyOption>::as_mut;Argument[self].Reference.Field[test::option::MyOption::MySome(0)];ReturnValue.Field[test::option::MyOption::MySome(0)].Reference;value;dfc-generated
|
|
|
|
|
pub fn as_mut(&mut self) -> MyOption<&mut T> {
|
|
|
|
|
match *self {
|
|
|
|
|
MySome(ref mut x) => MySome(x),
|
|
|
|
|
@@ -96,7 +96,7 @@ impl<T> MyOption<T> {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// summary=repo::test;<crate::option::MyOption>::unwrap;Argument[self].Field[test::option::MyOption::MySome(0)];ReturnValue;value;dfc-generated
|
|
|
|
|
// summary=<test::option::MyOption>::unwrap;Argument[self].Field[test::option::MyOption::MySome(0)];ReturnValue;value;dfc-generated
|
|
|
|
|
pub fn unwrap(self) -> T {
|
|
|
|
|
match self {
|
|
|
|
|
MySome(val) => val,
|
|
|
|
|
@@ -104,8 +104,8 @@ impl<T> MyOption<T> {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// summary=repo::test;<crate::option::MyOption>::unwrap_or;Argument[0];ReturnValue;value;dfc-generated
|
|
|
|
|
// summary=repo::test;<crate::option::MyOption>::unwrap_or;Argument[self].Field[test::option::MyOption::MySome(0)];ReturnValue;value;dfc-generated
|
|
|
|
|
// summary=<test::option::MyOption>::unwrap_or;Argument[0];ReturnValue;value;dfc-generated
|
|
|
|
|
// summary=<test::option::MyOption>::unwrap_or;Argument[self].Field[test::option::MyOption::MySome(0)];ReturnValue;value;dfc-generated
|
|
|
|
|
pub fn unwrap_or(self, default: T) -> T {
|
|
|
|
|
match self {
|
|
|
|
|
MySome(x) => x,
|
|
|
|
|
@@ -113,8 +113,8 @@ impl<T> MyOption<T> {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// summary=repo::test;<crate::option::MyOption>::unwrap_or_else;Argument[self].Field[test::option::MyOption::MySome(0)];ReturnValue;value;dfc-generated
|
|
|
|
|
// summary=repo::test;<crate::option::MyOption>::unwrap_or_else;Argument[0].ReturnValue;ReturnValue;value;dfc-generated
|
|
|
|
|
// summary=<test::option::MyOption>::unwrap_or_else;Argument[self].Field[test::option::MyOption::MySome(0)];ReturnValue;value;dfc-generated
|
|
|
|
|
// summary=<test::option::MyOption>::unwrap_or_else;Argument[0].ReturnValue;ReturnValue;value;dfc-generated
|
|
|
|
|
pub fn unwrap_or_else<F>(self, f: F) -> T
|
|
|
|
|
where
|
|
|
|
|
F: FnOnce() -> T,
|
|
|
|
|
@@ -125,7 +125,7 @@ impl<T> MyOption<T> {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// summary=repo::test;<crate::option::MyOption>::unwrap_or_default;Argument[self].Field[test::option::MyOption::MySome(0)];ReturnValue;value;dfc-generated
|
|
|
|
|
// summary=<test::option::MyOption>::unwrap_or_default;Argument[self].Field[test::option::MyOption::MySome(0)];ReturnValue;value;dfc-generated
|
|
|
|
|
pub fn unwrap_or_default(self) -> T
|
|
|
|
|
where
|
|
|
|
|
T: Default,
|
|
|
|
|
@@ -135,7 +135,7 @@ impl<T> MyOption<T> {
|
|
|
|
|
MyNone => T::default(),
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
// summary=repo::test;<crate::option::MyOption>::unwrap_unchecked;Argument[self].Field[test::option::MyOption::MySome(0)];ReturnValue;value;dfc-generated
|
|
|
|
|
// summary=<test::option::MyOption>::unwrap_unchecked;Argument[self].Field[test::option::MyOption::MySome(0)];ReturnValue;value;dfc-generated
|
|
|
|
|
#[track_caller]
|
|
|
|
|
pub unsafe fn unwrap_unchecked(self) -> T {
|
|
|
|
|
match self {
|
|
|
|
|
@@ -147,8 +147,8 @@ impl<T> MyOption<T> {
|
|
|
|
|
|
|
|
|
|
// Transforming contained values
|
|
|
|
|
|
|
|
|
|
// summary=repo::test;<crate::option::MyOption>::map;Argument[0].ReturnValue;ReturnValue.Field[test::option::MyOption::MySome(0)];value;dfc-generated
|
|
|
|
|
// summary=repo::test;<crate::option::MyOption>::map;Argument[self].Field[test::option::MyOption::MySome(0)];Argument[0].Parameter[0];value;dfc-generated
|
|
|
|
|
// summary=<test::option::MyOption>::map;Argument[0].ReturnValue;ReturnValue.Field[test::option::MyOption::MySome(0)];value;dfc-generated
|
|
|
|
|
// summary=<test::option::MyOption>::map;Argument[self].Field[test::option::MyOption::MySome(0)];Argument[0].Parameter[0];value;dfc-generated
|
|
|
|
|
pub fn map<U, F>(self, f: F) -> MyOption<U>
|
|
|
|
|
where
|
|
|
|
|
F: FnOnce(T) -> U,
|
|
|
|
|
@@ -159,7 +159,7 @@ impl<T> MyOption<T> {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// summary=repo::test;<crate::option::MyOption>::inspect;Argument[self];ReturnValue;value;dfc-generated
|
|
|
|
|
// summary=<test::option::MyOption>::inspect;Argument[self];ReturnValue;value;dfc-generated
|
|
|
|
|
// MISSING: Due to `ref` pattern.
|
|
|
|
|
pub fn inspect<F: FnOnce(&T)>(self, f: F) -> Self {
|
|
|
|
|
if let MySome(ref x) = self {
|
|
|
|
|
@@ -169,9 +169,9 @@ impl<T> MyOption<T> {
|
|
|
|
|
self
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// summary=repo::test;<crate::option::MyOption>::map_or;Argument[0];ReturnValue;value;dfc-generated
|
|
|
|
|
// summary=repo::test;<crate::option::MyOption>::map_or;Argument[1].ReturnValue;ReturnValue;value;dfc-generated
|
|
|
|
|
// summary=repo::test;<crate::option::MyOption>::map_or;Argument[self].Field[test::option::MyOption::MySome(0)];Argument[1].Parameter[0];value;dfc-generated
|
|
|
|
|
// summary=<test::option::MyOption>::map_or;Argument[0];ReturnValue;value;dfc-generated
|
|
|
|
|
// summary=<test::option::MyOption>::map_or;Argument[1].ReturnValue;ReturnValue;value;dfc-generated
|
|
|
|
|
// summary=<test::option::MyOption>::map_or;Argument[self].Field[test::option::MyOption::MySome(0)];Argument[1].Parameter[0];value;dfc-generated
|
|
|
|
|
pub fn map_or<U, F>(self, default: U, f: F) -> U
|
|
|
|
|
where
|
|
|
|
|
F: FnOnce(T) -> U,
|
|
|
|
|
@@ -182,9 +182,9 @@ impl<T> MyOption<T> {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// summary=repo::test;<crate::option::MyOption>::map_or_else;Argument[0].ReturnValue;ReturnValue;value;dfc-generated
|
|
|
|
|
// summary=repo::test;<crate::option::MyOption>::map_or_else;Argument[1].ReturnValue;ReturnValue;value;dfc-generated
|
|
|
|
|
// summary=repo::test;<crate::option::MyOption>::map_or_else;Argument[self].Field[test::option::MyOption::MySome(0)];Argument[1].Parameter[0];value;dfc-generated
|
|
|
|
|
// summary=<test::option::MyOption>::map_or_else;Argument[0].ReturnValue;ReturnValue;value;dfc-generated
|
|
|
|
|
// summary=<test::option::MyOption>::map_or_else;Argument[1].ReturnValue;ReturnValue;value;dfc-generated
|
|
|
|
|
// summary=<test::option::MyOption>::map_or_else;Argument[self].Field[test::option::MyOption::MySome(0)];Argument[1].Parameter[0];value;dfc-generated
|
|
|
|
|
pub fn map_or_else<U, D, F>(self, default: D, f: F) -> U
|
|
|
|
|
where
|
|
|
|
|
D: FnOnce() -> U,
|
|
|
|
|
@@ -196,8 +196,8 @@ impl<T> MyOption<T> {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// summary=repo::test;<crate::option::MyOption>::ok_or;Argument[self].Field[test::option::MyOption::MySome(0)];ReturnValue.Field[core::result::Result::Ok(0)];value;dfc-generated
|
|
|
|
|
// summary=repo::test;<crate::option::MyOption>::ok_or;Argument[0];ReturnValue.Field[core::result::Result::Err(0)];value;dfc-generated
|
|
|
|
|
// summary=<test::option::MyOption>::ok_or;Argument[self].Field[test::option::MyOption::MySome(0)];ReturnValue.Field[core::result::Result::Ok(0)];value;dfc-generated
|
|
|
|
|
// summary=<test::option::MyOption>::ok_or;Argument[0];ReturnValue.Field[core::result::Result::Err(0)];value;dfc-generated
|
|
|
|
|
pub fn ok_or<E>(self, err: E) -> Result<T, E> {
|
|
|
|
|
match self {
|
|
|
|
|
MySome(v) => Ok(v),
|
|
|
|
|
@@ -205,8 +205,8 @@ impl<T> MyOption<T> {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// summary=repo::test;<crate::option::MyOption>::ok_or_else;Argument[self].Field[test::option::MyOption::MySome(0)];ReturnValue.Field[core::result::Result::Ok(0)];value;dfc-generated
|
|
|
|
|
// summary=repo::test;<crate::option::MyOption>::ok_or_else;Argument[0].ReturnValue;ReturnValue.Field[core::result::Result::Err(0)];value;dfc-generated
|
|
|
|
|
// summary=<test::option::MyOption>::ok_or_else;Argument[self].Field[test::option::MyOption::MySome(0)];ReturnValue.Field[core::result::Result::Ok(0)];value;dfc-generated
|
|
|
|
|
// summary=<test::option::MyOption>::ok_or_else;Argument[0].ReturnValue;ReturnValue.Field[core::result::Result::Err(0)];value;dfc-generated
|
|
|
|
|
pub fn ok_or_else<E, F>(self, err: F) -> Result<T, E>
|
|
|
|
|
where
|
|
|
|
|
F: FnOnce() -> E,
|
|
|
|
|
@@ -233,7 +233,7 @@ impl<T> MyOption<T> {
|
|
|
|
|
self.as_mut().map(|t| t.deref_mut())
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// summary=repo::test;<crate::option::MyOption>::and;Argument[0];ReturnValue;value;dfc-generated
|
|
|
|
|
// summary=<test::option::MyOption>::and;Argument[0];ReturnValue;value;dfc-generated
|
|
|
|
|
pub fn and<U>(self, optb: MyOption<U>) -> MyOption<U> {
|
|
|
|
|
match self {
|
|
|
|
|
MySome(_) => optb,
|
|
|
|
|
@@ -241,8 +241,8 @@ impl<T> MyOption<T> {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// summary=repo::test;<crate::option::MyOption>::and_then;Argument[0].ReturnValue;ReturnValue;value;dfc-generated
|
|
|
|
|
// summary=repo::test;<crate::option::MyOption>::and_then;Argument[self].Field[test::option::MyOption::MySome(0)];Argument[0].Parameter[0];value;dfc-generated
|
|
|
|
|
// summary=<test::option::MyOption>::and_then;Argument[0].ReturnValue;ReturnValue;value;dfc-generated
|
|
|
|
|
// summary=<test::option::MyOption>::and_then;Argument[self].Field[test::option::MyOption::MySome(0)];Argument[0].Parameter[0];value;dfc-generated
|
|
|
|
|
pub fn and_then<U, F>(self, f: F) -> MyOption<U>
|
|
|
|
|
where
|
|
|
|
|
F: FnOnce(T) -> MyOption<U>,
|
|
|
|
|
@@ -266,8 +266,8 @@ impl<T> MyOption<T> {
|
|
|
|
|
MyNone
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// summary=repo::test;<crate::option::MyOption>::or;Argument[0];ReturnValue;value;dfc-generated
|
|
|
|
|
// summary=repo::test;<crate::option::MyOption>::or;Argument[self];ReturnValue;value;dfc-generated
|
|
|
|
|
// summary=<test::option::MyOption>::or;Argument[0];ReturnValue;value;dfc-generated
|
|
|
|
|
// summary=<test::option::MyOption>::or;Argument[self];ReturnValue;value;dfc-generated
|
|
|
|
|
pub fn or(self, optb: MyOption<T>) -> MyOption<T> {
|
|
|
|
|
match self {
|
|
|
|
|
x @ MySome(_) => x,
|
|
|
|
|
@@ -275,8 +275,8 @@ impl<T> MyOption<T> {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// summary=repo::test;<crate::option::MyOption>::or_else;Argument[self];ReturnValue;value;dfc-generated
|
|
|
|
|
// summary=repo::test;<crate::option::MyOption>::or_else;Argument[0].ReturnValue;ReturnValue;value;dfc-generated
|
|
|
|
|
// summary=<test::option::MyOption>::or_else;Argument[self];ReturnValue;value;dfc-generated
|
|
|
|
|
// summary=<test::option::MyOption>::or_else;Argument[0].ReturnValue;ReturnValue;value;dfc-generated
|
|
|
|
|
pub fn or_else<F>(self, f: F) -> MyOption<T>
|
|
|
|
|
where
|
|
|
|
|
F: FnOnce() -> MyOption<T>,
|
|
|
|
|
@@ -287,8 +287,8 @@ impl<T> MyOption<T> {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// summary=repo::test;<crate::option::MyOption>::xor;Argument[0];ReturnValue;value;dfc-generated
|
|
|
|
|
// summary=repo::test;<crate::option::MyOption>::xor;Argument[self];ReturnValue;value;dfc-generated
|
|
|
|
|
// summary=<test::option::MyOption>::xor;Argument[0];ReturnValue;value;dfc-generated
|
|
|
|
|
// summary=<test::option::MyOption>::xor;Argument[self];ReturnValue;value;dfc-generated
|
|
|
|
|
pub fn xor(self, optb: MyOption<T>) -> MyOption<T> {
|
|
|
|
|
match (self, optb) {
|
|
|
|
|
(a @ MySome(_), MyNone) => a,
|
|
|
|
|
@@ -297,10 +297,10 @@ impl<T> MyOption<T> {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// summary=repo::test;<crate::option::MyOption>::insert;Argument[0];Argument[self].Reference.Field[test::option::MyOption::MySome(0)];value;dfc-generated
|
|
|
|
|
// summary=repo::test;<crate::option::MyOption>::insert;Argument[0];ReturnValue.Reference;value;dfc-generated
|
|
|
|
|
// summary=<test::option::MyOption>::insert;Argument[0];Argument[self].Reference.Field[test::option::MyOption::MySome(0)];value;dfc-generated
|
|
|
|
|
// summary=<test::option::MyOption>::insert;Argument[0];ReturnValue.Reference;value;dfc-generated
|
|
|
|
|
// The content of `self` is overwritten so it does not flow to the return value.
|
|
|
|
|
// SPURIOUS-summary=repo::test;<crate::option::MyOption>::insert;Argument[self].Reference.Field[test::option::MyOption::MySome(0)];ReturnValue.Reference;value;dfc-generated
|
|
|
|
|
// SPURIOUS-summary=<test::option::MyOption>::insert;Argument[self].Reference.Field[test::option::MyOption::MySome(0)];ReturnValue.Reference;value;dfc-generated
|
|
|
|
|
pub fn insert(&mut self, value: T) -> &mut T {
|
|
|
|
|
*self = MySome(value);
|
|
|
|
|
|
|
|
|
|
@@ -308,14 +308,14 @@ impl<T> MyOption<T> {
|
|
|
|
|
unsafe { self.as_mut().unwrap_unchecked() }
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// summary=repo::test;<crate::option::MyOption>::get_or_insert;Argument[0];Argument[self].Reference.Field[test::option::MyOption::MySome(0)];value;dfc-generated
|
|
|
|
|
// summary=repo::test;<crate::option::MyOption>::get_or_insert;Argument[0];ReturnValue.Reference;value;dfc-generated
|
|
|
|
|
// summary=repo::test;<crate::option::MyOption>::get_or_insert;Argument[self].Reference.Field[test::option::MyOption::MySome(0)];ReturnValue.Reference;value;dfc-generated
|
|
|
|
|
// summary=<test::option::MyOption>::get_or_insert;Argument[0];Argument[self].Reference.Field[test::option::MyOption::MySome(0)];value;dfc-generated
|
|
|
|
|
// summary=<test::option::MyOption>::get_or_insert;Argument[0];ReturnValue.Reference;value;dfc-generated
|
|
|
|
|
// summary=<test::option::MyOption>::get_or_insert;Argument[self].Reference.Field[test::option::MyOption::MySome(0)];ReturnValue.Reference;value;dfc-generated
|
|
|
|
|
pub fn get_or_insert(&mut self, value: T) -> &mut T {
|
|
|
|
|
self.get_or_insert_with(|| value)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// summary=repo::test;<crate::option::MyOption>::get_or_insert_default;Argument[self].Reference.Field[test::option::MyOption::MySome(0)];ReturnValue.Reference;value;dfc-generated
|
|
|
|
|
// summary=<test::option::MyOption>::get_or_insert_default;Argument[self].Reference.Field[test::option::MyOption::MySome(0)];ReturnValue.Reference;value;dfc-generated
|
|
|
|
|
pub fn get_or_insert_default(&mut self) -> &mut T
|
|
|
|
|
where
|
|
|
|
|
T: Default,
|
|
|
|
|
@@ -323,7 +323,7 @@ impl<T> MyOption<T> {
|
|
|
|
|
self.get_or_insert_with(T::default)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// summary=repo::test;<crate::option::MyOption>::get_or_insert_with;Argument[self].Reference.Field[test::option::MyOption::MySome(0)];ReturnValue.Reference;value;dfc-generated
|
|
|
|
|
// summary=<test::option::MyOption>::get_or_insert_with;Argument[self].Reference.Field[test::option::MyOption::MySome(0)];ReturnValue.Reference;value;dfc-generated
|
|
|
|
|
// MISSING: Mutating `self` parameter.
|
|
|
|
|
pub fn get_or_insert_with<F>(&mut self, f: F) -> &mut T
|
|
|
|
|
where
|
|
|
|
|
@@ -338,16 +338,16 @@ impl<T> MyOption<T> {
|
|
|
|
|
unsafe { self.as_mut().unwrap_unchecked() }
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// summary=repo::test;<crate::option::MyOption>::take;Argument[self].Reference;ReturnValue;value;dfc-generated
|
|
|
|
|
// sink=repo::test;<crate::option::MyOption>::take;Argument[self];pointer-access;df-generated
|
|
|
|
|
// summary=<test::option::MyOption>::take;Argument[self].Reference;ReturnValue;value;dfc-generated
|
|
|
|
|
// sink=<test::option::MyOption>::take;Argument[self];pointer-access;df-generated
|
|
|
|
|
pub fn take(&mut self) -> MyOption<T> {
|
|
|
|
|
// FIXME(const-hack) replace `mem::replace` by `mem::take` when the latter is const ready
|
|
|
|
|
replace(self, MyNone)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// summary=repo::test;<crate::option::MyOption>::take_if;Argument[self].Reference.Field[test::option::MyOption::MySome(0)];Argument[0].Parameter[0].Reference;value;dfc-generated
|
|
|
|
|
// summary=repo::test;<crate::option::MyOption>::take_if;Argument[self].Reference;ReturnValue;value;dfc-generated
|
|
|
|
|
// sink=repo::test;<crate::option::MyOption>::take_if;Argument[self];pointer-access;df-generated
|
|
|
|
|
// summary=<test::option::MyOption>::take_if;Argument[self].Reference.Field[test::option::MyOption::MySome(0)];Argument[0].Parameter[0].Reference;value;dfc-generated
|
|
|
|
|
// summary=<test::option::MyOption>::take_if;Argument[self].Reference;ReturnValue;value;dfc-generated
|
|
|
|
|
// sink=<test::option::MyOption>::take_if;Argument[self];pointer-access;df-generated
|
|
|
|
|
pub fn take_if<P>(&mut self, predicate: P) -> MyOption<T>
|
|
|
|
|
where
|
|
|
|
|
P: FnOnce(&mut T) -> bool,
|
|
|
|
|
@@ -359,15 +359,15 @@ impl<T> MyOption<T> {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// summary=repo::test;<crate::option::MyOption>::replace;Argument[0];Argument[self].Reference.Field[test::option::MyOption::MySome(0)];value;dfc-generated
|
|
|
|
|
// summary=repo::test;<crate::option::MyOption>::replace;Argument[self].Reference;ReturnValue;value;dfc-generated
|
|
|
|
|
// sink=repo::test;<crate::option::MyOption>::replace;Argument[self];pointer-access;df-generated
|
|
|
|
|
// summary=<test::option::MyOption>::replace;Argument[0];Argument[self].Reference.Field[test::option::MyOption::MySome(0)];value;dfc-generated
|
|
|
|
|
// summary=<test::option::MyOption>::replace;Argument[self].Reference;ReturnValue;value;dfc-generated
|
|
|
|
|
// sink=<test::option::MyOption>::replace;Argument[self];pointer-access;df-generated
|
|
|
|
|
pub fn replace(&mut self, value: T) -> MyOption<T> {
|
|
|
|
|
replace(self, MySome(value))
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// summary=repo::test;<crate::option::MyOption>::zip;Argument[0].Field[test::option::MyOption::MySome(0)];ReturnValue.Field[test::option::MyOption::MySome(0)].Field[1];value;dfc-generated
|
|
|
|
|
// summary=repo::test;<crate::option::MyOption>::zip;Argument[self].Field[test::option::MyOption::MySome(0)];ReturnValue.Field[test::option::MyOption::MySome(0)].Field[0];value;dfc-generated
|
|
|
|
|
// summary=<test::option::MyOption>::zip;Argument[0].Field[test::option::MyOption::MySome(0)];ReturnValue.Field[test::option::MyOption::MySome(0)].Field[1];value;dfc-generated
|
|
|
|
|
// summary=<test::option::MyOption>::zip;Argument[self].Field[test::option::MyOption::MySome(0)];ReturnValue.Field[test::option::MyOption::MySome(0)].Field[0];value;dfc-generated
|
|
|
|
|
pub fn zip<U>(self, other: MyOption<U>) -> MyOption<(T, U)> {
|
|
|
|
|
match (self, other) {
|
|
|
|
|
(MySome(a), MySome(b)) => MySome((a, b)),
|
|
|
|
|
@@ -375,9 +375,9 @@ impl<T> MyOption<T> {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// summary=repo::test;<crate::option::MyOption>::zip_with;Argument[self].Field[test::option::MyOption::MySome(0)];Argument[1].Parameter[0];value;dfc-generated
|
|
|
|
|
// summary=repo::test;<crate::option::MyOption>::zip_with;Argument[0].Field[test::option::MyOption::MySome(0)];Argument[1].Parameter[1];value;dfc-generated
|
|
|
|
|
// summary=repo::test;<crate::option::MyOption>::zip_with;Argument[1].ReturnValue;ReturnValue.Field[test::option::MyOption::MySome(0)];value;dfc-generated
|
|
|
|
|
// summary=<test::option::MyOption>::zip_with;Argument[self].Field[test::option::MyOption::MySome(0)];Argument[1].Parameter[0];value;dfc-generated
|
|
|
|
|
// summary=<test::option::MyOption>::zip_with;Argument[0].Field[test::option::MyOption::MySome(0)];Argument[1].Parameter[1];value;dfc-generated
|
|
|
|
|
// summary=<test::option::MyOption>::zip_with;Argument[1].ReturnValue;ReturnValue.Field[test::option::MyOption::MySome(0)];value;dfc-generated
|
|
|
|
|
pub fn zip_with<U, F, R>(self, other: MyOption<U>, f: F) -> MyOption<R>
|
|
|
|
|
where
|
|
|
|
|
F: FnOnce(T, U) -> R,
|
|
|
|
|
@@ -390,8 +390,8 @@ impl<T> MyOption<T> {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
impl<T, U> MyOption<(T, U)> {
|
|
|
|
|
// summary=repo::test;<crate::option::MyOption>::unzip;Argument[self].Field[test::option::MyOption::MySome(0)].Field[0];ReturnValue.Field[0].Field[test::option::MyOption::MySome(0)];value;dfc-generated
|
|
|
|
|
// summary=repo::test;<crate::option::MyOption>::unzip;Argument[self].Field[test::option::MyOption::MySome(0)].Field[1];ReturnValue.Field[1].Field[test::option::MyOption::MySome(0)];value;dfc-generated
|
|
|
|
|
// summary=<test::option::MyOption>::unzip;Argument[self].Field[test::option::MyOption::MySome(0)].Field[0];ReturnValue.Field[0].Field[test::option::MyOption::MySome(0)];value;dfc-generated
|
|
|
|
|
// summary=<test::option::MyOption>::unzip;Argument[self].Field[test::option::MyOption::MySome(0)].Field[1];ReturnValue.Field[1].Field[test::option::MyOption::MySome(0)];value;dfc-generated
|
|
|
|
|
pub fn unzip(self) -> (MyOption<T>, MyOption<U>) {
|
|
|
|
|
match self {
|
|
|
|
|
MySome((a, b)) => (MySome(a), MySome(b)),
|
|
|
|
|
@@ -401,7 +401,7 @@ impl<T, U> MyOption<(T, U)> {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
impl<T> MyOption<&T> {
|
|
|
|
|
// summary=repo::test;<crate::option::MyOption>::copied;Argument[self].Field[test::option::MyOption::MySome(0)].Reference;ReturnValue.Field[test::option::MyOption::MySome(0)];value;dfc-generated
|
|
|
|
|
// summary=<test::option::MyOption>::copied;Argument[self].Field[test::option::MyOption::MySome(0)].Reference;ReturnValue.Field[test::option::MyOption::MySome(0)];value;dfc-generated
|
|
|
|
|
pub fn copied(self) -> MyOption<T>
|
|
|
|
|
where
|
|
|
|
|
T: Copy,
|
|
|
|
|
@@ -414,7 +414,7 @@ impl<T> MyOption<&T> {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// MISSING: summary=repo::test;<crate::option::MyOption>::cloned;Argument[self].Field[test::option::MyOption::MySome(0)].Reference;ReturnValue.Field[test::option::MyOption::MySome(0)];value;dfc-generated
|
|
|
|
|
// MISSING: summary=<test::option::MyOption>::cloned;Argument[self].Field[test::option::MyOption::MySome(0)].Reference;ReturnValue.Field[test::option::MyOption::MySome(0)];value;dfc-generated
|
|
|
|
|
pub fn cloned(self) -> MyOption<T>
|
|
|
|
|
where
|
|
|
|
|
T: Clone,
|
|
|
|
|
@@ -427,7 +427,7 @@ impl<T> MyOption<&T> {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
impl<T> MyOption<&mut T> {
|
|
|
|
|
// summary=repo::test;<crate::option::MyOption>::copied;Argument[self].Field[test::option::MyOption::MySome(0)].Reference;ReturnValue.Field[test::option::MyOption::MySome(0)];value;dfc-generated
|
|
|
|
|
// summary=<test::option::MyOption>::copied;Argument[self].Field[test::option::MyOption::MySome(0)].Reference;ReturnValue.Field[test::option::MyOption::MySome(0)];value;dfc-generated
|
|
|
|
|
pub fn copied(self) -> MyOption<T>
|
|
|
|
|
where
|
|
|
|
|
T: Copy,
|
|
|
|
|
@@ -438,7 +438,7 @@ impl<T> MyOption<&mut T> {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// MISSING: summary=repo::test;<crate::option::MyOption>::cloned;Argument[self].Field[test::option::MyOption::MySome(0)].Reference;ReturnValue.Field[test::option::MyOption::MySome(0)];value;dfc-generated
|
|
|
|
|
// MISSING: summary=<test::option::MyOption>::cloned;Argument[self].Field[test::option::MyOption::MySome(0)].Reference;ReturnValue.Field[test::option::MyOption::MySome(0)];value;dfc-generated
|
|
|
|
|
pub fn cloned(self) -> MyOption<T>
|
|
|
|
|
where
|
|
|
|
|
T: Clone,
|
|
|
|
|
@@ -451,8 +451,8 @@ impl<T> MyOption<&mut T> {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
impl<T, E> MyOption<Result<T, E>> {
|
|
|
|
|
// summary=repo::test;<crate::option::MyOption>::transpose;Argument[self].Field[test::option::MyOption::MySome(0)].Field[core::result::Result::Err(0)];ReturnValue.Field[core::result::Result::Err(0)];value;dfc-generated
|
|
|
|
|
// summary=repo::test;<crate::option::MyOption>::transpose;Argument[self].Field[test::option::MyOption::MySome(0)].Field[core::result::Result::Ok(0)];ReturnValue.Field[core::result::Result::Ok(0)].Field[test::option::MyOption::MySome(0)];value;dfc-generated
|
|
|
|
|
// summary=<test::option::MyOption>::transpose;Argument[self].Field[test::option::MyOption::MySome(0)].Field[core::result::Result::Err(0)];ReturnValue.Field[core::result::Result::Err(0)];value;dfc-generated
|
|
|
|
|
// summary=<test::option::MyOption>::transpose;Argument[self].Field[test::option::MyOption::MySome(0)].Field[core::result::Result::Ok(0)];ReturnValue.Field[core::result::Result::Ok(0)].Field[test::option::MyOption::MySome(0)];value;dfc-generated
|
|
|
|
|
pub fn transpose(self) -> Result<MyOption<T>, E> {
|
|
|
|
|
match self {
|
|
|
|
|
MySome(Ok(x)) => Ok(MySome(x)),
|
|
|
|
|
@@ -466,7 +466,7 @@ impl<T> Clone for MyOption<T>
|
|
|
|
|
where
|
|
|
|
|
T: Clone,
|
|
|
|
|
{
|
|
|
|
|
// MISSING: summary=repo::test;<crate::option::MyOption as crate::clone::Clone>::clone;Argument[self].Field[test::option::MyOption::MySome(0)].Reference;ReturnValue.Field[test::option::MyOption::MySome(0)];value;dfc-generated
|
|
|
|
|
// MISSING: summary=<test::option::MyOption as test::clone::Clone>::clone;Argument[self].Field[test::option::MyOption::MySome(0)].Reference;ReturnValue.Field[test::option::MyOption::MySome(0)];value;dfc-generated
|
|
|
|
|
fn clone(&self) -> Self {
|
|
|
|
|
match self {
|
|
|
|
|
MySome(x) => MySome(x.clone()),
|
|
|
|
|
@@ -490,21 +490,21 @@ impl<T> Default for MyOption<T> {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
impl<T> From<T> for MyOption<T> {
|
|
|
|
|
// summary=repo::test;<crate::option::MyOption as crate::convert::From>::from;Argument[0];ReturnValue.Field[test::option::MyOption::MySome(0)];value;dfc-generated
|
|
|
|
|
// summary=<test::option::MyOption as core::convert::From>::from;Argument[0];ReturnValue.Field[test::option::MyOption::MySome(0)];value;dfc-generated
|
|
|
|
|
fn from(val: T) -> MyOption<T> {
|
|
|
|
|
MySome(val)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
impl<'a, T> From<&'a MyOption<T>> for MyOption<&'a T> {
|
|
|
|
|
// summary=repo::test;<crate::option::MyOption as crate::convert::From>::from;Argument[0].Reference.Field[test::option::MyOption::MySome(0)];ReturnValue.Field[test::option::MyOption::MySome(0)].Reference;value;dfc-generated
|
|
|
|
|
// summary=<test::option::MyOption as core::convert::From>::from;Argument[0].Reference.Field[test::option::MyOption::MySome(0)];ReturnValue.Field[test::option::MyOption::MySome(0)].Reference;value;dfc-generated
|
|
|
|
|
fn from(o: &'a MyOption<T>) -> MyOption<&'a T> {
|
|
|
|
|
o.as_ref()
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
impl<'a, T> From<&'a mut MyOption<T>> for MyOption<&'a mut T> {
|
|
|
|
|
// summary=repo::test;<crate::option::MyOption as crate::convert::From>::from;Argument[0].Reference.Field[test::option::MyOption::MySome(0)];ReturnValue.Field[test::option::MyOption::MySome(0)].Reference;value;dfc-generated
|
|
|
|
|
// summary=<test::option::MyOption as core::convert::From>::from;Argument[0].Reference.Field[test::option::MyOption::MySome(0)];ReturnValue.Field[test::option::MyOption::MySome(0)].Reference;value;dfc-generated
|
|
|
|
|
fn from(o: &'a mut MyOption<T>) -> MyOption<&'a mut T> {
|
|
|
|
|
o.as_mut()
|
|
|
|
|
}
|
|
|
|
|
@@ -524,7 +524,7 @@ impl<T: PartialEq> PartialEq for MyOption<T> {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
impl<T> MyOption<MyOption<T>> {
|
|
|
|
|
// summary=repo::test;<crate::option::MyOption>::flatten;Argument[self].Field[test::option::MyOption::MySome(0)];ReturnValue;value;dfc-generated
|
|
|
|
|
// summary=<test::option::MyOption>::flatten;Argument[self].Field[test::option::MyOption::MySome(0)];ReturnValue;value;dfc-generated
|
|
|
|
|
pub fn flatten(self) -> MyOption<T> {
|
|
|
|
|
// FIXME(const-hack): could be written with `and_then`
|
|
|
|
|
match self {
|
|
|
|
|
|