1 #![crate_name = "foo"]
2 
3 // @has foo/trait.Foo.html
4 // @has - '//*[@class="sidebar-title"]/a[@href="#required-methods"]' 'Required Methods'
5 // @has - '//*[@class="sidebar-links"]/a' 'bar'
6 // @has - '//*[@class="sidebar-title"]/a[@href="#provided-methods"]' 'Provided Methods'
7 // @has - '//*[@class="sidebar-links"]/a' 'foo'
8 // @has - '//*[@class="sidebar-title"]/a[@href="#associated-const"]' 'Associated Constants'
9 // @has - '//*[@class="sidebar-links"]/a' 'BAR'
10 // @has - '//*[@class="sidebar-title"]/a[@href="#associated-types"]' 'Associated Types'
11 // @has - '//*[@class="sidebar-links"]/a' 'Output'
12 pub trait Foo {
13     const BAR: u32 = 0;
14     type Output: ?Sized;
15 
foo()16     fn foo() {}
bar() -> Self::Output17     fn bar() -> Self::Output;
18 }
19 
20 // @has foo/struct.Bar.html
21 // @has - '//*[@class="sidebar-title"]/a[@href="#fields"]' 'Fields'
22 // @has - '//*[@class="sidebar-links"]/a[@href="#structfield.f"]' 'f'
23 // @has - '//*[@class="sidebar-links"]/a[@href="#structfield.u"]' 'u'
24 // @!has - '//*[@class="sidebar-links"]/a' 'waza'
25 pub struct Bar {
26     pub f: u32,
27     pub u: u32,
28     waza: u32,
29 }
30 
31 // @has foo/enum.En.html
32 // @has - '//*[@class="sidebar-title"]/a[@href="#variants"]' 'Variants'
33 // @has - '//*[@class="sidebar-links"]/a' 'foo'
34 // @has - '//*[@class="sidebar-links"]/a' 'bar'
35 pub enum En {
36     foo,
37     bar,
38 }
39 
40 // @has foo/union.MyUnion.html
41 // @has - '//*[@class="sidebar-title"]/a[@href="#fields"]' 'Fields'
42 // @has - '//*[@class="sidebar-links"]/a[@href="#structfield.f1"]' 'f1'
43 // @has - '//*[@class="sidebar-links"]/a[@href="#structfield.f2"]' 'f2'
44 // @!has - '//*[@class="sidebar-links"]/a' 'waza'
45 pub union MyUnion {
46     pub f1: u32,
47     pub f2: f32,
48     waza: u32,
49 }
50