mirror of
https://github.com/servo/servo.git
synced 2025-08-03 04:30:10 +01:00
implement and use From<bool> for enum and back
implement and use From<bool> for EventBubbles (and back direction) implement and use From<bool> for EventCancelable (and back direction)
This commit is contained in:
parent
7a9dc57761
commit
0a5ac3b207
10 changed files with 68 additions and 78 deletions
|
@ -32,12 +32,48 @@ pub enum EventBubbles {
|
|||
DoesNotBubble
|
||||
}
|
||||
|
||||
impl From<EventBubbles> for bool {
|
||||
fn from(bubbles: EventBubbles) -> Self {
|
||||
match bubbles {
|
||||
EventBubbles::Bubbles => true,
|
||||
EventBubbles::DoesNotBubble => false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl From<bool> for EventBubbles {
|
||||
fn from(boolean: bool) -> Self {
|
||||
match boolean {
|
||||
true => EventBubbles::Bubbles,
|
||||
false => EventBubbles::DoesNotBubble
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(PartialEq, HeapSizeOf)]
|
||||
pub enum EventCancelable {
|
||||
Cancelable,
|
||||
NotCancelable
|
||||
}
|
||||
|
||||
impl From<EventCancelable> for bool {
|
||||
fn from(bubbles: EventCancelable) -> Self {
|
||||
match bubbles {
|
||||
EventCancelable::Cancelable => true,
|
||||
EventCancelable::NotCancelable => false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl From<bool> for EventCancelable {
|
||||
fn from(boolean: bool) -> Self {
|
||||
match boolean {
|
||||
true => EventCancelable::Cancelable,
|
||||
false => EventCancelable::NotCancelable
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[dom_struct]
|
||||
pub struct Event {
|
||||
reflector_: Reflector,
|
||||
|
@ -87,15 +123,15 @@ impl Event {
|
|||
bubbles: EventBubbles,
|
||||
cancelable: EventCancelable) -> Root<Event> {
|
||||
let event = Event::new_uninitialized(global);
|
||||
event.init_event(type_, bubbles == EventBubbles::Bubbles, cancelable == EventCancelable::Cancelable);
|
||||
event.init_event(type_, bool::from(bubbles), bool::from(cancelable));
|
||||
event
|
||||
}
|
||||
|
||||
pub fn Constructor(global: GlobalRef,
|
||||
type_: DOMString,
|
||||
init: &EventBinding::EventInit) -> Fallible<Root<Event>> {
|
||||
let bubbles = if init.bubbles { EventBubbles::Bubbles } else { EventBubbles::DoesNotBubble };
|
||||
let cancelable = if init.cancelable { EventCancelable::Cancelable } else { EventCancelable::NotCancelable };
|
||||
let bubbles = EventBubbles::from(init.bubbles);
|
||||
let cancelable = EventCancelable::from(init.cancelable);
|
||||
Ok(Event::new(global, Atom::from(type_), bubbles, cancelable))
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue