Reorder implementations in conversions.rs.

This commit is contained in:
Ms2ger 2014-03-04 16:38:05 +01:00
parent 4166ff4794
commit 6d3c0bf763

View file

@ -26,39 +26,18 @@ unsafe fn convert_from_jsval<T: Default>(
} }
impl JSValConvertible for i64 { impl JSValConvertible for bool {
fn to_jsval(&self) -> JSVal { fn to_jsval(&self) -> JSVal {
unsafe { if *self {
RUST_DOUBLE_TO_JSVAL(*self as f64) JSVAL_TRUE
} else {
JSVAL_FALSE
} }
} }
fn from_jsval(cx: *JSContext, val: JSVal) -> Option<i64> { fn from_jsval(cx: *JSContext, val: JSVal) -> Option<bool> {
unsafe { convert_from_jsval(cx, val, JS_ValueToInt64) } let result = unsafe { convert_from_jsval(cx, val, JS_ValueToBoolean) };
} result.map(|b| b != 0)
}
impl JSValConvertible for u32 {
fn to_jsval(&self) -> JSVal {
unsafe {
RUST_UINT_TO_JSVAL(*self)
}
}
fn from_jsval(cx: *JSContext, val: JSVal) -> Option<u32> {
unsafe { convert_from_jsval(cx, val, JS_ValueToECMAUint32) }
}
}
impl JSValConvertible for i32 {
fn to_jsval(&self) -> JSVal {
unsafe {
RUST_UINT_TO_JSVAL(*self as u32)
}
}
fn from_jsval(cx: *JSContext, val: JSVal) -> Option<i32> {
unsafe { convert_from_jsval(cx, val, JS_ValueToECMAInt32) }
} }
} }
@ -74,18 +53,39 @@ impl JSValConvertible for u16 {
} }
} }
impl JSValConvertible for bool { impl JSValConvertible for i32 {
fn to_jsval(&self) -> JSVal { fn to_jsval(&self) -> JSVal {
if *self { unsafe {
JSVAL_TRUE RUST_UINT_TO_JSVAL(*self as u32)
} else {
JSVAL_FALSE
} }
} }
fn from_jsval(cx: *JSContext, val: JSVal) -> Option<bool> { fn from_jsval(cx: *JSContext, val: JSVal) -> Option<i32> {
let result = unsafe { convert_from_jsval(cx, val, JS_ValueToBoolean) }; unsafe { convert_from_jsval(cx, val, JS_ValueToECMAInt32) }
result.map(|b| b != 0) }
}
impl JSValConvertible for u32 {
fn to_jsval(&self) -> JSVal {
unsafe {
RUST_UINT_TO_JSVAL(*self)
}
}
fn from_jsval(cx: *JSContext, val: JSVal) -> Option<u32> {
unsafe { convert_from_jsval(cx, val, JS_ValueToECMAUint32) }
}
}
impl JSValConvertible for i64 {
fn to_jsval(&self) -> JSVal {
unsafe {
RUST_DOUBLE_TO_JSVAL(*self as f64)
}
}
fn from_jsval(cx: *JSContext, val: JSVal) -> Option<i64> {
unsafe { convert_from_jsval(cx, val, JS_ValueToInt64) }
} }
} }