зеркало из https://github.com/mozilla/gecko-dev.git
servo: Merge #2325 - Use default methods to reduce code duplication for TestBinding (from Ms2ger:testbinding-default); r=jdm
Source-Repo: https://github.com/servo/servo Source-Revision: b14b2eca372ea91dc40af66b1f8a9cd510c37abf
This commit is contained in:
Родитель
24d211ff8e
Коммит
3e4cec4ec3
|
@ -23,186 +23,6 @@ pub struct TestBinding {
|
|||
}
|
||||
|
||||
pub trait TestBindingMethods {
|
||||
fn BooleanAttribute(&self) -> bool;
|
||||
fn SetBooleanAttribute(&self, _: bool);
|
||||
fn ByteAttribute(&self) -> i8;
|
||||
fn SetByteAttribute(&self, _: i8);
|
||||
fn OctetAttribute(&self) -> u8;
|
||||
fn SetOctetAttribute(&self, _: u8);
|
||||
fn ShortAttribute(&self) -> i16;
|
||||
fn SetShortAttribute(&self, _: i16);
|
||||
fn UnsignedShortAttribute(&self) -> u16;
|
||||
fn SetUnsignedShortAttribute(&self, _: u16);
|
||||
fn LongAttribute(&self) -> i32;
|
||||
fn SetLongAttribute(&self, _: i32);
|
||||
fn UnsignedLongAttribute(&self) -> u32;
|
||||
fn SetUnsignedLongAttribute(&self, _: u32);
|
||||
fn LongLongAttribute(&self) -> i64;
|
||||
fn SetLongLongAttribute(&self, _: i64);
|
||||
fn UnsignedLongLongAttribute(&self) -> u64;
|
||||
fn SetUnsignedLongLongAttribute(&self, _: u64);
|
||||
fn FloatAttribute(&self) -> f32;
|
||||
fn SetFloatAttribute(&self, _: f32);
|
||||
fn DoubleAttribute(&self) -> f64;
|
||||
fn SetDoubleAttribute(&self, _: f64);
|
||||
fn StringAttribute(&self) -> DOMString;
|
||||
fn SetStringAttribute(&self, _: DOMString);
|
||||
fn ByteStringAttribute(&self) -> ByteString;
|
||||
fn SetByteStringAttribute(&self, _: ByteString);
|
||||
fn EnumAttribute(&self) -> TestEnum;
|
||||
fn SetEnumAttribute(&self, _: TestEnum);
|
||||
fn InterfaceAttribute(&self) -> Temporary<Blob>;
|
||||
fn SetInterfaceAttribute(&self, _: &JSRef<Blob>);
|
||||
fn AnyAttribute(&self, _: *JSContext) -> JSVal;
|
||||
fn SetAnyAttribute(&self, _: *JSContext, _: JSVal);
|
||||
|
||||
fn GetBooleanAttributeNullable(&self) -> Option<bool>;
|
||||
fn SetBooleanAttributeNullable(&self, _: Option<bool>);
|
||||
fn GetByteAttributeNullable(&self) -> Option<i8>;
|
||||
fn SetByteAttributeNullable(&self, _: Option<i8>);
|
||||
fn GetOctetAttributeNullable(&self) -> Option<u8>;
|
||||
fn SetOctetAttributeNullable(&self, _: Option<u8>);
|
||||
fn GetShortAttributeNullable(&self) -> Option<i16>;
|
||||
fn SetShortAttributeNullable(&self, _: Option<i16>);
|
||||
fn GetUnsignedShortAttributeNullable(&self) -> Option<u16>;
|
||||
fn SetUnsignedShortAttributeNullable(&self, _: Option<u16>);
|
||||
fn GetLongAttributeNullable(&self) -> Option<i32>;
|
||||
fn SetLongAttributeNullable(&self, _: Option<i32>);
|
||||
fn GetUnsignedLongAttributeNullable(&self) -> Option<u32>;
|
||||
fn SetUnsignedLongAttributeNullable(&self, _: Option<u32>);
|
||||
fn GetLongLongAttributeNullable(&self) -> Option<i64>;
|
||||
fn SetLongLongAttributeNullable(&self, _: Option<i64>);
|
||||
fn GetUnsignedLongLongAttributeNullable(&self) -> Option<u64>;
|
||||
fn SetUnsignedLongLongAttributeNullable(&self, _: Option<u64>);
|
||||
fn GetFloatAttributeNullable(&self) -> Option<f32>;
|
||||
fn SetFloatAttributeNullable(&self, _: Option<f32>);
|
||||
fn GetDoubleAttributeNullable(&self) -> Option<f64>;
|
||||
fn SetDoubleAttributeNullable(&self, _: Option<f64>);
|
||||
fn GetByteStringAttributeNullable(&self) -> Option<ByteString>;
|
||||
fn SetByteStringAttributeNullable(&self, _: Option<ByteString>);
|
||||
fn GetStringAttributeNullable(&self) -> Option<DOMString>;
|
||||
fn SetStringAttributeNullable(&self, _: Option<DOMString>);
|
||||
fn GetEnumAttributeNullable(&self) -> Option<TestEnum>;
|
||||
fn GetInterfaceAttributeNullable(&self) -> Option<Temporary<Blob>>;
|
||||
fn SetInterfaceAttributeNullable(&self, _: Option<JSRef<Blob>>);
|
||||
|
||||
fn PassBoolean(&self, _: bool);
|
||||
fn PassByte(&self, _: i8);
|
||||
fn PassOctet(&self, _: u8);
|
||||
fn PassShort(&self, _: i16);
|
||||
fn PassUnsignedShort(&self, _: u16);
|
||||
fn PassLong(&self, _: i32);
|
||||
fn PassUnsignedLong(&self, _: u32);
|
||||
fn PassLongLong(&self, _: i64);
|
||||
fn PassUnsignedLongLong(&self, _: u64);
|
||||
fn PassFloat(&self, _: f32);
|
||||
fn PassDouble(&self, _: f64);
|
||||
fn PassString(&self, _: DOMString);
|
||||
fn PassByteString(&self, _: ByteString);
|
||||
fn PassEnum(&self, _: TestEnum);
|
||||
fn PassInterface(&self, _: &JSRef<Blob>);
|
||||
fn PassUnion(&self, _: HTMLElementOrLong);
|
||||
fn PassAny(&self, _: *JSContext, _: JSVal);
|
||||
|
||||
fn PassNullableBoolean(&self, _: Option<bool>);
|
||||
fn PassNullableByte(&self, _: Option<i8>);
|
||||
fn PassNullableOctet(&self, _: Option<u8>);
|
||||
fn PassNullableShort(&self, _: Option<i16>);
|
||||
fn PassNullableUnsignedShort(&self, _: Option<u16>);
|
||||
fn PassNullableLong(&self, _: Option<i32>);
|
||||
fn PassNullableUnsignedLong(&self, _: Option<u32>);
|
||||
fn PassNullableLongLong(&self, _: Option<i64>);
|
||||
fn PassNullableUnsignedLongLong(&self, _: Option<u64>);
|
||||
fn PassNullableFloat(&self, _: Option<f32>);
|
||||
fn PassNullableDouble(&self, _: Option<f64>);
|
||||
fn PassNullableString(&self, _: Option<DOMString>);
|
||||
fn PassNullableByteString(&self, _: Option<ByteString>) {}
|
||||
// fn PassNullableEnum(&self, _: Option<TestEnum>);
|
||||
fn PassNullableInterface(&self, _: Option<JSRef<Blob>>);
|
||||
fn PassNullableUnion(&self, _: Option<HTMLElementOrLong>);
|
||||
fn PassNullableAny(&self, _: *JSContext, _: Option<JSVal>);
|
||||
|
||||
fn PassOptionalBoolean(&self, _: Option<bool>);
|
||||
fn PassOptionalByte(&self, _: Option<i8>);
|
||||
fn PassOptionalOctet(&self, _: Option<u8>);
|
||||
fn PassOptionalShort(&self, _: Option<i16>);
|
||||
fn PassOptionalUnsignedShort(&self, _: Option<u16>);
|
||||
fn PassOptionalLong(&self, _: Option<i32>);
|
||||
fn PassOptionalUnsignedLong(&self, _: Option<u32>);
|
||||
fn PassOptionalLongLong(&self, _: Option<i64>);
|
||||
fn PassOptionalUnsignedLongLong(&self, _: Option<u64>);
|
||||
fn PassOptionalFloat(&self, _: Option<f32>);
|
||||
fn PassOptionalDouble(&self, _: Option<f64>);
|
||||
fn PassOptionalString(&self, _: Option<DOMString>);
|
||||
fn PassOptionalByteString(&self, _: Option<ByteString>) {}
|
||||
fn PassOptionalEnum(&self, _: Option<TestEnum>);
|
||||
fn PassOptionalInterface(&self, _: Option<JSRef<Blob>>);
|
||||
fn PassOptionalUnion(&self, _: Option<HTMLElementOrLong>);
|
||||
fn PassOptionalAny(&self, _: *JSContext, _: Option<JSVal>);
|
||||
|
||||
fn PassOptionalNullableBoolean(&self, _: Option<Option<bool>>);
|
||||
fn PassOptionalNullableByte(&self, _: Option<Option<i8>>);
|
||||
fn PassOptionalNullableOctet(&self, _: Option<Option<u8>>);
|
||||
fn PassOptionalNullableShort(&self, _: Option<Option<i16>>);
|
||||
fn PassOptionalNullableUnsignedShort(&self, _: Option<Option<u16>>);
|
||||
fn PassOptionalNullableLong(&self, _: Option<Option<i32>>);
|
||||
fn PassOptionalNullableUnsignedLong(&self, _: Option<Option<u32>>);
|
||||
fn PassOptionalNullableLongLong(&self, _: Option<Option<i64>>);
|
||||
fn PassOptionalNullableUnsignedLongLong(&self, _: Option<Option<u64>>);
|
||||
fn PassOptionalNullableFloat(&self, _: Option<Option<f32>>);
|
||||
fn PassOptionalNullableDouble(&self, _: Option<Option<f64>>);
|
||||
fn PassOptionalNullableString(&self, _: Option<Option<DOMString>>);
|
||||
fn PassOptionalNullableByteString(&self, _: Option<Option<ByteString>>) {}
|
||||
// fn PassOptionalNullableEnum(&self, _: Option<Option<TestEnum>>);
|
||||
fn PassOptionalNullableInterface(&self, _: Option<Option<JSRef<Blob>>>);
|
||||
fn PassOptionalNullableUnion(&self, _: Option<Option<HTMLElementOrLong>>);
|
||||
|
||||
fn PassOptionalBooleanWithDefault(&self, _: bool);
|
||||
fn PassOptionalByteWithDefault(&self, _: i8);
|
||||
fn PassOptionalOctetWithDefault(&self, _: u8);
|
||||
fn PassOptionalShortWithDefault(&self, _: i16);
|
||||
fn PassOptionalUnsignedShortWithDefault(&self, _: u16);
|
||||
fn PassOptionalLongWithDefault(&self, _: i32);
|
||||
fn PassOptionalUnsignedLongWithDefault(&self, _: u32);
|
||||
fn PassOptionalLongLongWithDefault(&self, _: i64);
|
||||
fn PassOptionalUnsignedLongLongWithDefault(&self, _: u64);
|
||||
fn PassOptionalStringWithDefault(&self, _: DOMString);
|
||||
fn PassOptionalEnumWithDefault(&self, _: TestEnum);
|
||||
|
||||
fn PassOptionalNullableBooleanWithDefault(&self, _: Option<bool>);
|
||||
fn PassOptionalNullableByteWithDefault(&self, _: Option<i8>);
|
||||
fn PassOptionalNullableOctetWithDefault(&self, _: Option<u8>);
|
||||
fn PassOptionalNullableShortWithDefault(&self, _: Option<i16>);
|
||||
fn PassOptionalNullableUnsignedShortWithDefault(&self, _: Option<u16>);
|
||||
fn PassOptionalNullableLongWithDefault(&self, _: Option<i32>);
|
||||
fn PassOptionalNullableUnsignedLongWithDefault(&self, _: Option<u32>);
|
||||
fn PassOptionalNullableLongLongWithDefault(&self, _: Option<i64>);
|
||||
fn PassOptionalNullableUnsignedLongLongWithDefault(&self, _: Option<u64>);
|
||||
fn PassOptionalNullableFloatWithDefault(&self, _: Option<f32>);
|
||||
fn PassOptionalNullableDoubleWithDefault(&self, _: Option<f64>);
|
||||
fn PassOptionalNullableStringWithDefault(&self, _: Option<DOMString>);
|
||||
fn PassOptionalNullableByteStringWithDefault(&self, _: Option<ByteString>) {}
|
||||
// fn PassOptionalNullableEnumWithDefault(&self, _: Option<TestEnum>);
|
||||
fn PassOptionalNullableInterfaceWithDefault(&self, _: Option<JSRef<Blob>>);
|
||||
fn PassOptionalNullableUnionWithDefault(&self, _: Option<HTMLElementOrLong>);
|
||||
fn PassOptionalAnyWithDefault(&self, _: *JSContext, _: JSVal);
|
||||
|
||||
fn PassOptionalNullableBooleanWithNonNullDefault(&self, _: Option<bool>);
|
||||
fn PassOptionalNullableByteWithNonNullDefault(&self, _: Option<i8>);
|
||||
fn PassOptionalNullableOctetWithNonNullDefault(&self, _: Option<u8>);
|
||||
fn PassOptionalNullableShortWithNonNullDefault(&self, _: Option<i16>);
|
||||
fn PassOptionalNullableUnsignedShortWithNonNullDefault(&self, _: Option<u16>);
|
||||
fn PassOptionalNullableLongWithNonNullDefault(&self, _: Option<i32>);
|
||||
fn PassOptionalNullableUnsignedLongWithNonNullDefault(&self, _: Option<u32>);
|
||||
fn PassOptionalNullableLongLongWithNonNullDefault(&self, _: Option<i64>);
|
||||
fn PassOptionalNullableUnsignedLongLongWithNonNullDefault(&self, _: Option<u64>);
|
||||
// fn PassOptionalNullableFloatWithNonNullDefault(&self, _: Option<f32>);
|
||||
// fn PassOptionalNullableDoubleWithNonNullDefault(&self, _: Option<f64>);
|
||||
fn PassOptionalNullableStringWithNonNullDefault(&self, _: Option<DOMString>);
|
||||
// fn PassOptionalNullableEnumWithNonNullDefault(&self, _: Option<TestEnum>);
|
||||
}
|
||||
|
||||
impl<'a> TestBindingMethods for JSRef<'a, TestBinding> {
|
||||
fn BooleanAttribute(&self) -> bool { false }
|
||||
fn SetBooleanAttribute(&self, _: bool) {}
|
||||
fn ByteAttribute(&self) -> i8 { 0 }
|
||||
|
@ -231,10 +51,7 @@ impl<'a> TestBindingMethods for JSRef<'a, TestBinding> {
|
|||
fn SetByteStringAttribute(&self, _: ByteString) {}
|
||||
fn EnumAttribute(&self) -> TestEnum { _empty }
|
||||
fn SetEnumAttribute(&self, _: TestEnum) {}
|
||||
fn InterfaceAttribute(&self) -> Temporary<Blob> {
|
||||
let window = self.window.root();
|
||||
Blob::new(&*window)
|
||||
}
|
||||
fn InterfaceAttribute(&self) -> Temporary<Blob>;
|
||||
fn SetInterfaceAttribute(&self, _: &JSRef<Blob>) {}
|
||||
fn AnyAttribute(&self, _: *JSContext) -> JSVal { NullValue() }
|
||||
fn SetAnyAttribute(&self, _: *JSContext, _: JSVal) {}
|
||||
|
@ -266,10 +83,7 @@ impl<'a> TestBindingMethods for JSRef<'a, TestBinding> {
|
|||
fn GetStringAttributeNullable(&self) -> Option<DOMString> { Some("".to_owned()) }
|
||||
fn SetStringAttributeNullable(&self, _: Option<DOMString>) {}
|
||||
fn GetEnumAttributeNullable(&self) -> Option<TestEnum> { Some(_empty) }
|
||||
fn GetInterfaceAttributeNullable(&self) -> Option<Temporary<Blob>> {
|
||||
let window = self.window.root();
|
||||
Some(Blob::new(&*window))
|
||||
}
|
||||
fn GetInterfaceAttributeNullable(&self) -> Option<Temporary<Blob>>;
|
||||
fn SetInterfaceAttributeNullable(&self, _: Option<JSRef<Blob>>) {}
|
||||
|
||||
fn PassBoolean(&self, _: bool) {}
|
||||
|
@ -388,6 +202,17 @@ impl<'a> TestBindingMethods for JSRef<'a, TestBinding> {
|
|||
// fn PassOptionalNullableEnumWithNonNullDefault(&self, _: Option<TestEnum>) {}
|
||||
}
|
||||
|
||||
impl<'a> TestBindingMethods for JSRef<'a, TestBinding> {
|
||||
fn InterfaceAttribute(&self) -> Temporary<Blob> {
|
||||
let window = self.window.root();
|
||||
Blob::new(&*window)
|
||||
}
|
||||
fn GetInterfaceAttributeNullable(&self) -> Option<Temporary<Blob>> {
|
||||
let window = self.window.root();
|
||||
Some(Blob::new(&*window))
|
||||
}
|
||||
}
|
||||
|
||||
impl Reflectable for TestBinding {
|
||||
fn reflector<'a>(&'a self) -> &'a Reflector {
|
||||
&self.reflector
|
||||
|
|
Загрузка…
Ссылка в новой задаче