]> git.lizzy.rs Git - rust.git/blob - src/test/rustdoc/assoc-consts.rs
Rollup merge of #53506 - phungleson:fix-from-docs-atomic, r=KodrAus
[rust.git] / src / test / rustdoc / assoc-consts.rs
1 // Copyright 2015 The Rust Project Developers. See the COPYRIGHT
2 // file at the top-level directory of this distribution and at
3 // http://rust-lang.org/COPYRIGHT.
4 //
5 // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6 // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8 // option. This file may not be copied, modified, or distributed
9 // except according to those terms.
10
11
12 pub trait Foo {
13     // @has assoc_consts/trait.Foo.html '//*[@class="rust trait"]' \
14     //      'const FOO: usize;'
15     // @has - '//*[@id="associatedconstant.FOO"]' 'const FOO: usize'
16     const FOO: usize = 12;
17     // @has - '//*[@id="associatedconstant.FOO_NO_DEFAULT"]' 'const FOO_NO_DEFAULT: bool'
18     const FOO_NO_DEFAULT: bool;
19     // @!has - FOO_HIDDEN
20     #[doc(hidden)]
21     const FOO_HIDDEN: u8 = 0;
22 }
23
24 pub struct Bar;
25
26 impl Foo for Bar {
27     // @has assoc_consts/struct.Bar.html '//code' 'impl Foo for Bar'
28     // @has - '//*[@id="associatedconstant.FOO"]' 'const FOO: usize'
29     const FOO: usize = 12;
30     // @has - '//*[@id="associatedconstant.FOO_NO_DEFAULT"]' 'const FOO_NO_DEFAULT: bool'
31     const FOO_NO_DEFAULT: bool = false;
32     // @!has - FOO_HIDDEN
33     #[doc(hidden)]
34     const FOO_HIDDEN: u8 = 0;
35 }
36
37 impl Bar {
38     // @has assoc_consts/struct.Bar.html '//*[@id="associatedconstant.BAR"]' \
39     //      'const BAR: usize'
40     pub const BAR: usize = 3;
41 }
42
43 pub struct Baz<'a, U: 'a, T>(T, &'a [U]);
44
45 impl Bar {
46     // @has assoc_consts/struct.Bar.html '//*[@id="associatedconstant.BAZ"]' \
47     //      "const BAZ: Baz<'static, u8, u32>"
48     pub const BAZ: Baz<'static, u8, u32> = Baz(321, &[1, 2, 3]);
49 }
50
51 pub fn f(_: &(ToString + 'static)) {}
52
53 impl Bar {
54     // @has assoc_consts/struct.Bar.html '//*[@id="associatedconstant.F"]' \
55     //      "const F: fn(_: &(dyn ToString + 'static))"
56     pub const F: fn(_: &(ToString + 'static)) = f;
57 }
58
59 impl Bar {
60     // @!has assoc_consts/struct.Bar.html 'BAR_PRIVATE'
61     const BAR_PRIVATE: char = 'a';
62     // @!has assoc_consts/struct.Bar.html 'BAR_HIDDEN'
63     #[doc(hidden)]
64     pub const BAR_HIDDEN: &'static str = "a";
65 }
66
67 // @has assoc_consts/trait.Qux.html
68 pub trait Qux {
69     // @has - '//*[@id="associatedconstant.QUX0"]' 'const QUX0: u8'
70     // @has - '//*[@class="docblock"]' "Docs for QUX0 in trait."
71     /// Docs for QUX0 in trait.
72     const QUX0: u8;
73     // @has - '//*[@id="associatedconstant.QUX1"]' 'const QUX1: i8'
74     // @has - '//*[@class="docblock"]' "Docs for QUX1 in trait."
75     /// Docs for QUX1 in trait.
76     const QUX1: i8;
77     // @has - '//*[@id="associatedconstant.QUX_DEFAULT0"]' 'const QUX_DEFAULT0: u16'
78     // @has - '//*[@class="docblock"]' "Docs for QUX_DEFAULT12 in trait."
79     /// Docs for QUX_DEFAULT12 in trait.
80     const QUX_DEFAULT0: u16 = 1;
81     // @has - '//*[@id="associatedconstant.QUX_DEFAULT1"]' 'const QUX_DEFAULT1: i16'
82     // @has - '//*[@class="docblock"]' "Docs for QUX_DEFAULT1 in trait."
83     /// Docs for QUX_DEFAULT1 in trait.
84     const QUX_DEFAULT1: i16 = 2;
85     // @has - '//*[@id="associatedconstant.QUX_DEFAULT2"]' 'const QUX_DEFAULT2: u32'
86     // @has - '//*[@class="docblock"]' "Docs for QUX_DEFAULT2 in trait."
87     /// Docs for QUX_DEFAULT2 in trait.
88     const QUX_DEFAULT2: u32 = 3;
89 }
90
91 // @has assoc_consts/struct.Bar.html '//code' 'impl Qux for Bar'
92 impl Qux for Bar {
93     // @has - '//*[@id="associatedconstant.QUX0"]' 'const QUX0: u8'
94     // @has - '//*[@class="docblock"]' "Docs for QUX0 in trait."
95     /// Docs for QUX0 in trait.
96     const QUX0: u8 = 4;
97     // @has - '//*[@id="associatedconstant.QUX1"]' 'const QUX1: i8'
98     // @has - '//*[@class="docblock"]' "Docs for QUX1 in impl."
99     /// Docs for QUX1 in impl.
100     const QUX1: i8 = 5;
101     // @has - '//*[@id="associatedconstant.QUX_DEFAULT0"]' 'const QUX_DEFAULT0: u16'
102     // @has - '//*[@class="docblock hidden"]' "Docs for QUX_DEFAULT12 in trait."
103     const QUX_DEFAULT0: u16 = 6;
104     // @has - '//*[@id="associatedconstant.QUX_DEFAULT1"]' 'const QUX_DEFAULT1: i16'
105     // @has - '//*[@class="docblock"]' "Docs for QUX_DEFAULT1 in impl."
106     /// Docs for QUX_DEFAULT1 in impl.
107     const QUX_DEFAULT1: i16 = 7;
108     // @has - '//*[@id="associatedconstant.QUX_DEFAULT2"]' 'const QUX_DEFAULT2: u32'
109     // @has - '//*[@class="docblock"]' "Docs for QUX_DEFAULT2 in trait."
110 }