From b4f7a975e8b0cca7ecba0b188a359a4639a8fd37 Mon Sep 17 00:00:00 2001 From: shadowninja55 <49539636+shadowninja55@users.noreply.github.com> Date: Tue, 16 Mar 2021 18:19:48 -0400 Subject: [PATCH] builtin.string: optimize string.count where substr.len == 1 (#9337) --- vlib/builtin/string.v | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/vlib/builtin/string.v b/vlib/builtin/string.v index e37491c81b..6fc72cd699 100644 --- a/vlib/builtin/string.v +++ b/vlib/builtin/string.v @@ -834,7 +834,21 @@ pub fn (s string) count(substr string) int { if substr.len > s.len { return 0 } + mut n := 0 + + if substr.len == 1 { + target := substr[0] + + for letter in s { + if letter == target { + n++ + } + } + + return n + } + mut i := 0 for { i = s.index_after(substr, i)