Hi Guys,
We're creating a new dom interface for Image Requests. We're looking to add a
new webidl file for imagerequest.rs (A file we just created) and we've been
following these steps:
http://doc.servo.org/script/dom/index.html#adding-a-new-dom-interface
And have implemented them all. However we're having issues with using custom
types, such as ImageData in it.
There seems to be other examples of using custom types in webidl files, we just
can't find where we need to add the type to make it accessible.
So we have this in our .webidl file:
```
interface ImageRequest {
readonly attribute ImageState state;
readonly attribute URL currentUrl;
readonly attribute ImageData imageData;
};
```
And our .rs file struct definition looks like this:
``` #[dom_struct]
pub struct ImageRequest {
reflector_: Reflector,
state : ImageState,
currentUrl : URL,
imageData : ImageData,
}
```
Our trait implmentation is this:
```
impl ImageRequestMethods for ImageRequest {
fn State(&self) -> ImageState {
self.state
}
fn CurrentUrl(&self) -> URL {
self.currentUrl
}
fn ImageData(&self) -> ImageData {
self.imageData
}
}
```
And an example of the error we are getting is this:
error: method `ImageData` has an incompatible type for trait:
expected struct `dom::bindings::js::Root`,
found struct `dom::imagedata::ImageData` [E0053]
We get similar errors for ImageState and URL.
So basically, we're a little unsure how to make the types accessible in the
webidl files and why the trait is expecting a 'dom::bindings::js::Root' struct
rather than the one we define. Our internal pull request for this task (to our
own fork) is here:
https://github.com/paterson/servo/pull/13/files
Previously, it seems like the Bindings.conf file was used for stuff related to
this. For example here is a previous version of it with custom types defined:
https://github.com/servo/servo/blob/22e02b573d546f9e0eea3318e2691d3144735fc5/src/components/script/dom/bindings/codegen/Bindings.conf
But that file is now quite different:
https://github.com/servo/servo/blob/master/components/script/dom/bindings/codegen/Bindings.conf
So we're guessing this has changed and is implemented. Any ideas/tips would be
really appreciated!
_______________________________________________
dev-servo mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-servo