mirror of
https://github.com/sbrow/thor.git
synced 2026-08-26 11:23:32 -04:00
perf: Replaced fmt.aprintf/fmt.tprintf calls with fmt.sbprintf.
This commit is contained in:
@@ -7,9 +7,8 @@ import "core:time"
|
|||||||
generate_rss :: proc(site: ^Site) -> string {
|
generate_rss :: proc(site: ^Site) -> string {
|
||||||
sb := strings.builder_make()
|
sb := strings.builder_make()
|
||||||
|
|
||||||
strings.write_string(
|
fmt.sbprintf(
|
||||||
&sb,
|
&sb,
|
||||||
fmt.aprintf(
|
|
||||||
`<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
`<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||||
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
||||||
<channel>
|
<channel>
|
||||||
@@ -22,7 +21,6 @@ generate_rss :: proc(site: ^Site) -> string {
|
|||||||
site.base_url,
|
site.base_url,
|
||||||
xml_escape(site.description),
|
xml_escape(site.description),
|
||||||
site.base_url,
|
site.base_url,
|
||||||
),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
for page in site.pages {
|
for page in site.pages {
|
||||||
@@ -35,9 +33,8 @@ generate_rss :: proc(site: ^Site) -> string {
|
|||||||
pub_date = format_rfc822(page.date)
|
pub_date = format_rfc822(page.date)
|
||||||
}
|
}
|
||||||
|
|
||||||
strings.write_string(
|
fmt.sbprintf(
|
||||||
&sb,
|
&sb,
|
||||||
fmt.aprintf(
|
|
||||||
`<item>
|
`<item>
|
||||||
<title>%s</title>
|
<title>%s</title>
|
||||||
<link>%s</link>
|
<link>%s</link>
|
||||||
@@ -51,7 +48,6 @@ generate_rss :: proc(site: ^Site) -> string {
|
|||||||
pub_date,
|
pub_date,
|
||||||
page.url,
|
page.url,
|
||||||
xml_escape(page.content),
|
xml_escape(page.content),
|
||||||
),
|
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -70,11 +66,11 @@ generate_sitemap :: proc(site: ^Site) -> string {
|
|||||||
)
|
)
|
||||||
|
|
||||||
for page in site.pages {
|
for page in site.pages {
|
||||||
lastmod := ""
|
fmt.sbprintf(&sb, "<url><loc>%s</loc>", page.url)
|
||||||
if page.date != "" {
|
if page.date != "" {
|
||||||
lastmod = fmt.aprintf("<lastmod>%s</lastmod>", page.date)
|
fmt.sbprintf(&sb, "<lastmod>%s</lastmod>", page.date)
|
||||||
}
|
}
|
||||||
strings.write_string(&sb, fmt.aprintf("<url><loc>%s</loc>%s</url>\n", page.url, lastmod))
|
fmt.sbprintf(&sb, "</url>\n")
|
||||||
}
|
}
|
||||||
|
|
||||||
// Section index pages (for sections without an index in content)
|
// Section index pages (for sections without an index in content)
|
||||||
@@ -103,14 +99,11 @@ generate_sitemap :: proc(site: ^Site) -> string {
|
|||||||
section_lastmod = page.date
|
section_lastmod = page.date
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
lm := ""
|
fmt.sbprintf(&sb, "<url><loc>%s/%s/</loc>", site.base_url, section)
|
||||||
if section_lastmod != "" {
|
if section_lastmod != "" {
|
||||||
lm = fmt.aprintf("<lastmod>%s</lastmod>", section_lastmod)
|
fmt.sbprintf(&sb, "<lastmod>%s</lastmod>", section_lastmod)
|
||||||
}
|
}
|
||||||
strings.write_string(
|
fmt.sbprintf(&sb, "</url>\n")
|
||||||
&sb,
|
|
||||||
fmt.aprintf("<url><loc>%s/%s/</loc>%s</url>\n", site.base_url, section, lm),
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
strings.write_string(&sb, "</urlset>")
|
strings.write_string(&sb, "</urlset>")
|
||||||
|
|||||||
@@ -227,7 +227,7 @@ format_error :: proc(
|
|||||||
}
|
}
|
||||||
strings.write_string(&sb, "--> ")
|
strings.write_string(&sb, "--> ")
|
||||||
strings.write_string(&sb, reset)
|
strings.write_string(&sb, reset)
|
||||||
strings.write_string(&sb, fmt.tprintf("%s:%d:%d\n", path, line, col))
|
fmt.sbprintf(&sb, "%s:%d:%d\n", path, line, col)
|
||||||
|
|
||||||
// Top gutter line.
|
// Top gutter line.
|
||||||
write_gutter(&sb, width, faint, reset)
|
write_gutter(&sb, width, faint, reset)
|
||||||
|
|||||||
+12
-12
@@ -129,12 +129,12 @@ match_token :: proc(b: ^strings.Builder, dt: Date_Components, s: string) -> int
|
|||||||
if strings.has_prefix(
|
if strings.has_prefix(
|
||||||
s,
|
s,
|
||||||
"January",
|
"January",
|
||||||
) {strings.write_string(b, fmt.tprintf("%s", time.Month(dt.month))); return 7}
|
) {fmt.sbprintf(b, "%s", time.Month(dt.month)); return 7}
|
||||||
if strings.has_prefix(s, "Monday") {emit_weekday(b, dt, full = true); return 6}
|
if strings.has_prefix(s, "Monday") {emit_weekday(b, dt, full = true); return 6}
|
||||||
if strings.has_prefix(
|
if strings.has_prefix(
|
||||||
s,
|
s,
|
||||||
"2006",
|
"2006",
|
||||||
) {strings.write_string(b, fmt.tprintf("%04d", dt.year)); return 4}
|
) {fmt.sbprintf(b, "%04d", dt.year); return 4}
|
||||||
if strings.has_prefix(s, "MST") {
|
if strings.has_prefix(s, "MST") {
|
||||||
abbr := dt.tz_abbr
|
abbr := dt.tz_abbr
|
||||||
if len(abbr) == 0 do abbr = "UTC"
|
if len(abbr) == 0 do abbr = "UTC"
|
||||||
@@ -146,37 +146,37 @@ match_token :: proc(b: ^strings.Builder, dt: Date_Components, s: string) -> int
|
|||||||
if strings.has_prefix(
|
if strings.has_prefix(
|
||||||
s,
|
s,
|
||||||
"06",
|
"06",
|
||||||
) {strings.write_string(b, fmt.tprintf("%02d", dt.year % 100)); return 2}
|
) {fmt.sbprintf(b, "%02d", dt.year % 100); return 2}
|
||||||
if strings.has_prefix(s, "02") {strings.write_string(b, fmt.tprintf("%02d", dt.day)); return 2}
|
if strings.has_prefix(s, "02") {fmt.sbprintf(b, "%02d", dt.day); return 2}
|
||||||
if strings.has_prefix(
|
if strings.has_prefix(
|
||||||
s,
|
s,
|
||||||
"15",
|
"15",
|
||||||
) {strings.write_string(b, fmt.tprintf("%02d", dt.hour)); return 2}
|
) {fmt.sbprintf(b, "%02d", dt.hour); return 2}
|
||||||
if strings.has_prefix(
|
if strings.has_prefix(
|
||||||
s,
|
s,
|
||||||
"04",
|
"04",
|
||||||
) {strings.write_string(b, fmt.tprintf("%02d", dt.minute)); return 2}
|
) {fmt.sbprintf(b, "%02d", dt.minute); return 2}
|
||||||
if strings.has_prefix(
|
if strings.has_prefix(
|
||||||
s,
|
s,
|
||||||
"05",
|
"05",
|
||||||
) {strings.write_string(b, fmt.tprintf("%02d", dt.second)); return 2}
|
) {fmt.sbprintf(b, "%02d", dt.second); return 2}
|
||||||
if strings.has_prefix(
|
if strings.has_prefix(
|
||||||
s,
|
s,
|
||||||
"01",
|
"01",
|
||||||
) {strings.write_string(b, fmt.tprintf("%02d", dt.month)); return 2}
|
) {fmt.sbprintf(b, "%02d", dt.month); return 2}
|
||||||
if strings.has_prefix(s, "03") {emit_hour_12(b, dt, pad = true); return 2}
|
if strings.has_prefix(s, "03") {emit_hour_12(b, dt, pad = true); return 2}
|
||||||
if strings.has_prefix(s, "PM") {emit_am_pm(b, dt); return 2}
|
if strings.has_prefix(s, "PM") {emit_am_pm(b, dt); return 2}
|
||||||
if strings.has_prefix(s, "pm") {emit_am_pm_lower(b, dt); return 2}
|
if strings.has_prefix(s, "pm") {emit_am_pm_lower(b, dt); return 2}
|
||||||
if len(s) >= 1 {
|
if len(s) >= 1 {
|
||||||
switch s[0] {
|
switch s[0] {
|
||||||
case '2':
|
case '2':
|
||||||
strings.write_string(b, fmt.tprintf("%d", dt.day)); return 1
|
fmt.sbprintf(b, "%d", dt.day); return 1
|
||||||
case '1':
|
case '1':
|
||||||
strings.write_string(b, fmt.tprintf("%d", dt.month)); return 1
|
fmt.sbprintf(b, "%d", dt.month); return 1
|
||||||
case '4':
|
case '4':
|
||||||
strings.write_string(b, fmt.tprintf("%d", dt.minute)); return 1
|
fmt.sbprintf(b, "%d", dt.minute); return 1
|
||||||
case '5':
|
case '5':
|
||||||
strings.write_string(b, fmt.tprintf("%d", dt.second)); return 1
|
fmt.sbprintf(b, "%d", dt.second); return 1
|
||||||
case '3':
|
case '3':
|
||||||
emit_hour_12(b, dt, pad = false); return 1
|
emit_hour_12(b, dt, pad = false); return 1
|
||||||
case:
|
case:
|
||||||
|
|||||||
Reference in New Issue
Block a user