File tree Expand file tree Collapse file tree 3 files changed +65
-0
lines changed Expand file tree Collapse file tree 3 files changed +65
-0
lines changed Original file line number Diff line number Diff line change @@ -8,3 +8,4 @@ Cargo.lock
88
99# These are backup files generated by rustfmt
1010** /* .rs.bk
11+ /.idea /
Original file line number Diff line number Diff line change 1+ pub fn add ( a : i32 , b : i32 ) -> i32 {
2+ a + b
3+ }
4+
5+ #[ allow( dead_code) ]
6+ fn bad_add ( a : i32 , b : i32 ) -> i32 {
7+ a - b
8+ }
9+
10+ #[ cfg( test) ]
11+ mod tests {
12+ use super :: * ;
13+
14+ #[ test]
15+ fn test_add ( ) {
16+ assert_eq ! ( add( 1 , 2 ) , 3 ) ;
17+ }
18+
19+ #[ test]
20+ fn test_bad_add ( ) {
21+ assert_eq ! ( bad_add( 1 , 2 ) , -1 ) ;
22+ }
23+ }
Original file line number Diff line number Diff line change 1+ struct Duck ;
2+
3+ struct Pig ;
4+
5+ trait Fly {
6+ fn fly ( & self ) -> bool ;
7+ }
8+
9+ impl Fly for Duck {
10+ fn fly ( & self ) -> bool {
11+ true
12+ }
13+ }
14+
15+ impl Fly for Pig {
16+ fn fly ( & self ) -> bool {
17+ false
18+ }
19+ }
20+
21+ fn fly_static < T : Fly > ( s : T ) -> bool {
22+ s. fly ( )
23+ }
24+
25+ fn fly_dyn ( s : & dyn Fly ) -> bool {
26+ s. fly ( )
27+ }
28+
29+ #[ cfg( test) ]
30+ mod tests {
31+ use super :: * ;
32+
33+ #[ test]
34+ fn test_trait ( ) {
35+ let pig = Pig ;
36+ assert_eq ! ( fly_static:: <Pig >( pig) , false ) ;
37+
38+ let duck = Duck ;
39+ assert_eq ! ( fly_dyn( & duck) , true ) ;
40+ }
41+ }
You can’t perform that action at this time.
0 commit comments