File tree 1 file changed +10
-8
lines changed
1 file changed +10
-8
lines changed Original file line number Diff line number Diff line change @@ -1566,6 +1566,16 @@ pub fn each_permutation<T:Copy>(v: &[T], put: &fn(ts: &[T]) -> bool) {
1566
1566
}
1567
1567
}
1568
1568
1569
+ // see doc below
1570
+ #[cfg(stage0)] // XXX: lifetimes!
1571
+ pub fn windowed<T>(n: uint, v: &[T], it: &fn(&[T]) -> bool) {
1572
+ assert!(1u <= n);
1573
+ if n > v.len() { return; }
1574
+ for uint::range(0, v.len() - n + 1) |i| {
1575
+ if !it(v.slice(i, i+n)) { return }
1576
+ }
1577
+ }
1578
+
1569
1579
/**
1570
1580
* Iterate over all contiguous windows of length `n` of the vector `v`.
1571
1581
*
@@ -1580,14 +1590,6 @@ pub fn each_permutation<T:Copy>(v: &[T], put: &fn(ts: &[T]) -> bool) {
1580
1590
* ~~~
1581
1591
*
1582
1592
* /
1583
- #[ cfg ( stage0) ] // XXX: lifetimes!
1584
- pub fn windowed<T >( n: uint, v: & [ T ] , it: & fn ( & [ T ] ) -> bool) {
1585
- assert ! ( 1 u <= n) ;
1586
- if n > v. len ( ) { return ; }
1587
- for uint:: range( 0 , v. len( ) - n + 1 ) |i| {
1588
- if !it ( v. slice ( i, i+n) ) { return }
1589
- }
1590
- }
1591
1593
#[ cfg ( stage1) ]
1592
1594
#[ cfg( stage2) ]
1593
1595
#[ cfg( stage3) ]
You can’t perform that action at this time.
0 commit comments