Warning: session_start(): open(/var/lib/php/sessions/sess_geu0tkrkp79mo3nrf6v8le9cps, O_RDWR) failed: No space left on device (28) in /var/www/tb-usercake/models/config.php on line 51
Warning: session_start(): Failed to read session data: files (path: /var/lib/php/sessions) in /var/www/tb-usercake/models/config.php on line 51
sclass Substring implements /*Comparable extends CharSequence>,*/ CharSequence {
S s; // full string we reference
int i, l; // starting index, length
*() {}
*(S *s, int *i, int j) { l = j-i; }
*(S *s, int *i) { l = s.length()-i; }
public bool equals(O o) {
if (o cast CharSequence) {
CharSequence c = o;
if (l != c.length()) false;
for idx to l:
if (s.charAt(i+idx) != c.charAt(idx))
false;
true;
}
false;
}
toString { ret main substring(s, i, i+l); }
public char charAt(int index) {
if (index < 0 || index >= l) fail("Index out of range: " + index + " (length: " + l + ")");
ret s.charAt(i+index);
}
public int length() { ret l; }
public int startIndex() { ret i; }
public int endIndex() { ret i+l; }
public S baseString() { ret s; }
IntRange range() { ret IntRange(startIndex(), endIndex()); }
public CharSequence subSequence(int start, int end) {
ret substring(start, end);
}
// TODO: index checking
Substring substring(int start, int end) {
ret Substring(s, i+start, i+end);
}
Substring substring(int start) {
ret substring(start, l);
}
}