aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/script/dom/testbinding.rs
blob: 514260c5c10cb4bb3d9b3c24340310d151b1ca78 (plain) (blame)
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

use dom::bindings::js::JS;
use dom::bindings::utils::{Reflector, Reflectable};
use dom::blob::Blob;
use dom::window::Window;
use servo_util::str::DOMString;

use js::jsapi::JSContext;
use js::jsval::{JSVal, NullValue};

#[deriving(Encodable)]
pub struct TestBinding {
    reflector: Reflector,
    window: JS<Window>,
}

impl TestBinding {
    pub fn BooleanAttribute(&self) -> bool { false }
    pub fn SetBooleanAttribute(&self, _: bool) {}
    pub fn ByteAttribute(&self) -> i8 { 0 }
    pub fn SetByteAttribute(&self, _: i8) {}
    pub fn OctetAttribute(&self) -> u8 { 0 }
    pub fn SetOctetAttribute(&self, _: u8) {}
    pub fn ShortAttribute(&self) -> i16 { 0 }
    pub fn SetShortAttribute(&self, _: i16) {}
    pub fn UnsignedShortAttribute(&self) -> u16 { 0 }
    pub fn SetUnsignedShortAttribute(&self, _: u16) {}
    pub fn LongAttribute(&self) -> i32 { 0 }
    pub fn SetLongAttribute(&self, _: i32) {}
    pub fn UnsignedLongAttribute(&self) -> u32 { 0 }
    pub fn SetUnsignedLongAttribute(&self, _: u32) {}
    pub fn LongLongAttribute(&self) -> i64 { 0 }
    pub fn SetLongLongAttribute(&self, _: i64) {}
    pub fn UnsignedLongLongAttribute(&self) -> u64 { 0 }
    pub fn SetUnsignedLongLongAttribute(&self, _: u64) {}
    pub fn FloatAttribute(&self) -> f32 { 0. }
    pub fn SetFloatAttribute(&self, _: f32) {}
    pub fn DoubleAttribute(&self) -> f64 { 0. }
    pub fn SetDoubleAttribute(&self, _: f64) {}
    pub fn StringAttribute(&self) -> DOMString { ~"" }
    pub fn SetStringAttribute(&self, _: DOMString) {}
    pub fn InterfaceAttribute(&self) -> JS<Blob> { Blob::new(&self.window) }
    pub fn SetInterfaceAttribute(&self, _: &JS<Blob>) {}
    pub fn AnyAttribute(&self, _: *JSContext) -> JSVal { NullValue() }
    pub fn SetAnyAttribute(&self, _: *JSContext, _: JSVal) {}

    pub fn GetBooleanAttributeNullable(&self) -> Option<bool> { Some(false) }
    pub fn SetBooleanAttributeNullable(&self, _: Option<bool>) {}
    pub fn GetByteAttributeNullable(&self) -> Option<i8> { Some(0) }
    pub fn SetByteAttributeNullable(&self, _: Option<i8>) {}
    pub fn GetOctetAttributeNullable(&self) -> Option<u8> { Some(0) }
    pub fn SetOctetAttributeNullable(&self, _: Option<u8>) {}
    pub fn GetShortAttributeNullable(&self) -> Option<i16> { Some(0) }
    pub fn SetShortAttributeNullable(&self, _: Option<i16>) {}
    pub fn GetUnsignedShortAttributeNullable(&self) -> Option<u16> { Some(0) }
    pub fn SetUnsignedShortAttributeNullable(&self, _: Option<u16>) {}
    pub fn GetLongAttributeNullable(&self) -> Option<i32> { Some(0) }
    pub fn SetLongAttributeNullable(&self, _: Option<i32>) {}
    pub fn GetUnsignedLongAttributeNullable(&self) -> Option<u32> { Some(0) }
    pub fn SetUnsignedLongAttributeNullable(&self, _: Option<u32>) {}
    pub fn GetLongLongAttributeNullable(&self) -> Option<i64> { Some(0) }
    pub fn SetLongLongAttributeNullable(&self, _: Option<i64>) {}
    pub fn GetUnsignedLongLongAttributeNullable(&self) -> Option<u64> { Some(0) }
    pub fn SetUnsignedLongLongAttributeNullable(&self, _: Option<u64>) {}
    pub fn GetFloatAttributeNullable(&self) -> Option<f32> { Some(0.) }
    pub fn SetFloatAttributeNullable(&self, _: Option<f32>) {}
    pub fn GetDoubleAttributeNullable(&self) -> Option<f64> { Some(0.) }
    pub fn SetDoubleAttributeNullable(&self, _: Option<f64>) {}
    pub fn GetStringAttributeNullable(&self) -> Option<DOMString> { Some(~"") }
    pub fn SetStringAttributeNullable(&self, _: Option<DOMString>) {}
    pub fn GetInterfaceAttributeNullable(&self) -> Option<JS<Blob>> { Some(Blob::new(&self.window)) }
    pub fn SetInterfaceAttributeNullable(&self, _: Option<JS<Blob>>) {}

    // FIXME (issue #1813) Doesn't currently compile.
    // pub fn PassOptionalBoolean(&self, _: Option<bool>) {}
    // pub fn PassOptionalByte(&self, _: Option<i8>) {}
    // pub fn PassOptionalOctet(&self, _: Option<u8>) {}
    // pub fn PassOptionalShort(&self, _: Option<i16>) {}
    // pub fn PassOptionalUnsignedShort(&self, _: Option<u16>) {}
    // pub fn PassOptionalLong(&self, _: Option<i32>) {}
    // pub fn PassOptionalUnsignedLong(&self, _: Option<u32>) {}
    // pub fn PassOptionalLongLong(&self, _: Option<i64>) {}
    // pub fn PassOptionalUnsignedLongLong(&self, _: Option<u64>) {}
    // pub fn PassOptionalFloat(&self, _: Option<f32>) {}
    // pub fn PassOptionalDouble(&self, _: Option<f64>) {}
    pub fn PassOptionalString(&self, _: Option<DOMString>) {}
    pub fn PassOptionalInterface(&self, _: Option<JS<Blob>>) {}
    pub fn PassOptionalAny(&self, _: *JSContext, _: Option<JSVal>) {}

