forked from Rust-related/RustPython
Merge pull request #3361 from youknowone/result-like
Update result-like to 0.4
This commit is contained in:
35
Cargo.lock
generated
35
Cargo.lock
generated
@@ -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",
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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())
|
||||
|
||||
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user