ds2api / internal /toolstream /tool_sieve_xml_scan.go
huggeu's picture
Upload 532 files
8d3471e verified
package toolstream
import "ds2api/internal/toolcall"
func findFirstToolMarkupTagByName(s string, start int, name string) (toolcall.ToolMarkupTag, bool) {
return findFirstToolMarkupTagByNameFrom(s, start, name, false)
}
func findFirstToolMarkupTagByNameFrom(s string, start int, name string, closing bool) (toolcall.ToolMarkupTag, bool) {
for pos := maxInt(start, 0); pos < len(s); {
tag, ok := toolcall.FindToolMarkupTagOutsideIgnored(s, pos)
if !ok {
return toolcall.ToolMarkupTag{}, false
}
if tag.Name == name && tag.Closing == closing {
return tag, true
}
pos = tag.End + 1
}
return toolcall.ToolMarkupTag{}, false
}
func maxInt(a, b int) int {
if a > b {
return a
}
return b
}