std/widestrs

Source   Edit  

Nim support for C/C++'s wide strings.

Types

Utf16Char = distinct int16
Source   Edit  
WideCStringObj = object
Source   Edit  

Procs

proc `$`(s: WideCString): string {....raises: [], tags: [], forbids: [].}
Source   Edit  
proc `$`(s: WideCStringObj): string {....raises: [], tags: [], forbids: [].}
Source   Edit  
proc `$`(s: WideCStringObj; estimate: int; replacement: int = 0x0000FFFD): string {.
    ...raises: [], tags: [], forbids: [].}
Source   Edit  
proc `$`(w: WideCString; estimate: int; replacement: int = 0x0000FFFD): string {.
    ...raises: [], tags: [], forbids: [].}
Source   Edit  
proc len(w: WideCString): int {....raises: [], tags: [], forbids: [].}
returns the length of a widestring. This traverses the whole string to find the binary zero end marker! Source   Edit  
proc len(w: WideCStringObj): int {.inline, ...raises: [], tags: [], forbids: [].}
Source   Edit  
proc newWideCString(s: cstring): WideCStringObj {....raises: [], tags: [],
    forbids: [].}
Source   Edit  
proc newWideCString(s: string): WideCStringObj {....raises: [], tags: [],
    forbids: [].}
Source   Edit  
proc newWideCString(size: int): WideCStringObj {....raises: [], tags: [],
    forbids: [].}
Source   Edit  
proc newWideCString(source: cstring; L: int): WideCStringObj {....raises: [],
    tags: [], forbids: [].}
Warning:: source needs to be preallocated with the length L Source   Edit  

Converters

converter toWideCString(x: WideCStringObj): WideCString {.inline, ...raises: [],
    tags: [], forbids: [].}
Source   Edit  

Templates

template `[]`(a: WideCStringObj; idx: int): Utf16Char
Source   Edit  
template `[]=`(a: WideCStringObj; idx: int; val: Utf16Char)
Source   Edit