File tree 1 file changed +33
-0
lines changed
1 file changed +33
-0
lines changed Original file line number Diff line number Diff line change
1
+ // Copyright 2013 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
+ pub fn main ( ) {
12
+ let id: & Mat2 < float > = & Matrix :: identity ( ) ;
13
+ }
14
+
15
+ pub trait Index < Index , Result > { }
16
+ pub trait Dimensional < T > : Index < uint , T > { }
17
+
18
+ pub struct Mat2 < T > { x : ( ) }
19
+ pub struct Vec2 < T > { x : ( ) }
20
+
21
+ impl < T > Dimensional < Vec2 < T > > for Mat2 < T > { }
22
+ impl < T > Index < uint , Vec2 < T > > for Mat2 < T > { }
23
+
24
+ impl < T > Dimensional < T > for Vec2 < T > { }
25
+ impl < T > Index < uint , T > for Vec2 < T > { }
26
+
27
+ pub trait Matrix < T , V > : Dimensional < V > {
28
+ fn identity ( ) -> Self ;
29
+ }
30
+
31
+ impl < T > Matrix < T , Vec2 < T > > for Mat2 < T > {
32
+ fn identity ( ) -> Mat2 < T > { Mat2 { x : ( ) } }
33
+ }
You can’t perform that action at this time.
0 commit comments