Skip to content
Snippets Groups Projects
count_native.go 676 B
Newer Older
  • Learn to ignore specific revisions
  • // Copyright 2018 The Go Authors. All rights reserved.
    // Use of this source code is governed by a BSD-style
    // license that can be found in the LICENSE file.
    
    
    //go:build amd64 || arm || arm64 || loong64 || mips64le || mips64 || ppc64le || ppc64 || riscv64 || s390x
    
    
    package bytealg
    
    //go:noescape
    func Count(b []byte, c byte) int
    
    //go:noescape
    func CountString(s string, c byte) int
    
    // A backup implementation to use by assembly.
    func countGeneric(b []byte, c byte) int {
    	n := 0
    	for _, x := range b {
    		if x == c {
    			n++
    		}
    	}
    	return n
    }
    func countGenericString(s string, c byte) int {
    	n := 0
    	for i := 0; i < len(s); i++ {
    		if s[i] == c {
    			n++
    		}
    	}
    	return n
    }