namespace sys.core.lang
class String
this{data: Char};
this{chars: Slice};
this{chars: Ptr, len: PtrSize};
this{chars: String, len: PtrSize};
this{chars: String, start: PtrSize, end: PtrSize};
this{chars: Ptr, len: PtrSize, cap: PtrSize};
this{chars: CArray};
this{chars: CArray, len: PtrSize};
this{obj: String};
this{move obj: String};
data=>
chars=>
len=>
start=>
end=>
cap=>
obj=>
this FromIndex{chars: String, start: PtrSize};
this FromIndex{chars: String, start: PtrSize, end: PtrSize};
chars=>
start=>
end=>
this TakeOwnership{chars: Ptr, len: PtrSize};
chars=>
len=>
def @attr(obj: String);
def @attr(move obj: String);
obj=>
def Clear();
func @eq(second: String): Bool;
second=>
func @neq(second: String): Bool;
second=>
def @shl(ch: Char): ref String;
def @shl(str: String): ref String;
ch=>
str=>
def Insert(pos: PtrSize, string: String);
pos=>
string=>
func Inserted(pos: PtrSize, string: String): String;
pos=>
string=>
func Find(b: Byte): PtrSize;
func Find(b: Byte, start: PtrSize): PtrSize;
func Find(b: CArray): PtrSize;
b=>
start=>
func RFind(b: Byte): PtrSize;
func RFind(b: Byte, start: PtrSize): PtrSize;
func RFind(b: CArray): PtrSize;
b=>
start=>
func Split(b: Byte): Vector;
b=>
func Trimmed(): String;
func @write(ref stream: Stream);
func @write(ref stream: Stream, format: OutputFormat);
stream=>
format=>
func @put(ref stream: Stream);
stream=>
def @get(ref stream: Stream);
stream=>
property Length: PtrSize
property Capacity: PtrSize
property @index: ref Byte; get;
property IsEmpty: Bool; get;
property SysDataPointer: Ptr; get;
val GrowthSpacing;