default Node<T> truncate(long from,long to,IntFunction<T[]> generator){
  if (from == 0 && to == count())   return this;
  Spliterator<T> spliterator=spliterator();
  long size=to - from;
  Node.Builder<T> nodeBuilder=Nodes.builder(size,generator);
  nodeBuilder.begin(size);
  for (int i=0; i < from && spliterator.tryAdvance(null); i++) {
  }
  for (int i=0; (i < size) && spliterator.tryAdvance(nodeBuilder); i++) {
  }
  nodeBuilder.end();
  return nodeBuilder.build();
}

default Node < T > truncate ( long from , long to , IntFunction < T [ ] > generator ) { if ( from == 0 && to == count ( ) ) return this ; Spliterator < T > spliterator = spliterator ( ) ; long size = to - from ; Node . Builder < T > nodeBuilder = Nodes . builder ( size , generator ) ; nodeBuilder . begin ( size ) ; for ( int i = 0 ; i < from && spliterator . tryAdvance ( null ) ; i ++ ) { } for ( int i = 0 ; ( i < size ) && spliterator . tryAdvance ( nodeBuilder ) ; i ++ ) { } nodeBuilder . end ( ) ; return nodeBuilder . build ( ) ; }
return a node describing a subsequence of the elements of this node , starting at the given inclusive start offset and ending at the given exclusive end offset .
