mirror of
https://github.com/servo/servo.git
synced 2025-06-10 17:43:16 +00:00
55 lines
1.9 KiB
Rust
55 lines
1.9 KiB
Rust
/* 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/. */
|
|
|
|
//! The code to expose the DOM to JavaScript through IDL bindings.
|
|
//!
|
|
//! Exposing a DOM object to JavaScript
|
|
//! ===================================
|
|
//!
|
|
//! As [explained earlier](../index.html#a-dom-object-and-its-reflector), the
|
|
//! implementation of an interface `Foo` involves two objects: the DOM object
|
|
//! (implemented in Rust) and the reflector (a `JSObject`).
|
|
//!
|
|
//! In order to expose the interface's members to the web, properties
|
|
//! corresponding to the operations and attributes are defined on an object in
|
|
//! the reflector's prototype chain or on the reflector itself.
|
|
//!
|
|
//! Typically, these properties are either value properties whose value is a
|
|
//! function (for operations) or accessor properties that have a getter and
|
|
//! optionally a setter function (for attributes, depending on whether they are
|
|
//! marked `readonly`).
|
|
//!
|
|
//! All these JavaScript functions are set up such that, when they're called,
|
|
//! they call a Rust function in the generated glue code. This glue code does
|
|
//! some sanity checks and [argument conversions](conversions/index.html), and
|
|
//! calls into API implementation for the DOM object.
|
|
|
|
#![allow(unsafe_blocks)]
|
|
#![deny(missing_docs, non_snake_case)]
|
|
|
|
pub mod cell;
|
|
pub mod global;
|
|
pub mod js;
|
|
pub mod refcounted;
|
|
pub mod utils;
|
|
pub mod callback;
|
|
pub mod error;
|
|
pub mod conversions;
|
|
pub mod proxyhandler;
|
|
pub mod str;
|
|
pub mod structuredclone;
|
|
pub mod trace;
|
|
|
|
/// Generated JS-Rust bindings.
|
|
#[allow(missing_docs, non_snake_case)]
|
|
pub mod codegen {
|
|
#[allow(unrooted_must_root)]
|
|
pub mod Bindings;
|
|
pub mod InterfaceTypes;
|
|
pub mod InheritTypes;
|
|
pub mod PrototypeList;
|
|
pub mod RegisterBindings;
|
|
pub mod UnionTypes;
|
|
}
|
|
|