diff options
| author | Árni Dagur <agudmundsson@fc-md.umd.edu> | 2020-04-25 16:59:13 -0400 |
|---|---|---|
| committer | Árni Dagur <agudmundsson@fc-md.umd.edu> | 2020-04-25 16:59:13 -0400 |
| commit | 59ce9bee37136bc32c9cd28d630c248ba63f7609 (patch) | |
| tree | 57769fb02329f8c653718a001806d8c71226b133 /src | |
| parent | 3e5e905facb5f198683effbfc3dfb7cd52bd8733 (diff) | |
Drop failure dependency
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib.rs | 32 |
1 files changed, 25 insertions, 7 deletions
| @@ -14,7 +14,6 @@ use adblock::blocker::BlockerError as RustBlockerError; | |||
| 14 | use adblock::blocker::BlockerResult as RustBlockerResult; | 14 | use adblock::blocker::BlockerResult as RustBlockerResult; |
| 15 | use adblock::cosmetic_filter_cache::HostnameSpecificResources as RustHostnameSpecificResources; | 15 | use adblock::cosmetic_filter_cache::HostnameSpecificResources as RustHostnameSpecificResources; |
| 16 | use adblock::engine::Engine as RustEngine; | 16 | use adblock::engine::Engine as RustEngine; |
| 17 | use failure::Fail; | ||
| 18 | use pyo3::class::PyObjectProtocol; | 17 | use pyo3::class::PyObjectProtocol; |
| 19 | use pyo3::exceptions::ValueError as PyValueError; | 18 | use pyo3::exceptions::ValueError as PyValueError; |
| 20 | use pyo3::prelude::*; | 19 | use pyo3::prelude::*; |
| @@ -22,6 +21,8 @@ use pyo3::PyErr; | |||
| 22 | 21 | ||
| 23 | use std::collections::HashMap; | 22 | use std::collections::HashMap; |
| 24 | use std::collections::HashSet; | 23 | use std::collections::HashSet; |
| 24 | use std::error::Error; | ||
| 25 | use std::fmt::{self, Display}; | ||
| 25 | use std::fs; | 26 | use std::fs; |
| 26 | use std::io::{Read, Write}; | 27 | use std::io::{Read, Write}; |
| 27 | use std::iter::FromIterator; | 28 | use std::iter::FromIterator; |
| @@ -111,20 +112,37 @@ impl PyObjectProtocol for BlockerResult { | |||
| 111 | } | 112 | } |
| 112 | } | 113 | } |
| 113 | 114 | ||
| 114 | #[derive(Fail, Debug, PartialEq, Copy, Clone)] | 115 | #[derive(Debug, PartialEq, Eq, Copy, Clone)] |
| 115 | pub enum BlockerError { | 116 | pub enum BlockerError { |
| 116 | #[fail(display = "Serialization error")] | ||
| 117 | SerializationError, | 117 | SerializationError, |
| 118 | #[fail(display = "Deserialization error")] | ||
| 119 | DeserializationError, | 118 | DeserializationError, |
| 120 | #[fail(display = "Optimized filter exists")] | ||
| 121 | OptimizedFilterExistence, | 119 | OptimizedFilterExistence, |
| 122 | #[fail(display = "Bad filter add unsupported")] | ||
| 123 | BadFilterAddUnsupported, | 120 | BadFilterAddUnsupported, |
| 124 | #[fail(display = "Filter exists")] | ||
| 125 | FilterExists, | 121 | FilterExists, |
| 126 | } | 122 | } |
| 127 | 123 | ||
| 124 | impl Error for BlockerError { | ||
| 125 | fn source(&self) -> Option<&(dyn Error + 'static)> { | ||
| 126 | None | ||
| 127 | } | ||
| 128 | } | ||
| 129 | |||
| 130 | impl Display for BlockerError { | ||
| 131 | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { | ||
| 132 | write!( | ||
| 133 | f, | ||
| 134 | "{}", | ||
| 135 | match self { | ||
| 136 | Self::SerializationError => "Serialization error", | ||
| 137 | Self::DeserializationError => "Deserialization error", | ||
| 138 | Self::OptimizedFilterExistence => "Optimized filter exists", | ||
| 139 | Self::BadFilterAddUnsupported => "Bad filter add unsupported", | ||
| 140 | Self::FilterExists => "Filter exists", | ||
| 141 | } | ||
| 142 | ) | ||
| 143 | } | ||
| 144 | } | ||
| 145 | |||
| 128 | impl Into<PyErr> for BlockerError { | 146 | impl Into<PyErr> for BlockerError { |
| 129 | fn into(self) -> PyErr { | 147 | fn into(self) -> PyErr { |
| 130 | PyErr::new::<PyValueError, _>(format!("{:?}", self)) | 148 | PyErr::new::<PyValueError, _>(format!("{:?}", self)) |
