
proc CORE.String.Create stdcall uses ebx, text:DWORD
	invoke	mem_alloc, sizeof.CORE.String
	mov	ebx, eax
	invoke	mem_alloc, 4096
	mov	byte[eax], 0
	mov	[ebx + CORE.String.text], eax
	mov	[ebx + CORE.String.size], 4096
	mov	[ebx + CORE.String.length], 0
	cmp	[text], 0
	je	@f
	stdcall CORE.String.Set, ebx, [text]
    @@: mov	eax, ebx
	ret
endp

proc CORE.String.Destroy stdcall, obj:DWORD
	mov	eax, [obj]
	invoke	mem_free, [eax + CORE.String.text]
	invoke	mem_free, [obj]
	ret
endp

proc CORE.String.Set stdcall, obj:DWORD, text:DWORD
	ret
endp

proc CORE.String.Length stdcall, obj:DWORD
	mov	eax, [obj]
	mov	eax, [eax + CORE.String.length]
	ret
endp

proc CORE.String.Append stdcall, obj:DWORD, text:DWORD
	ret
endp

proc CORE.String.Prepend stdcall, obj:DWORD, text:DWORD
	ret
endp

proc CORE.String.Insert stdcall, obj:DWORD, pos:DWORD, text:DWORD
	ret
endp

proc CORE.String.Delete stdcall, obj:DWORD, pos:DWORD, count:DWORD
	ret
endp

proc CORE.String.Replace stdcall, obj:DWORD, pos:DWORD, count:DWORD, text:DWORD
	ret
endp

proc CORE.String.SubStr stdcall, obj:DWORD, pos:DWORD, count:DWORD
	ret
endp

proc CORE.String.Find stdcall, obj:DWORD, pos:DWORD, text:DWORD
	ret
endp
