@@ -36,7 +36,7 @@ fn main() {
3636 args
3737 } ;
3838 let n = int:: from_str ( args[ 1 ] ) . get ( ) ;
39- let mut bodies: ~[ Body :: props ] = NBodySystem :: make ( ) ;
39+ let mut bodies: ~[ Body :: Props ] = NBodySystem :: make ( ) ;
4040 io:: println ( fmt ! ( "%f" , NBodySystem :: energy( bodies) ) ) ;
4141 let mut i = 0 ;
4242 while i < n {
@@ -49,8 +49,8 @@ fn main() {
4949mod NBodySystem {
5050 use Body ;
5151
52- pub fn make ( ) -> ~[ Body :: props ] {
53- let mut bodies: ~[ Body :: props ] =
52+ pub fn make ( ) -> ~[ Body :: Props ] {
53+ let mut bodies: ~[ Body :: Props ] =
5454 ~[ Body :: sun ( ) ,
5555 Body :: jupiter ( ) ,
5656 Body :: saturn ( ) ,
@@ -76,7 +76,7 @@ mod NBodySystem {
7676 return bodies;
7777 }
7878
79- pub fn advance ( bodies : & mut [ Body :: props ] , dt : float ) {
79+ pub fn advance ( bodies : & mut [ Body :: Props ] , dt : float ) {
8080 let mut i = 0 ;
8181 while i < 5 {
8282 let mut j = i + 1 ;
@@ -96,8 +96,8 @@ mod NBodySystem {
9696 }
9797 }
9898
99- pub fn advance_one ( bi : & mut Body :: props ,
100- bj : & mut Body :: props ,
99+ pub fn advance_one ( bi : & mut Body :: Props ,
100+ bj : & mut Body :: Props ,
101101 dt : float ) {
102102 unsafe {
103103 let dx = bi. x - bj. x ;
@@ -119,13 +119,13 @@ mod NBodySystem {
119119 }
120120 }
121121
122- pub fn move_ ( b : & mut Body :: props , dt : float ) {
122+ pub fn move_ ( b : & mut Body :: Props , dt : float ) {
123123 b. x += dt * b. vx ;
124124 b. y += dt * b. vy ;
125125 b. z += dt * b. vz ;
126126 }
127127
128- pub fn energy ( bodies : & [ Body :: props ] ) -> float {
128+ pub fn energy ( bodies : & [ Body :: Props ] ) -> float {
129129 unsafe {
130130 let mut dx;
131131 let mut dy;
@@ -171,17 +171,17 @@ mod Body {
171171 // was 4 * PI * PI originally
172172 pub const DAYS_PER_YEAR : float = 365.24 ;
173173
174- pub type props =
174+ pub struct Props
175175 { mut x: float ,
176176 mut y: float ,
177177 mut z: float ,
178178 mut vx: float ,
179179 mut vy: float ,
180180 mut vz: float ,
181- mass : float } ;
181+ mass : float }
182182
183- pub fn jupiter ( ) -> Body :: props {
184- return { mut x: 4 . 84143144246472090e+00 ,
183+ pub fn jupiter ( ) -> Body :: Props {
184+ return Props { mut x: 4.84143144246472090e+00 ,
185185 mut y: -1.16032004402742839e+00 ,
186186 mut z: -1.03622044471123109e-01 ,
187187 mut vx: 1.66007664274403694e-03 * DAYS_PER_YEAR ,
@@ -190,8 +190,8 @@ mod Body {
190190 mass : 9.54791938424326609e-04 * SOLAR_MASS } ;
191191 }
192192
193- pub fn saturn ( ) -> Body :: props {
194- return { mut x: 8 . 34336671824457987e+00 ,
193+ pub fn saturn ( ) -> Body :: Props {
194+ return Props { mut x: 8.34336671824457987e+00 ,
195195 mut y: 4.12479856412430479e+00 ,
196196 mut z: -4.03523417114321381e-01 ,
197197 mut vx: -2.76742510726862411e-03 * DAYS_PER_YEAR ,
@@ -200,8 +200,8 @@ mod Body {
200200 mass : 2.85885980666130812e-04 * SOLAR_MASS } ;
201201 }
202202
203- pub fn uranus ( ) -> Body :: props {
204- return { mut x: 1 . 28943695621391310e+01 ,
203+ pub fn uranus ( ) -> Body :: Props {
204+ return Props { mut x: 1.28943695621391310e+01 ,
205205 mut y: -1.51111514016986312e+01 ,
206206 mut z: -2.23307578892655734e-01 ,
207207 mut vx: 2.96460137564761618e-03 * DAYS_PER_YEAR ,
@@ -210,8 +210,8 @@ mod Body {
210210 mass : 4.36624404335156298e-05 * SOLAR_MASS } ;
211211 }
212212
213- pub fn neptune ( ) -> Body :: props {
214- return { mut x: 1 . 53796971148509165e+01 ,
213+ pub fn neptune ( ) -> Body :: Props {
214+ return Props { mut x: 1.53796971148509165e+01 ,
215215 mut y: -2.59193146099879641e+01 ,
216216 mut z: 1.79258772950371181e-01 ,
217217 mut vx: 2.68067772490389322e-03 * DAYS_PER_YEAR ,
@@ -220,8 +220,8 @@ mod Body {
220220 mass : 5.15138902046611451e-05 * SOLAR_MASS } ;
221221 }
222222
223- pub fn sun ( ) -> Body :: props {
224- return { mut x: 0 . 0 ,
223+ pub fn sun ( ) -> Body :: Props {
224+ return Props { mut x: 0.0 ,
225225 mut y: 0.0 ,
226226 mut z: 0.0 ,
227227 mut vx: 0.0 ,
@@ -230,7 +230,7 @@ mod Body {
230230 mass : SOLAR_MASS } ;
231231 }
232232
233- pub fn offset_momentum ( props : & mut Body :: props ,
233+ pub fn offset_momentum ( props : & mut Body :: Props ,
234234 px : float , py : float , pz : float ) {
235235 props. vx = -px / SOLAR_MASS ;
236236 props. vy = -py / SOLAR_MASS ;
0 commit comments