mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-04 22:58:46 +00:00
pr pickups
This commit is contained in:
@@ -148,8 +148,7 @@ _builder_stream_vtable_obj := io.Stream_VTable{
|
|||||||
},
|
},
|
||||||
impl_destroy = proc(s: io.Stream) -> io.Error {
|
impl_destroy = proc(s: io.Stream) -> io.Error {
|
||||||
b := (^Builder)(s.stream_data)
|
b := (^Builder)(s.stream_data)
|
||||||
delete(b.buf)
|
builder_destroy(b)
|
||||||
b.buf=nil
|
|
||||||
return .None
|
return .None
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
@@ -179,7 +178,7 @@ to_writer :: proc(b: ^Builder) -> io.Writer {
|
|||||||
return io.to_writer(to_stream(b))
|
return io.to_writer(to_stream(b))
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
Deletes and clears the Builder byte buffer content
|
Deletes the Builder byte buffer content
|
||||||
|
|
||||||
**Inputs**
|
**Inputs**
|
||||||
- b: A pointer to the Builder
|
- b: A pointer to the Builder
|
||||||
@@ -501,12 +500,12 @@ Example:
|
|||||||
strings.write_quoted_string(&builder, "a") // 3
|
strings.write_quoted_string(&builder, "a") // 3
|
||||||
strings.write_quoted_string(&builder, "bc", '\'') // 4
|
strings.write_quoted_string(&builder, "bc", '\'') // 4
|
||||||
strings.write_quoted_string(&builder, "xyz") // 5
|
strings.write_quoted_string(&builder, "xyz") // 5
|
||||||
fmt.println(strings.to_string(builder)) // -> "a"'bc'xyz"
|
fmt.println(strings.to_string(builder))
|
||||||
}
|
}
|
||||||
|
|
||||||
Output:
|
Output:
|
||||||
|
|
||||||
"a"'bc'xyz"
|
"a"'bc'"xyz"
|
||||||
|
|
||||||
NOTE: The backing dynamic array may be fixed in capacity or fail to resize, `n` states the number actually written.
|
NOTE: The backing dynamic array may be fixed in capacity or fail to resize, `n` states the number actually written.
|
||||||
|
|
||||||
@@ -517,12 +516,29 @@ write_quoted_string :: proc(b: ^Builder, str: string, quote: byte = '"') -> (n:
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
Appends an encoded rune to the Builder and returns the number of bytes written
|
Appends a rune to the Builder and returns the number of bytes written
|
||||||
|
|
||||||
**Inputs**
|
**Inputs**
|
||||||
- b: A pointer to the Builder
|
- b: A pointer to the Builder
|
||||||
- r: The rune to be appended
|
- r: The rune to be appended
|
||||||
- write_quote: Optional boolean flag to write the quote character (default is true)
|
- write_quote: Optional boolean flag to wrap in single-quotes (') (default is true)
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
import "core:fmt"
|
||||||
|
import "core:strings"
|
||||||
|
|
||||||
|
write_encoded_rune_example :: proc() {
|
||||||
|
builder := strings.builder_make()
|
||||||
|
strings.write_encoded_rune(&builder, 'a', false) // 1
|
||||||
|
strings.write_encoded_rune(&builder, '\"', true) // 3
|
||||||
|
strings.write_encoded_rune(&builder, 'x', false) // 1
|
||||||
|
fmt.println(strings.to_string(builder))
|
||||||
|
}
|
||||||
|
|
||||||
|
Output:
|
||||||
|
|
||||||
|
a'"'x
|
||||||
|
|
||||||
NOTE: The backing dynamic array may be fixed in capacity or fail to resize, `n` states the number actually written.
|
NOTE: The backing dynamic array may be fixed in capacity or fail to resize, `n` states the number actually written.
|
||||||
|
|
||||||
|
|||||||
@@ -2078,7 +2078,7 @@ is_null :: proc(r: rune) -> bool {
|
|||||||
return r == 0x0000
|
return r == 0x0000
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
Finds the index of the first rune in the string s for which the procedure p returns the same value as truth
|
Find the index of the first rune r in string s for which procedure p returns the same as truth, or -1 if no such rune appears.
|
||||||
|
|
||||||
**Inputs**
|
**Inputs**
|
||||||
- s: The input string
|
- s: The input string
|
||||||
@@ -2777,7 +2777,7 @@ Centers the input string within a field of specified length by adding pad string
|
|||||||
|
|
||||||
**Inputs**
|
**Inputs**
|
||||||
- str: The input string
|
- str: The input string
|
||||||
- length: The desired length of the centered string
|
- length: The desired length of the centered string, in runes
|
||||||
- pad: The string used for padding on both sides
|
- pad: The string used for padding on both sides
|
||||||
- allocator: (default is context.allocator)
|
- allocator: (default is context.allocator)
|
||||||
|
|
||||||
@@ -2876,8 +2876,8 @@ Writes a given pad string a specified number of times to an io.Writer
|
|||||||
**Inputs**
|
**Inputs**
|
||||||
- w: The io.Writer to write the pad string to
|
- w: The io.Writer to write the pad string to
|
||||||
- pad: The pad string to be written
|
- pad: The pad string to be written
|
||||||
- pad_len: The length of the pad string
|
- pad_len: The length of the pad string, in runes
|
||||||
- remains: The number of times to write the pad string
|
- remains: The number of times to write the pad string, in runes
|
||||||
*/
|
*/
|
||||||
@private
|
@private
|
||||||
write_pad_string :: proc(w: io.Writer, pad: string, pad_len, remains: int) {
|
write_pad_string :: proc(w: io.Writer, pad: string, pad_len, remains: int) {
|
||||||
@@ -2956,7 +2956,7 @@ fields :: proc(s: string, allocator := context.allocator) -> []string #no_bounds
|
|||||||
return a
|
return a
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
Splits a string into a slice of substrings at each run of unicode code points `ch` satisfying the predicate f(ch)
|
Splits a string into a slice of substrings at each run of unicode code points `r` satisfying the predicate f(r)
|
||||||
|
|
||||||
*Allocates Using Provided Allocator*
|
*Allocates Using Provided Allocator*
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user