From 1047cb573dbcc900d231562d7bdaaf7484713cd1 Mon Sep 17 00:00:00 2001 From: Jeong YunWon Date: Sat, 23 Oct 2021 00:49:52 +0900 Subject: [PATCH] Update result-like to 0.4 --- Cargo.lock | 35 ++++++++++++++++++++++++++--------- vm/Cargo.toml | 2 +- vm/src/function.rs | 5 +---- vm/src/pyobject.rs | 6 +++++- 4 files changed, 33 insertions(+), 15 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 3e75a88dd6..1df9b585af 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -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", diff --git a/vm/Cargo.toml b/vm/Cargo.toml index 74a6d398b3..d8fee74e34 100644 --- a/vm/Cargo.toml +++ b/vm/Cargo.toml @@ -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" diff --git a/vm/src/function.rs b/vm/src/function.rs index b9e52792c5..10e8354360 100644 --- a/vm/src/function.rs +++ b/vm/src/function.rs @@ -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 { Present(T), Missing, } -impl_option_like!(OptionalArg, Present, Missing); - impl OptionalArg { pub fn unwrap_or_none(self, vm: &VirtualMachine) -> PyObjectRef { self.unwrap_or_else(|| vm.ctx.none()) diff --git a/vm/src/pyobject.rs b/vm/src/pyobject.rs index ebc52250bf..713f204a20 100644 --- a/vm/src/pyobject.rs +++ b/vm/src/pyobject.rs @@ -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 { + Implemented(T), + NotImplemented, +} impl PyArithmeticValue { pub fn from_object(vm: &VirtualMachine, obj: PyObjectRef) -> Self {