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
/*
Appellation: seal <module>
Contrib: FL03 <jo3mccain@icloud.com>
*/
//! The public parts of this private module are used to create traits
//! that cannot be implemented outside of our own crate. This way we
//! can feel free to extend those traits without worrying about it
//! being a breaking change for other implementations.
//!
//! ## Usage
//!
//! To define a private trait, you can use the [`private!`] macro, which will define a hidden
//! method `__private__` that can only be implemented within the crate.
/// If this type is pub but not publicly reachable, third parties
/// can't name it and can't implement traits using it.
;
/// the [`private!`] macro is used to seal a particular trait, defining a hidden method that
/// may only be implemented within the bounds of the crate.
/// the [`seal!`] macro is used to implement a private method on a type, which is used to seal
/// the type so that it cannot be implemented outside of the crate.
/// this macros is used to implement a trait for a type, sealing it so that
/// it cannot be implemented outside of the crate. This is most usefuly for creating other
/// macros that can be used to implement some raw, sealed trait on the given _types_.
};
}