@@ -28,7 +28,9 @@ use std::str;
28
28
use std:: uint;
29
29
use std:: vec;
30
30
31
- fn LINE_LENGTH ( ) -> uint { return 60 u; }
31
+ static LINE_LENGTH : uint = 60 u;
32
+
33
+ //fn LINE_LENGTH() -> uint { return 60u; }
32
34
33
35
struct MyRandom {
34
36
last : u32
@@ -81,7 +83,7 @@ fn make_random_fasta(wr: @io::Writer,
81
83
for uint:: range ( 0 u , n as uint ) |_i| {
82
84
op. push_char ( select_random ( myrandom_next ( rng, 100u32 ) ,
83
85
copy genelist) ) ;
84
- if op. len ( ) >= LINE_LENGTH ( ) {
86
+ if op. len ( ) >= LINE_LENGTH {
85
87
wr. write_line ( op) ;
86
88
op = ~"";
87
89
}
@@ -90,18 +92,20 @@ fn make_random_fasta(wr: @io::Writer,
90
92
}
91
93
92
94
fn make_repeat_fasta ( wr : @io:: Writer , id : ~str , desc : ~str , s : ~str , n : int ) {
95
+ wr. write_line ( ~">" + id + " " + desc);
96
+ let mut op = str::with_capacity( LINE_LENGTH );
97
+ let sl = s.len();
93
98
unsafe {
94
- wr. write_line ( ~">" + id + " " + desc);
95
- let mut op: ~str = ~" ";
96
- let sl: uint = s. len ( ) ;
97
99
for uint::range(0u, n as uint) |i| {
98
- str:: raw:: push_byte( & mut op, s[ i % sl] ) ;
99
- if op. len ( ) >= LINE_LENGTH ( ) {
100
- wr. write_line ( op) ;
101
- op = ~"";
100
+ if (op.len() >= LINE_LENGTH) {
101
+ wr.write_line( op );
102
+ op = str::with_capacity( LINE_LENGTH );
102
103
}
104
+ op.push_char( s[i % sl] as char );
105
+ }
106
+ if op.len() > 0 {
107
+ wr.write_line(op)
103
108
}
104
- if op. len ( ) > 0 u { wr. write_line ( op) ; }
105
109
}
106
110
}
107
111
0 commit comments