| 568 | } |
| 569 | |
| 570 | public static class RSeq extends ASeq implements IndexedSeq, Counted{ |
| 571 | final IPersistentVector v; |
| 572 | final int i; |
| 573 | |
| 574 | public RSeq(IPersistentVector vector, int i){ |
| 575 | this.v = vector; |
| 576 | this.i = i; |
| 577 | } |
| 578 | |
| 579 | RSeq(IPersistentMap meta, IPersistentVector v, int i){ |
| 580 | super(meta); |
| 581 | this.v = v; |
| 582 | this.i = i; |
| 583 | } |
| 584 | |
| 585 | public Object first(){ |
| 586 | return v.nth(i); |
| 587 | } |
| 588 | |
| 589 | public ISeq next(){ |
| 590 | if(i > 0) |
| 591 | return new APersistentVector.RSeq(v, i - 1); |
| 592 | return null; |
| 593 | } |
| 594 | |
| 595 | public int index(){ |
| 596 | return i; |
| 597 | } |
| 598 | |
| 599 | public int count(){ |
| 600 | return i + 1; |
| 601 | } |
| 602 | |
| 603 | public APersistentVector.RSeq withMeta(IPersistentMap meta){ |
| 604 | if(meta() == meta) |
| 605 | return this; |
| 606 | return new APersistentVector.RSeq(meta, v, i); |
| 607 | } |
| 608 | } |
| 609 | |
| 610 | public static class SubVector extends APersistentVector implements IObj, IKVReduce{ |
| 611 | public final IPersistentVector v; |
nothing calls this directly
no outgoing calls
no test coverage detected