Skip to main content

script_webcrypto/
lib.rs

1/* This Source Code Form is subject to the terms of the Mozilla Public
2 * License, v. 2.0. If a copy of the MPL was not distributed with this
3 * file, You can obtain one at https://mozilla.org/MPL/2.0/. */
4
5#![cfg_attr(crown, feature(register_tool))]
6// Register the linter `crown`, which is the Servo-specific linter for the script crate.
7#![cfg_attr(crown, register_tool(crown))]
8
9pub mod crypto;
10pub mod cryptokey;
11pub mod subtlecrypto;
12pub mod traits;
13
14pub(crate) use js::gc::Traceable as JSTraceable;
15pub(crate) use script_bindings::inheritance::HasParent;
16pub(crate) use script_bindings::reflector::{DomObject, MutDomObject, Reflector};
17
18// Reexports
19pub(crate) mod dom {
20    pub(crate) mod types {}
21    pub(crate) mod bindings {
22        pub(crate) use script_bindings::*;
23    }
24}
25
26/// Generated JS-Rust bindings.
27#[expect(non_snake_case)]
28pub(crate) mod codegen {
29    #[expect(unused)]
30    pub(crate) mod Bindings {
31        pub(crate) mod import {
32            pub(crate) use std::ptr;
33
34            pub(crate) use script_bindings::DomTypes;
35            pub(crate) use script_bindings::codegen::PrototypeList;
36            pub(crate) use script_bindings::conversions::IDLInterface;
37            pub(crate) use script_bindings::reflector::Reflector;
38            pub(crate) use script_bindings::utils::DOMClass;
39
40            pub(crate) use crate::traits::Equivalence;
41        }
42
43        pub(crate) mod CryptoBinding {
44            use crate::codegen::Bindings::import::*;
45            use crate::crypto::Crypto;
46            include!(concat!(
47                env!("OUT_DIR"),
48                "/ConcreteBindings/CryptoBinding.rs"
49            ));
50        }
51        pub(crate) mod CryptoKeyBinding {
52            use crate::codegen::Bindings::import::*;
53            use crate::cryptokey::CryptoKey;
54            include!(concat!(
55                env!("OUT_DIR"),
56                "/ConcreteBindings/CryptoKeyBinding.rs"
57            ));
58        }
59        pub(crate) mod SubtleCryptoBinding {
60            use crate::codegen::Bindings::import::*;
61            use crate::subtlecrypto::SubtleCrypto;
62            include!(concat!(
63                env!("OUT_DIR"),
64                "/ConcreteBindings/SubtleCryptoBinding.rs"
65            ));
66        }
67    }
68}