Merge pull request #3361 from youknowone/result-like

Update result-like to 0.4
This commit is contained in:
Jeong YunWon
2021-10-23 05:56:48 +09:00
committed by GitHub
4 changed files with 33 additions and 15 deletions

35
Cargo.lock generated
View File

@@ -7,6 +7,10 @@ name = "Inflector"
version = "0.11.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3"
dependencies = [
"lazy_static 1.4.0",
"regex",
]
[[package]]
name = "abort_on_panic"
@@ -1523,9 +1527,9 @@ checksum = "dbf0c48bc1d91375ae5c3cd81e3722dff1abcf81a30960240640d223f59fe0e5"
[[package]]
name = "proc-macro2"
version = "1.0.28"
version = "1.0.30"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5c7ed8b8c7b886ea3ed7dde405212185f423ab44682667c8c6dd14aa1d9f6612"
checksum = "edc3358ebc67bc8b7fa0c007f945b0b18226f78437d61bec735a9eb96b61ee70"
dependencies = [
"unicode-xid",
]
@@ -1548,9 +1552,9 @@ dependencies = [
[[package]]
name = "quote"
version = "1.0.9"
version = "1.0.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7"
checksum = "38bc8cc6a5f2e3655e0899c1b848643b2562f853f114bfec7be120678e3ace05"
dependencies = [
"proc-macro2",
]
@@ -1709,11 +1713,24 @@ dependencies = [
[[package]]
name = "result-like"
version = "0.3.0"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0d3e152e91c7b35822c7aeafc7019479ebb6180a5380139c9b5809645d668f2d"
checksum = "c2d674d268c145c999a985cabedc28657253a21027c896e2543af803d8c91871"
dependencies = [
"is-macro",
"result-like-derive",
]
[[package]]
name = "result-like-derive"
version = "0.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3f0d38e433d043c2abe75de652931f9e77e187273799f1111119e64cdcf90b3d"
dependencies = [
"Inflector",
"pmutil",
"proc-macro2",
"quote",
"syn",
]
[[package]]
@@ -2308,9 +2325,9 @@ checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601"
[[package]]
name = "syn"
version = "1.0.75"
version = "1.0.80"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b7f58f7e8eaa0009c5fec437aabf511bd9933e4b2d7407bd05273c01a8906ea7"
checksum = "d010a1623fbd906d51d650a9916aaefc05ffa0e4053ff7fe601167f3e715d194"
dependencies = [
"proc-macro2",
"quote",

View File

@@ -53,7 +53,7 @@ libc = "0.2.99"
nix = "0.22.1"
paste = "1.0.5"
is-macro = "0.1"
result-like = "^0.3"
result-like = "0.4"
num_enum = "0.5"
bstr = "0.2.12"
crossbeam-utils = "0.8"

View File

@@ -9,7 +9,6 @@ use crate::{
};
use indexmap::IndexMap;
use itertools::Itertools;
use result_like::impl_option_like;
use std::marker::PhantomData;
use std::ops::RangeInclusive;
@@ -479,14 +478,12 @@ where
/// An argument that may or may not be provided by the caller.
///
/// This style of argument is not possible in pure Python.
#[derive(Debug, is_macro::Is)]
#[derive(Debug, result_like::OptionLike, is_macro::Is)]
pub enum OptionalArg<T = PyObjectRef> {
Present(T),
Missing,
}
impl_option_like!(OptionalArg, Present, Missing);
impl OptionalArg<PyObjectRef> {
pub fn unwrap_or_none(self, vm: &VirtualMachine) -> PyObjectRef {
self.unwrap_or_else(|| vm.ctx.none())

View File

@@ -1029,7 +1029,11 @@ pub trait PyStructSequence: StaticType + PyClassImpl + Sized + 'static {
}
}
result_like::option_like!(pub PyArithmeticValue, Implemented, NotImplemented);
#[derive(result_like::OptionLike)]
pub enum PyArithmeticValue<T> {
Implemented(T),
NotImplemented,
}
impl PyArithmeticValue<PyObjectRef> {
pub fn from_object(vm: &VirtualMachine, obj: PyObjectRef) -> Self {