typedef nsAReadableString::const_iterator iterator;  iterator done_reading = aSource.BeginReading(); done_reading += aLength;  copy_string(aSource.BeginReading(), done_reading, aDest);
nsReadingIterator<PRUnichar> fromBegin, fromEnd; PRUnichar* toBegin = aDest; copy_string(aSource.BeginReading(fromBegin), aSource.BeginReading(fromEnd).advance( PRInt32(aLength) ), toBegin);
CopyUnicodeTo( const nsAReadableString& aSource,               PRUnichar* aDest,               PRUint32 aLength )  {    typedef nsAReadableString::const_iterator iterator;    iterator done_reading = aSource.BeginReading();    done_reading += aLength;    copy_string(aSource.BeginReading(), done_reading, aDest);    return aDest;  }