I think manual three-way comparisons are very clear. But so is strings.Compare. For better or worse, copying code is a pretty normal thing to do in Go. See "A little copying is better than a little dependency." [0]
[0]: https://www.youtube.com/watch?v=PAAkCSZUG1c&t=9m28s&themeRef...