@@ -150,7 +150,21 @@ pub struct Weighted<T> {
150
150
151
151
pub trait RngUtil {
152
152
fn gen < T : Rand > ( & self ) -> T ;
153
- /// Return a random int
153
+ /**
154
+ * Return a random int
155
+ *
156
+ * *Example*
157
+ *
158
+ * ~~~
159
+ *
160
+ * use core::rand::RngUtil;
161
+ *
162
+ * fn main() {
163
+ * rng = rand::Rng();
164
+ * println(fmt!("%d",rng.gen_int()));
165
+ * }
166
+ * ~~~
167
+ */
154
168
fn gen_int ( & self ) -> int ;
155
169
fn gen_int_range ( & self , start : int , end : int ) -> int ;
156
170
/// Return a random i8
@@ -176,7 +190,21 @@ pub trait RngUtil {
176
190
fn gen_u32 ( & self ) -> u32 ;
177
191
/// Return a random u64
178
192
fn gen_u64 ( & self ) -> u64 ;
179
- /// Return a random float in the interval [0,1]
193
+ /**
194
+ * Return random float in the interval [0,1]
195
+ *
196
+ * *Example*
197
+ *
198
+ * ~~~
199
+ *
200
+ * use core::rand::RngUtil;
201
+ *
202
+ * fn main() {
203
+ * rng = rand::Rng();
204
+ * println(fmt!("%f",rng.gen_float()));
205
+ * }
206
+ * ~~~
207
+ */
180
208
fn gen_float ( & self ) -> float ;
181
209
/// Return a random f32 in the interval [0,1]
182
210
fn gen_f32 ( & self ) -> f32 ;
@@ -188,38 +216,184 @@ pub trait RngUtil {
188
216
* Return a char randomly chosen from chars, failing if chars is empty
189
217
*/
190
218
fn gen_char_from ( & self , chars : & str ) -> char ;
191
- /// Return a random bool
219
+ /**
220
+ * Return a random bool
221
+ *
222
+ * *Example*
223
+ *
224
+ * ~~~
225
+ *
226
+ * use core::rand::RngUtil;
227
+ *
228
+ * fn main() {
229
+ * rng = rand::Rng();
230
+ * println(fmt!("%b",rng.gen_bool()));
231
+ * }
232
+ * ~~~
233
+ */
192
234
fn gen_bool ( & self ) -> bool ;
193
- /// Return a bool with a 1 in n chance of true
235
+ /**
236
+ * Return a bool with a 1 in n chance of true
237
+ *
238
+ * *Example*
239
+ *
240
+ * ~~~
241
+ *
242
+ * use core::rand::RngUtil;
243
+ *
244
+ * fn main() {
245
+ * rng = rand::Rng();
246
+ * println(fmt!("%b",rng.gen_weighted_bool(3)));
247
+ * }
248
+ * ~~~
249
+ */
194
250
fn gen_weighted_bool ( & self , n : uint ) -> bool ;
195
251
/**
196
252
* Return a random string of the specified length composed of A-Z,a-z,0-9
253
+ *
254
+ * *Example*
255
+ *
256
+ * ~~~
257
+ *
258
+ * use core::rand::RngUtil;
259
+ *
260
+ * fn main() {
261
+ * rng = rand::Rng();
262
+ * println(rng.gen_str(8));
263
+ * }
264
+ * ~~~
197
265
*/
198
266
fn gen_str ( & self , len : uint ) -> ~str ;
199
- /// Return a random byte string of the specified length
267
+ /**
268
+ * Return a random byte string of the specified length
269
+ *
270
+ * *Example*
271
+ *
272
+ * ~~~
273
+ *
274
+ * use core::rand::RngUtil;
275
+ *
276
+ * fn main() {
277
+ * rng = rand::Rng();
278
+ * println(fmt!("%?",rng.gen_bytes(8)));
279
+ * }
280
+ * ~~~
281
+ */
200
282
fn gen_bytes ( & self , len : uint ) -> ~[ u8 ] ;
201
- /// Choose an item randomly, failing if values is empty
283
+ ///
284
+ /**
285
+ * Choose an item randomly, failing if values is empty
286
+ *
287
+ * *Example*
288
+ *
289
+ * ~~~
290
+ *
291
+ * use core::rand::RngUtil;
292
+ *
293
+ * fn main() {
294
+ * rng = rand::Rng();
295
+ * println(fmt!("%d",rng.choose([1,2,4,8,16,32])));
296
+ * }
297
+ * ~~~
298
+ */
202
299
fn choose < T : Copy > ( & self , values : & [ T ] ) -> T ;
203
300
/// Choose Some(item) randomly, returning None if values is empty
204
301
fn choose_option < T : Copy > ( & self , values : & [ T ] ) -> Option < T > ;
205
302
/**
206
303
* Choose an item respecting the relative weights, failing if the sum of
207
304
* the weights is 0
305
+ *
306
+ * *Example*
307
+ *
308
+ * ~~~
309
+ *
310
+ * use core::rand::RngUtil;
311
+ *
312
+ * fn main() {
313
+ * rng = rand::Rng();
314
+ * let x = [rand::Weighted {weight: 4, item: 'a'},
315
+ * rand::Weighted {weight: 2, item: 'b'},
316
+ * rand::Weighted {weight: 2, item: 'c'}];
317
+ * println(fmt!("%c",rng.choose_weighted(x)));
318
+ * }
319
+ * ~~~
208
320
*/
209
321
fn choose_weighted < T : Copy > ( & self , v : & [ Weighted < T > ] ) -> T ;
210
322
/**
211
323
* Choose Some(item) respecting the relative weights, returning none if
212
324
* the sum of the weights is 0
325
+ *
326
+ * *Example*
327
+ *
328
+ * ~~~
329
+ *
330
+ * use core::rand::RngUtil;
331
+ *
332
+ * fn main() {
333
+ * rng = rand::Rng();
334
+ * let x = [rand::Weighted {weight: 4, item: 'a'},
335
+ * rand::Weighted {weight: 2, item: 'b'},
336
+ * rand::Weighted {weight: 2, item: 'c'}];
337
+ * println(fmt!("%?",rng.choose_weighted_option(x)));
338
+ * }
339
+ * ~~~
213
340
*/
214
341
fn choose_weighted_option < T : Copy > ( & self , v : & [ Weighted < T > ] ) -> Option < T > ;
215
342
/**
216
343
* Return a vec containing copies of the items, in order, where
217
344
* the weight of the item determines how many copies there are
345
+ *
346
+ * *Example*
347
+ *
348
+ * ~~~
349
+ *
350
+ * use core::rand::RngUtil;
351
+ *
352
+ * fn main() {
353
+ * rng = rand::Rng();
354
+ * let x = [rand::Weighted {weight: 4, item: 'a'},
355
+ * rand::Weighted {weight: 2, item: 'b'},
356
+ * rand::Weighted {weight: 2, item: 'c'}];
357
+ * println(fmt!("%?",rng.weighted_vec(x)));
358
+ * }
359
+ * ~~~
218
360
*/
219
361
fn weighted_vec < T : Copy > ( & self , v : & [ Weighted < T > ] ) -> ~[ T ] ;
220
- /// Shuffle a vec
362
+ /**
363
+ * Shuffle a vec
364
+ *
365
+ * *Example*
366
+ *
367
+ * ~~~
368
+ *
369
+ * use core::rand::RngUtil;
370
+ *
371
+ * fn main() {
372
+ * rng = rand::Rng();
373
+ * println(fmt!("%?",rng.shuffle([1,2,3])));
374
+ * }
375
+ * ~~~
376
+ */
221
377
fn shuffle < T : Copy > ( & self , values : & [ T ] ) -> ~[ T ] ;
222
- /// Shuffle a mutable vec in place
378
+ /**
379
+ * Shuffle a mutable vec in place
380
+ *
381
+ * *Example*
382
+ *
383
+ * ~~~
384
+ *
385
+ * use core::rand::RngUtil;
386
+ *
387
+ * fn main() {
388
+ * rng = rand::Rng();
389
+ * let mut y = [1,2,3];
390
+ * rng.shuffle_mut(y);
391
+ * println(fmt!("%?",y));
392
+ * rng.shuffle_mut(y);
393
+ * println(fmt!("%?",y));
394
+ * }
395
+ * ~~~
396
+ */
223
397
fn shuffle_mut < T > ( & self , values : & mut [ T ] ) ;
224
398
}
225
399
@@ -337,7 +511,7 @@ impl RngUtil for @Rng {
337
511
self . next ( ) & 1u32 == 1u32
338
512
}
339
513
340
- /// Return a bool with a 1 in n chance of true
514
+ /// Return a bool with a 1-in- n chance of true
341
515
fn gen_weighted_bool ( & self , n : uint ) -> bool {
342
516
if n == 0 u {
343
517
true
0 commit comments