yijunyu/c-to-rust huggingface dataset:
// Original:
public CreateDocumentationVersionResult createDocumentationVersion(CreateDocumentationVersionRequest request) {request = beforeClientExecution(request);return executeCreateDocumentationVersion(request);}

// Translation:
public virtual CreateDocumentationVersionResponse CreateDocumentationVersion(CreateDocumentationVersionRequest request){var options = new InvokeOptions();options.RequestMarshaller = CreateDocumentationVersionRequestMarshaller.Instance;options.ResponseUnmarshaller = CreateDocumentationVersionResponseUnmarshaller.Instance;return Invoke<CreateDocumentationVersionResponse>(request, options);}
// Original:
public CreateClusterResult createCluster(CreateClusterRequest request) {request = beforeClientExecution(request);return executeCreateCluster(request);}

// Translation:
public virtual CreateClusterResponse CreateCluster(CreateClusterRequest request){var options = new InvokeOptions();options.RequestMarshaller = CreateClusterRequestMarshaller.Instance;options.ResponseUnmarshaller = CreateClusterResponseUnmarshaller.Instance;return Invoke<CreateClusterResponse>(request, options);}
// Original:
public DoubleBuffer compact() {if (byteBuffer.isReadOnly()) {throw new ReadOnlyBufferException();}byteBuffer.limit(limit * SizeOf.DOUBLE);byteBuffer.position(position * SizeOf.DOUBLE);byteBuffer.compact();byteBuffer.clear();position = limit - position;limit = capacity;mark = UNSET_MARK;return this;}

// Translation:
public override java.nio.DoubleBuffer compact(){if (byteBuffer.isReadOnly()){throw new java.nio.ReadOnlyBufferException();}byteBuffer.limit(_limit * libcore.io.SizeOf.DOUBLE);byteBuffer.position(_position * libcore.io.SizeOf.DOUBLE);byteBuffer.compact();byteBuffer.clear();_position = _limit - _position;_limit = _capacity;_mark = UNSET_MARK;return this;}
// Original:
public int[] grow() {final int[] ord = super.grow();boost = ArrayUtil.grow(boost, ord.length);if (termState.length < ord.length) {TermStates[] tmpTermState = new TermStates[ArrayUtil.oversize(ord.length, RamUsageEstimator.NUM_BYTES_OBJECT_REF)];System.arraycopy(termState, 0, tmpTermState, 0, termState.length);termState = tmpTermState;}assert termState.length >= ord.length && boost.length >= ord.length;return ord;}

// Translation:
public override int[] Grow(){int[] ord = base.Grow();boost = ArrayUtil.Grow(boost, ord.Length);if (termState.Length < ord.Length){TermContext[] tmpTermState = new TermContext[ArrayUtil.Oversize(ord.Length, RamUsageEstimator.NUM_BYTES_OBJECT_REF)];Array.Copy(termState, 0, tmpTermState, 0, termState.Length);termState = tmpTermState;}Debug.Assert(termState.Length >= ord.Length && boost.Length >= ord.Length);return ord;}
// Original:
public DefaultColWidthRecord(RecordInputStream in){field_1_col_width = in.readUShort();}

// Translation:
public DefaultColWidthRecord(RecordInputStream in1){field_1_col_width = in1.ReadUShort();}
// Original:
public GetAttributesResult getAttributes(GetAttributesRequest request) {request = beforeClientExecution(request);return executeGetAttributes(request);}

// Translation:
public virtual GetAttributesResponse GetAttributes(GetAttributesRequest request){var options = new InvokeOptions();options.RequestMarshaller = GetAttributesRequestMarshaller.Instance;options.ResponseUnmarshaller = GetAttributesResponseUnmarshaller.Instance;return Invoke<GetAttributesResponse>(request, options);}
// Original:
public GetSubUserListRequest() {super("cr", "2016-06-07", "GetSubUserList", "cr");setUriPattern("/users/subAccount");setMethod(MethodType.GET);}

// Translation:
public GetSubUserListRequest(): base("cr", "2016-06-07", "GetSubUserList", "cr", "openAPI"){UriPattern = "/users/subAccount";Method = MethodType.GET;}
// Original:
public void setQueryConfigHandler(QueryConfigHandler queryConfigHandler) {this.queryConfigHandler = queryConfigHandler;}

