Skip to content

Commit 8332a9a

Browse files
peter-jerry-yebobzhang
authored andcommitted
refactor: deprecate write_substring
1 parent 5b94c12 commit 8332a9a

File tree

10 files changed

+58
-47
lines changed

10 files changed

+58
-47
lines changed

array/view.mbt

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -380,23 +380,19 @@ pub fn[A : @string.ToStringView] ArrayView::join(
380380
size_hint = size_hint << 1
381381
let buf = StringBuilder::new(size_hint~)
382382
// buf.write_string(hd)
383-
buf.write_substring(hd.data(), hd.start_offset(), hd.length())
383+
buf.write_view(hd)
384384
if separator is "" {
385385
for s in tl {
386386
// buf.write_string(s)
387387
let s = s.to_string_view()
388-
buf.write_substring(s.data(), s.start_offset(), s.length())
388+
buf.write_view(s)
389389
}
390390
} else {
391391
for s in tl {
392392
let s = s.to_string_view()
393-
buf.write_substring(
394-
separator.data(),
395-
separator.start_offset(),
396-
separator.length(),
397-
)
393+
buf.write_view(separator)
398394
// buf.write_string(s)
399-
buf.write_substring(s.data(), s.start_offset(), s.length())
395+
buf.write_view(s)
400396
}
401397
}
402398
buf.to_string()

buffer/buffer.mbt

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -846,7 +846,7 @@ pub fn Buffer::write_string_utf16be(buf : Self, string : StringView) -> Unit {
846846
///
847847
/// ```moonbit
848848
/// let buf = @buffer.new()
849-
/// buf.write_substring("Hello, World!", 0, 5)
849+
/// buf.write_view("Hello, World!"[:5])
850850
/// inspect(
851851
/// buf.contents(),
852852
/// content=(
@@ -856,16 +856,15 @@ pub fn Buffer::write_string_utf16be(buf : Self, string : StringView) -> Unit {
856856
/// ),
857857
/// )
858858
/// ```
859-
pub impl Logger for Buffer with write_substring(
860-
self : Buffer,
861-
value : String,
862-
start : Int,
863-
len : Int,
864-
) -> Unit {
865-
guard start >= 0 && len >= 0 && start + len <= value.length()
866-
self.grow_if_necessary(self.len + len * 2)
867-
self.data.blit_from_string(self.len, value, start, len)
868-
self.len += len * 2
859+
pub impl Logger for Buffer with write_view(self : Buffer, value : StringView) -> Unit {
860+
self.grow_if_necessary(self.len + value.length() * 2)
861+
self.data.blit_from_string(
862+
self.len,
863+
value.data(),
864+
value.start_offset(),
865+
value.length(),
866+
)
867+
self.len += value.length() * 2
869868
}
870869
871870
///|

buffer/buffer_test.mbt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ test "grow_if_necessary method" {
7474
///|
7575
test "write_substring method" {
7676
let buf = @buffer.new(size_hint=10)
77-
buf.write_substring("Hello, World!", 7, 5)
77+
buf.write_view("Hello, World!"[7:12])
7878
inspect(buf, content="World")
7979
}
8080

builtin/pkg.generated.mbti

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1094,8 +1094,10 @@ impl Hash for BytesView
10941094
impl Hash for StringView
10951095

10961096
pub(open) trait Logger {
1097-
write_string(Self, String) -> Unit
1098-
write_substring(Self, String, Int, Int) -> Unit
1097+
write_string(Self, String) -> Unit = _
1098+
#deprecated
1099+
write_substring(Self, String, Int, Int) -> Unit = _
1100+
write_view(Self, StringView) -> Unit = _
10991101
write_char(Self, Char) -> Unit = _
11001102
}
11011103
fn[T : Show] &Logger::write_iter(Self, Iter[T], prefix? : String, suffix? : String, sep? : String, trailing? : Bool) -> Unit

builtin/stringbuilder_buffer.mbt

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -91,19 +91,21 @@ pub impl Logger for StringBuilder with write_char(self, ch) {
9191
///
9292
/// ```moonbit
9393
/// let sb = StringBuilder::new()
94-
/// sb.write_substring("Hello, world!", 0, 5)
94+
/// sb.write_view("Hello, world!"[:5])
9595
/// assert_eq(sb.to_string(), "Hello")
9696
/// ```
97-
pub impl Logger for StringBuilder with write_substring(
97+
pub impl Logger for StringBuilder with write_view(
9898
self : StringBuilder,
99-
str : String,
100-
start : Int,
101-
len : Int,
99+
str : StringView,
102100
) -> Unit {
103-
guard start >= 0 && len >= 0 && start + len <= str.length()
104-
self.grow_if_necessary(self.len + len * 2)
105-
self.data.blit_from_string(self.len, str, start, len)
106-
self.len += len * 2
101+
self.grow_if_necessary(self.len + str.length() * 2)
102+
self.data.blit_from_string(
103+
self.len,
104+
str.data(),
105+
str.start_offset(),
106+
str.length(),
107+
)
108+
self.len += str.length() * 2
107109
}
108110
109111
///|

builtin/stringbuilder_concat.mbt

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -63,16 +63,14 @@ pub impl Logger for StringBuilder with write_char(self, ch) {
6363
///
6464
/// ```moonbit
6565
/// let sb = StringBuilder::new()
66-
/// sb.write_substring("Hello, world!", 0, 5)
66+
/// sb.write_view("Hello, world!"[:5])
6767
/// assert_eq(sb.to_string(), "Hello")
6868
/// ```
69-
pub impl Logger for StringBuilder with write_substring(
69+
pub impl Logger for StringBuilder with write_view(
7070
self : StringBuilder,
71-
str : String,
72-
start : Int,
73-
len : Int,
71+
str : StringView,
7472
) -> Unit {
75-
self.val += str.substring(start~, end=start + len)
73+
self.val += str.to_string()
7674
}
7775
7876
///|

builtin/stringbuilder_test.mbt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ test "stringbuilder" {
2727
let buf = StringBuilder::new()
2828
buf.write_string("hello")
2929
buf.write_char(' ')
30-
buf.write_substring("world", 0, 3)
30+
buf.write_view("world"[:3])
3131
inspect(buf.to_string(), content="hello wor")
3232
}
3333

builtin/traits.mbt

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,11 +85,29 @@ pub(open) trait Default {
8585
///|
8686
/// Trait for a logger, where debug logs can be written into
8787
pub(open) trait Logger {
88-
write_string(Self, String) -> Unit
89-
write_substring(Self, String, Int, Int) -> Unit
88+
write_string(Self, String) -> Unit = _
89+
#deprecated("use `write_view` instead", skip_current_package=true)
90+
write_substring(Self, String, Int, Int) -> Unit = _
91+
write_view(Self, StringView) -> Unit = _
9092
write_char(Self, Char) -> Unit = _
9193
}
9294

95+
///|
96+
impl Logger with write_substring(self, value, start, len) {
97+
self.write_view(try! value[start:start + len])
98+
}
99+
100+
///|
101+
impl Logger with write_string(self, value) {
102+
self.write_view(value[:])
103+
}
104+
105+
///|
106+
#deprecated("replace `impl write_substring` with `impl write_view`")
107+
impl Logger with write_view(self, value) {
108+
self.write_substring(value.data(), value.start_offset(), value.length())
109+
}
110+
93111
///|
94112
impl Logger with write_char(self, value) {
95113
self.write_string([value])

coverage/coverage.mbt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -111,14 +111,14 @@ pub fn end() -> Unit {
111111
let mut start = 0
112112
for j in 0..<str.length() {
113113
if str.unsafe_charcode_at(j) == '\n' {
114-
line_buf.write_substring(str, start, j)
114+
line_buf.write_view(try! str[start:j])
115115
println(line_buf.to_string())
116116
line_buf.reset()
117117
start = j + 1
118118
}
119119
}
120120
if start < str.length() {
121-
line_buf.write_substring(str, start, str.length())
121+
line_buf.write_view(try! str[start:])
122122
}
123123
}
124124
let trailing_line = line_buf.to_string()

json/lex_string.mbt

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,7 @@ fn ParseContext::lex_string(ctx : ParseContext) -> String raise ParseError {
1818
let mut start = ctx.offset
1919
fn flush(end : Int) {
2020
if start > 0 && end > start {
21-
buf.write_substring(
22-
ctx.input.data(),
23-
ctx.input.start_offset() + start,
24-
end - start,
25-
)
21+
buf.write_view(try! ctx.input[start:end])
2622
}
2723
}
2824

0 commit comments

Comments
 (0)