#[non_exhaustive]pub enum Error {
OutOfRange {
parameter: String,
min: Option<f64>,
max: Option<f64>,
got: f64,
range: String,
},
InvalidOption {
parameter: String,
message: String,
},
UnknownOption {
parameter: String,
got: String,
expected: Vec<String>,
},
MalformedInput {
parameter: Option<String>,
message: String,
},
Cancelled,
InvalidGeometry {
id: Option<String>,
message: String,
},
DuplicateId {
id: String,
first: usize,
second: usize,
},
InvalidBoundary {
parameter: Option<String>,
message: String,
},
Internal(String),
}Expand description
Why the engine refused a request or could not finish it. Each variant
carries what a caller needs to point at the input to change – the setting,
the geometry id, the positions – as fields, not only in the message;
Error::code is the stable name of the reason.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
OutOfRange
A setting outside the values it accepts: min / max are the bounds
(None where unbounded) and range says it in words.
InvalidOption
A setting that cannot be used as given (a strategy this build or this dimension does not offer, …).
UnknownOption
An option name the engine does not know: got is the name given and
expected the names it accepts.
MalformedInput
A request of the wrong shape: not JSON, a missing or unknown key, a
value of the wrong type. parameter names the part when it is known.
Cancelled
The caller cancelled the run.
InvalidGeometry
A geometry the engine cannot work with, named by its id when the check that refused it knows the geometry.
DuplicateId
Two geometries share an id, at positions first and second of the
request (counting from 0).
InvalidBoundary
A boundary the engine cannot place into; parameter names the field
when one field is at fault.
Internal(String)
A failure inside the engine, not caused by the request.
Implementations§
Source§impl Error
impl Error
Sourcepub fn code(&self) -> &'static str
pub fn code(&self) -> &'static str
The stable name of the reason: parameter_out_of_range,
invalid_option, unknown_option, malformed_input,
invalid_geometry, duplicate_id, invalid_boundary, cancelled
or internal.
Sourcepub fn invalid_option(parameter: &str, message: String) -> Self
pub fn invalid_option(parameter: &str, message: String) -> Self
A setting that cannot be used as given.
Sourcepub fn invalid_geometry(id: Option<&str>, message: String) -> Self
pub fn invalid_geometry(id: Option<&str>, message: String) -> Self
A geometry refused by a check that may or may not know which one.
Sourcepub fn malformed(parameter: Option<&str>, message: String) -> Self
pub fn malformed(parameter: Option<&str>, message: String) -> Self
A request of the wrong shape, naming the part when it is known.
Sourcepub fn invalid_boundary(parameter: Option<&str>, message: String) -> Self
pub fn invalid_boundary(parameter: Option<&str>, message: String) -> Self
A boundary refused, naming the field when one is at fault.
Trait Implementations§
Source§impl Error for Error
impl Error for Error
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()
impl StructuralPartialEq for Error
Auto Trait Implementations§
impl Freeze for Error
impl RefUnwindSafe for Error
impl Send for Error
impl Sync for Error
impl Unpin for Error
impl UnsafeUnpin for Error
impl UnwindSafe for Error
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> Scalar for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.