// Translation:
public virtual void SetQueryConfigHandler(QueryConfigHandler queryConfigHandler){this.queryConfigHandler = queryConfigHandler;}
// Original:
public WindowCacheConfig() {packedGitOpenFiles = 128;packedGitLimit = 10 * MB;useStrongRefs = false;packedGitWindowSize = 8 * KB;packedGitMMAP = false;deltaBaseCacheLimit = 10 * MB;streamFileThreshold = PackConfig.DEFAULT_BIG_FILE_THRESHOLD;}

// Translation:
public WindowCacheConfig(){packedGitOpenFiles = 128;packedGitLimit = 10 * MB;packedGitWindowSize = 8 * KB;packedGitMMAP = false;deltaBaseCacheLimit = 10 * MB;streamFileThreshold = PackConfig.DEFAULT_BIG_FILE_THRESHOLD;}
// Original:
public MutableFPNumber copy() {return new MutableFPNumber(_significand, _binaryExponent);}

// Translation:
public MutableFPNumber Copy(){return new MutableFPNumber(_significand, _binaryExponent);}
// Original:
public ShortBuffer asReadOnlyBuffer() {ShortToByteBufferAdapter buf = new ShortToByteBufferAdapter(byteBuffer.asReadOnlyBuffer());buf.limit = limit;buf.position = position;buf.mark = mark;buf.byteBuffer.order = byteBuffer.order;return buf;}

// Translation:
public override java.nio.ShortBuffer asReadOnlyBuffer(){java.nio.ShortToByteBufferAdapter buf = new java.nio.ShortToByteBufferAdapter(byteBuffer.asReadOnlyBuffer());buf._limit = _limit;buf._position = _position;buf._mark = _mark;buf.byteBuffer._order = byteBuffer._order;return buf;}
// Original:
public DescribeReservedCacheNodesResult describeReservedCacheNodes(DescribeReservedCacheNodesRequest request) {request = beforeClientExecution(request);return executeDescribeReservedCacheNodes(request);}

// Translation:
public virtual DescribeReservedCacheNodesResponse DescribeReservedCacheNodes(DescribeReservedCacheNodesRequest request){var options = new InvokeOptions();options.RequestMarshaller = DescribeReservedCacheNodesRequestMarshaller.Instance;options.ResponseUnmarshaller = DescribeReservedCacheNodesResponseUnmarshaller.Instance;return Invoke<DescribeReservedCacheNodesResponse>(request, options);}
// Original:
public ListOperationsResult listOperations(ListOperationsRequest request) {request = beforeClientExecution(request);return executeListOperations(request);}

// Translation:
public virtual ListOperationsResponse ListOperations(ListOperationsRequest request){var options = new InvokeOptions();options.RequestMarshaller = ListOperationsRequestMarshaller.Instance;options.ResponseUnmarshaller = ListOperationsResponseUnmarshaller.Instance;return Invoke<ListOperationsResponse>(request, options);}
// Original:
public SaveTaskForSubmittingDomainRealNameVerificationByIdentityCredentialRequest() {super("Domain-intl", "2017-12-18", "SaveTaskForSubmittingDomainRealNameVerificationByIdentityCredential", "domain");setMethod(MethodType.POST);}

// Translation:
public SaveTaskForSubmittingDomainRealNameVerificationByIdentityCredentialRequest(): base("Domain-intl", "2017-12-18", "SaveTaskForSubmittingDomainRealNameVerificationByIdentityCredential", "domain", "openAPI"){Method = MethodType.POST;}
// Original:
public BatchReadResult batchRead(BatchReadRequest request) {request = beforeClientExecution(request);return executeBatchRead(request);}

// Translation:
public virtual BatchReadResponse BatchRead(BatchReadRequest request){var options = new InvokeOptions();options.RequestMarshaller = BatchReadRequestMarshaller.Instance;options.ResponseUnmarshaller = BatchReadResponseUnmarshaller.Instance;return Invoke<BatchReadResponse>(request, options);}
// Original:
public InstanceProfileCredentials fetch(int retryTimes) throws ClientException {for (int i = 0; i <= retryTimes; i++) {try {return fetch();} catch (ClientException e) {if (i == retryTimes) {throw e;}}}throw new ClientException("Failed to connect ECS Metadata Service: Max retry times exceeded.");}

