From b90111dfd5f49985a59d7c90bfdc0852d7289688 Mon Sep 17 00:00:00 2001 From: Jesse Brault Date: Sat, 30 Nov 2024 19:04:45 -0600 Subject: [PATCH] Add string library file. --- dm_lib/std/core/string.dm | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 dm_lib/std/core/string.dm diff --git a/dm_lib/std/core/string.dm b/dm_lib/std/core/string.dm new file mode 100644 index 0000000..1a6aa02 --- /dev/null +++ b/dm_lib/std/core/string.dm @@ -0,0 +1,26 @@ +ns std::core + +pub int String { + bytes: byte[] + encoding: Encoding + length: Int +} + +pub enum Encoding { + Utf8, Utf16, Ascii +} + +pub impl Utf8String(bytes: byte[]) : String { + impl fn get_encoding() = Encoding::Utf8 + impl fn get_length() = bytes.length +} + +pub mod string { + + // Example usage: + // let bytes = [0x64, 0x65, 0x69, 0x6d, 0x6f, 0x73] + // let s = string::from_utf8_bytes(bytes) + // println s // "deimos" + fn from_utf8_bytes(bytes: byte[]): String = Utf8String(bytes) + +}