    // pub fn PassOptionalNullableBoolean(&self, _: Option<Option<bool>>) {}
    // pub fn PassOptionalNullableByte(&self, _: Option<Option<i8>>) {}
    // pub fn PassOptionalNullableOctet(&self, _: Option<Option<u8>>) {}
    // pub fn PassOptionalNullableShort(&self, _: Option<Option<i16>>) {}
    // pub fn PassOptionalNullableUnsignedShort(&self, _: Option<Option<u16>>) {}
    // pub fn PassOptionalNullableLong(&self, _: Option<Option<i32>>) {}
    // pub fn PassOptionalNullableUnsignedLong(&self, _: Option<Option<u32>>) {}
    // pub fn PassOptionalNullableLongLong(&self, _: Option<Option<i64>>) {}
    // pub fn PassOptionalNullableUnsignedLongLong(&self, _: Option<Option<u64>>) {}
    // pub fn PassOptionalNullableFloat(&self, _: Option<Option<f32>>) {}
    // pub fn PassOptionalNullableDouble(&self, _: Option<Option<f64>>) {}
    pub fn PassOptionalNullableString(&self, _: Option<Option<DOMString>>) {}
    // pub fn PassOptionalNullableInterface(&self, _: Option<Option<JS<Blob>>>) {}

    pub fn PassOptionalBooleanWithDefault(&self, _: bool) {}
    pub fn PassOptionalByteWithDefault(&self, _: i8) {}
    pub fn PassOptionalOctetWithDefault(&self, _: u8) {}
    pub fn PassOptionalShortWithDefault(&self, _: i16) {}
    pub fn PassOptionalUnsignedShortWithDefault(&self, _: u16) {}
    pub fn PassOptionalLongWithDefault(&self, _: i32) {}
    pub fn PassOptionalUnsignedLongWithDefault(&self, _: u32) {}
    pub fn PassOptionalLongLongWithDefault(&self, _: i64) {}
    pub fn PassOptionalUnsignedLongLongWithDefault(&self, _: u64) {}
    pub fn PassOptionalStringWithDefault(&self, _: DOMString) {}

    pub fn PassOptionalNullableBooleanWithDefault(&self, _: Option<bool>) {}
    pub fn PassOptionalNullableByteWithDefault(&self, _: Option<i8>) {}
    pub fn PassOptionalNullableOctetWithDefault(&self, _: Option<u8>) {}
    pub fn PassOptionalNullableShortWithDefault(&self, _: Option<i16>) {}
    pub fn PassOptionalNullableUnsignedShortWithDefault(&self, _: Option<u16>) {}
    pub fn PassOptionalNullableLongWithDefault(&self, _: Option<i32>) {}
    pub fn PassOptionalNullableUnsignedLongWithDefault(&self, _: Option<u32>) {}
    pub fn PassOptionalNullableLongLongWithDefault(&self, _: Option<i64>) {}
    pub fn PassOptionalNullableUnsignedLongLongWithDefault(&self, _: Option<u64>) {}
    pub fn PassOptionalNullableFloatWithDefault(&self, _: Option<f32>) {}
    pub fn PassOptionalNullableDoubleWithDefault(&self, _: Option<f64>) {}
    // pub fn PassOptionalNullableStringWithDefault(&self, _: Option<DOMString>) {}
    pub fn PassOptionalNullableInterfaceWithDefault(&self, _: Option<JS<Blob>>) {}
    pub fn PassOptionalAnyWithDefault(&self, _: *JSContext, _: JSVal) {}

    pub fn PassOptionalNullableBooleanWithNonNullDefault(&self, _: Option<bool>) {}
    pub fn PassOptionalNullableByteWithNonNullDefault(&self, _: Option<i8>) {}
    pub fn PassOptionalNullableOctetWithNonNullDefault(&self, _: Option<u8>) {}
    pub fn PassOptionalNullableShortWithNonNullDefault(&self, _: Option<i16>) {}
    pub fn PassOptionalNullableUnsignedShortWithNonNullDefault(&self, _: Option<u16>) {}
    pub fn PassOptionalNullableLongWithNonNullDefault(&self, _: Option<i32>) {}
    pub fn PassOptionalNullableUnsignedLongWithNonNullDefault(&self, _: Option<u32>) {}
    pub fn PassOptionalNullableLongLongWithNonNullDefault(&self, _: Option<i64>) {}
    pub fn PassOptionalNullableUnsignedLongLongWithNonNullDefault(&self, _: Option<u64>) {}
    // pub fn PassOptionalNullableFloatWithNonNullDefault(&self, _: Option<f32>) {}
    // pub fn PassOptionalNullableDoubleWithNonNullDefault(&self, _: Option<f64>) {}
    pub fn PassOptionalNullableStringWithNonNullDefault(&self, _: Option<DOMString>) {}
}

impl Reflectable for TestBinding {
    fn reflector<'a>(&'a self) -> &'a Reflector {
        &self.reflector
    }

    fn mut_reflector<'a>(&'a mut self) -> &'a mut Reflector {
        &mut self.reflector
    }
}