// Translation:
public InstanceProfileCredentials Fetch(int retryTimes){for (var i = 0; i <= retryTimes; i++){try{return Fetch();}catch (ClientException e){if (i == retryTimes){throw new ClientException(e.ErrorCode, e.ErrorMessage);}}}throw new ClientException("Failed to connect ECS Metadata Service: Max retry times exceeded.");}
// Original:
public ValueEval evaluate(int srcRowIndex, int srcColumnIndex) {Date now = new Date(System.currentTimeMillis());return new NumberEval(DateUtil.getExcelDate(now));}

// Translation:
public override ValueEval Evaluate(int srcRowIndex, int srcColumnIndex){return new NumberEval(DateUtil.GetExcelDate(DateTime.Now));}
// Original:
public static int idealIntArraySize(int need) {return idealByteArraySize(need * 4) / 4;}

// Translation:
public static int idealIntArraySize(int need){return idealByteArraySize(need * 4) / 4;}
// Original:
public long record(IndexSearcher searcher) throws IOException {ensureOpen();final long version = ((DirectoryReader) searcher.getIndexReader()).getVersion();SearcherTracker tracker = searchers.get(version);if (tracker == null) {tracker = new SearcherTracker(searcher);if (searchers.putIfAbsent(version, tracker) != null) {tracker.close();}} else if (tracker.searcher != searcher) {throw new IllegalArgumentException("the provided searcher has the same underlying reader version yet the searcher instance differs from before (new=" + searcher + " vs old=" + tracker.searcher);}return version;}

// Translation:
public virtual long Record(IndexSearcher searcher){EnsureOpen();var version = ((DirectoryReader)searcher.IndexReader).Version;var factoryMethodCalled = false;var tracker = _searchers.GetOrAdd(version, l => new Lazy<SearcherTracker>(() => { factoryMethodCalled = true; return new SearcherTracker(searcher); })).Value;if (!factoryMethodCalled && tracker.Searcher != searcher){throw new ArgumentException("the provided searcher has the same underlying reader version yet the searcher instance differs from before (new=" + searcher + " vs old=" + tracker.Searcher);}return version;}
// Original:
public ClassifyDocumentResult classifyDocument(ClassifyDocumentRequest request) {request = beforeClientExecution(request);return executeClassifyDocument(request);}

// Translation:
public virtual ClassifyDocumentResponse ClassifyDocument(ClassifyDocumentRequest request){var options = new InvokeOptions();options.RequestMarshaller = ClassifyDocumentRequestMarshaller.Instance;options.ResponseUnmarshaller = ClassifyDocumentResponseUnmarshaller.Instance;return Invoke<ClassifyDocumentResponse>(request, options);}
// Original:
public GetIdentityPoolRolesResult getIdentityPoolRoles(GetIdentityPoolRolesRequest request) {request = beforeClientExecution(request);return executeGetIdentityPoolRoles(request);}

// Translation:
public virtual GetIdentityPoolRolesResponse GetIdentityPoolRoles(GetIdentityPoolRolesRequest request){var options = new InvokeOptions();options.RequestMarshaller = GetIdentityPoolRolesRequestMarshaller.Instance;options.ResponseUnmarshaller = GetIdentityPoolRolesResponseUnmarshaller.Instance;return Invoke<GetIdentityPoolRolesResponse>(request, options);}
// Original:
public CharSequence subSequence(int start, int end) {int newLength = end - start;return new UnescapedCharSequence(this.chars, this.wasEscaped, start,newLength);}

// Translation:
public ICharSequence Subsequence(int startIndex, int length){return new UnescapedCharSequence(this.chars, this.wasEscaped, startIndex,length);}
// Original:
public CreateDeploymentGroupResult createDeploymentGroup(CreateDeploymentGroupRequest request) {request = beforeClientExecution(request);return executeCreateDeploymentGroup(request);}

