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
/// Trait describing any type that can be used to restrict the scope of
/// uniqueness of a [`crate::Id`].
/// Simple macro filling out the boiler-plate code of creating a new scope type
/// called `$ident` with optional visibility `$vis`, and implementing the
/// [`Scope`] trait.
///
/// # Examples
///
/// A macro call of
///
/// ```
/// # use dmv::scope;
/// scope!{ pub FooScope };
/// ```
///
/// expands into
///
/// ```
/// pub struct FooScope;
/// impl ::dmv::scope::Scope for FooScope {}
/// ```
/// Globally public [`Scope`].
;