1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
use ::{Object, VerifiedObject, Exception}; use ::types::{Value, ValueType}; use std::fmt::{Display, Formatter}; use std::fmt; pub struct AnyException { value: Value } impl From<Value> for AnyException { fn from(value: Value) -> Self { AnyException { value: value } } } impl Object for AnyException { #[inline] fn value(&self) -> Value { self.value } } impl Exception for AnyException {} impl VerifiedObject for AnyException { fn is_correct_type<T: Object>(object: &T) -> bool { object.value().ty() == ValueType::Class && object.respond_to("set_backtrace") } fn error_message() -> &'static str { "Error converting to AnyException" } } impl Display for AnyException { fn fmt(&self, f: &mut Formatter) -> fmt::Result { write!(f, "{}", self.inspect()) } } impl fmt::Debug for AnyException { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { write!(f, "{}", self.inspect()) } } impl PartialEq for AnyException { fn eq(&self, other: &AnyException) -> bool { self.equals(other) } }