// Translation:
public virtual CreateDeploymentGroupResponse CreateDeploymentGroup(CreateDeploymentGroupRequest request){var options = new InvokeOptions();options.RequestMarshaller = CreateDeploymentGroupRequestMarshaller.Instance;options.ResponseUnmarshaller = CreateDeploymentGroupResponseUnmarshaller.Instance;return Invoke<CreateDeploymentGroupResponse>(request, options);}
// Original:
public String toString() {StringBuilder r = new StringBuilder();r.append("Tag");r.append("={\n");r.append("object ");r.append(object != null ? object.name() : "NOT_SET");r.append("\n");r.append("type ");r.append(object != null ? Constants.typeString(type) : "NOT_SET");r.append("\n");r.append("tag ");r.append(tag != null ? tag : "NOT_SET");r.append("\n");if (tagger != null) {r.append("tagger ");r.append(tagger);r.append("\n");}r.append("\n");r.append(message != null ? message : "");r.append("}");return r.toString();}

// Translation:
public override string ToString(){StringBuilder r = new StringBuilder();r.Append("Tag");r.Append("={\n");r.Append("object ");r.Append(@object != null ? @object.Name : "NOT_SET");r.Append("\n");r.Append("type ");r.Append(@object != null ? Constants.TypeString(type) : "NOT_SET");r.Append("\n");r.Append("tag ");r.Append(tag != null ? tag : "NOT_SET");r.Append("\n");if (tagger != null){r.Append("tagger ");r.Append(tagger);r.Append("\n");}r.Append("\n");r.Append(message != null ? message : string.Empty);r.Append("}");return r.ToString();}
// Original:
public ET next() {if (expectedModCount == list.modCount) {if (hasNext()) {link = link.previous;canRemove = true;return link.data;}throw new NoSuchElementException();}throw new ConcurrentModificationException();}

// Translation:
public virtual ET next(){if (this.expectedModCount == this.list.modCount){if (this.hasNext()){this.link = this.link.previous;this.canRemove = true;return this.link.data;}throw new java.util.NoSuchElementException();}throw new java.util.ConcurrentModificationException();}
// Original:
public boolean contains(Object needle) {if (needle instanceof String) {String n = (String) needle;return names.containsKey(n)|| names.containsKey(StringUtils.toLowerCase(n));}return false;}

// Translation:
public override bool Contains(object needle){if (needle is string){string n = (string)needle;return names.ContainsKey(n) || names.ContainsKey(StringUtils.ToLowerCase(n));}return false;}
// Original:
public int set(final int holder){return holder | _mask;}

// Translation:
public int Set(int holder){return (holder | this._mask);}
// Original:
public void setContext(int lineCount) {if (lineCount < 0)throw new IllegalArgumentException(JGitText.get().contextMustBeNonNegative);context = lineCount;}

// Translation:
public virtual void SetContext(int lineCount){if (lineCount < 0){throw new ArgumentException(JGitText.Get().contextMustBeNonNegative);}context = lineCount;}
// Original:
public String getPath(Side side) {return side == Side.OLD ? getOldPath() : getNewPath();}

// Translation:
public virtual string GetPath(DiffEntry.Side side){return side == DiffEntry.Side.OLD ? GetOldPath() : GetNewPath();}
// Original:
public DescribeAccessPointsResult describeAccessPoints(DescribeAccessPointsRequest request) {request = beforeClientExecution(request);return executeDescribeAccessPoints(request);}

// Translation:
public virtual DescribeAccessPointsResponse DescribeAccessPoints(DescribeAccessPointsRequest request){var options = new InvokeOptions();options.RequestMarshaller = DescribeAccessPointsRequestMarshaller.Instance;options.ResponseUnmarshaller = DescribeAccessPointsResponseUnmarshaller.Instance;return Invoke<DescribeAccessPointsResponse>(request, options);}
// Original:
public StringBuilder deleteCharAt(int index) {deleteCharAt0(index);return this;}

// Translation:
public java.lang.StringBuilder deleteCharAt(int index){deleteCharAt0(index);return this;}
// Original:
public int addSSTString(UnicodeString string) {LOG.log(DEBUG, "insert to sst string='", string);if (sst == null) {insertSST();}return sst.addString(string);}

// Translation:
public int AddSSTString(UnicodeString str){if (sst == null){InsertSST();}return sst.AddString(str);}
// Original:
public String outputToString(TermData data) {return data.toString();}

// Translation:
public override string OutputToString(TermData data){return data.ToString();}
// Original:
public List<HSSFObjectData> getAllEmbeddedObjects(){List<HSSFObjectData> objects = new ArrayList<>();for (HSSFSheet sheet : _sheets){getAllEmbeddedObjects(sheet, objects);}return Collections.unmodifiableList(objects);}

// Translation:
public IList<HSSFObjectData> GetAllEmbeddedObjects(){List<HSSFObjectData> objects = new List<HSSFObjectData>();for (int i = 0; i < NumberOfSheets; i++){GetAllEmbeddedObjects((HSSFSheet)GetSheetAt(i), objects);}return objects;}
// Original:
public DisableDirectoryResult disableDirectory(DisableDirectoryRequest request) {request = beforeClientExecution(request);return executeDisableDirectory(request);}

// Translation:
public virtual DisableDirectoryResponse DisableDirectory(DisableDirectoryRequest request){var options = new InvokeOptions();options.RequestMarshaller = DisableDirectoryRequestMarshaller.Instance;options.ResponseUnmarshaller = DisableDirectoryResponseUnmarshaller.Instance;return Invoke<DisableDirectoryResponse>(request, options);}
// Original:
public UpdateApiMappingResult updateApiMapping(UpdateApiMappingRequest request) {request = beforeClientExecution(request);return executeUpdateApiMapping(request);}

// Translation:
public virtual UpdateApiMappingResponse UpdateApiMapping(UpdateApiMappingRequest request){var options = new InvokeOptions();options.RequestMarshaller = UpdateApiMappingRequestMarshaller.Instance;options.ResponseUnmarshaller = UpdateApiMappingResponseUnmarshaller.Instance;return Invoke<UpdateApiMappingResponse>(request, options);}
// Original:
public StringBuffer insert(int index, boolean b) {return insert(index, b ? "true" : "false");}

// Translation:
public java.lang.StringBuffer insert(int index, bool b){return insert(index, b ? "true" : "false");}
// Original:
public UpdateConfigurationResult updateConfiguration(UpdateConfigurationRequest request) {request = beforeClientExecution(request);return executeUpdateConfiguration(request);}

// Translation:
public virtual UpdateConfigurationResponse UpdateConfiguration(UpdateConfigurationRequest request){var options = new InvokeOptions();options.RequestMarshaller = UpdateConfigurationRequestMarshaller.Instance;options.ResponseUnmarshaller = UpdateConfigurationResponseUnmarshaller.Instance;return Invoke<UpdateConfigurationResponse>(request, options);}
// Original:
public synchronized StringBuffer replace(int start, int end, String string) {replace0(start, end, string);return this;}

// Translation:
public java.lang.StringBuffer replace(int start, int end, string @string){lock (this){replace0(start, end, @string);return this;}}
// Original:
public void decode(long[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations) {for (int i = 0; i < iterations; ++i) {final long block = blocks[blocksOffset++];for (int shift = 60; shift >= 0; shift -= 4) {values[valuesOffset++] = (int) ((block >>> shift) & 15);}}}

// Translation:
public override void Decode(long[] blocks, int blocksOffset, int[] values, int valuesOffset, int iterations){for (int i = 0; i < iterations; ++i){long block = blocks[blocksOffset++];for (int shift = 60; shift >= 0; shift -= 4){values[valuesOffset++] = (int)(((long)((ulong)block >> shift)) & 15);}}}
// Original:
public synchronized void print(String str) {if (out == null) {setError();return;}if (str == null) {print("null");return;}try {if (encoding == null) {write(str.getBytes());} else {write(str.getBytes(encoding));}} catch (IOException e) {setError();}}

// Translation:
public virtual void print(string str){lock (this){if (@out == null){setError();return;}if (str == null){print("null");return;}try{if (encoding == null){write(Sharpen.StringHelper.GetBytesForString(str));}else{write(Sharpen.StringHelper.GetBytesForString(str, encoding));}}catch (System.IO.IOException){setError();}}}
// Original:
@Override public E set(int index, E object) {synchronized (CopyOnWriteArrayList.this) {slice.checkElementIndex(index);slice.checkConcurrentModification(elements);E result = CopyOnWriteArrayList.this.set(index + slice.from, object);slice = new Slice(elements, slice.from, slice.to);return result;}}

// Translation:
public virtual E set(int index, E e){lock (this){object[] newElements = (object[])elements.Clone();E result = (E)newElements[index];newElements[index] = e;elements = newElements;return result;}}
// Original:
public static void fill(Object[] array, int start, int end, Object value) {Arrays.checkStartAndEnd(array.length, start, end);for (int i = start; i < end; i++) {array[i] = value;}}

// Translation:
public static void fill(object[] array, int start, int end, object value){java.util.Arrays.checkStartAndEnd(array.Length, start, end);{for (int i = start; i < end; i++){array[i] = value;}}}
// Original:
public short checkExternSheet(int firstSheetNumber, int lastSheetNumber){return (short)getOrCreateLinkTable().checkExternSheet(firstSheetNumber, lastSheetNumber);}

// Translation:
public short checkExternSheet(int firstSheetNumber, int lastSheetNumber){return (short)OrCreateLinkTable.CheckExternSheet(firstSheetNumber, lastSheetNumber);}
// Original:
public DeleteClusterParameterGroupResult deleteClusterParameterGroup(DeleteClusterParameterGroupRequest request) {request = beforeClientExecution(request);return executeDeleteClusterParameterGroup(request);}

// Translation:
public virtual DeleteClusterParameterGroupResponse DeleteClusterParameterGroup(DeleteClusterParameterGroupRequest request){var options = new InvokeOptions();options.RequestMarshaller = DeleteClusterParameterGroupRequestMarshaller.Instance;options.ResponseUnmarshaller = DeleteClusterParameterGroupResponseUnmarshaller.Instance;return Invoke<DeleteClusterParameterGroupResponse>(request, options);}
// Original:
public GetTemplateResult getTemplate(GetTemplateRequest request) {request = beforeClientExecution(request);return executeGetTemplate(request);}

// Translation:
public virtual GetTemplateResponse GetTemplate(GetTemplateRequest request){var options = new InvokeOptions();options.RequestMarshaller = GetTemplateRequestMarshaller.Instance;options.ResponseUnmarshaller = GetTemplateResponseUnmarshaller.Instance;return Invoke<GetTemplateResponse>(request, options);}
// Original:
public ByteBuffer put(byte[] src, int srcOffset, int byteCount) {throw new ReadOnlyBufferException();}

// Translation:
public override java.nio.ByteBuffer put(byte[] src, int srcOffset, int byteCount){throw new java.nio.ReadOnlyBufferException();}
// Original:
public Note call() throws GitAPIException {checkCallable();NoteMap map = NoteMap.newEmptyMap();RevCommit notesCommit = null;try (RevWalk walk = new RevWalk(repo);ObjectInserter inserter = repo.newObjectInserter()) {Ref ref = repo.findRef(notesRef);if (ref != null) {notesCommit = walk.parseCommit(ref.getObjectId());map = NoteMap.read(walk.getObjectReader(), notesCommit);}map.set(id, message, inserter);commitNoteMap(repo, notesRef, walk, map, notesCommit, inserter,"Notes added by 'git notes add'"); return map.getNote(id);} catch (IOException e) {throw new JGitInternalException(e.getMessage(), e);}}

// Translation:
public override Note Call(){CheckCallable();RevWalk walk = new RevWalk(repo);ObjectInserter inserter = repo.NewObjectInserter();NoteMap map = NoteMap.NewEmptyMap();RevCommit notesCommit = null;try{Ref @ref = repo.GetRef(notesRef);if (@ref != null){notesCommit = walk.ParseCommit(@ref.GetObjectId());map = NoteMap.Read(walk.GetObjectReader(), notesCommit);}map.Set(id, message, inserter);CommitNoteMap(walk, map, notesCommit, inserter, "Notes added by 'git notes add'");return map.GetNote(id);}catch (IOException e){throw new JGitInternalException(e.Message, e);}finally{inserter.Release();walk.Release();}}
// Original:
public DeleteNodegroupResult deleteNodegroup(DeleteNodegroupRequest request) {request = beforeClientExecution(request);return executeDeleteNodegroup(request);}

// Translation:
public virtual DeleteNodegroupResponse DeleteNodegroup(DeleteNodegroupRequest request){var options = new InvokeOptions();options.RequestMarshaller = DeleteNodegroupRequestMarshaller.Instance;options.ResponseUnmarshaller = DeleteNodegroupResponseUnmarshaller.Instance;return Invoke<DeleteNodegroupResponse>(request, options);}
// Original:
public final boolean hasRemaining() {return position < limit;}

// Translation:
public bool hasRemaining(){return _position < _limit;}