Major integrations and fixes: - Added BACKBEAT SDK integration for P2P operation timing - Implemented beat-aware status tracking for distributed operations - Added Docker secrets support for secure license management - Resolved KACHING license validation via HTTPS/TLS - Updated docker-compose configuration for clean stack deployment - Disabled rollback policies to prevent deployment failures - Added license credential storage (CHORUS-DEV-MULTI-001) Technical improvements: - BACKBEAT P2P operation tracking with phase management - Enhanced configuration system with file-based secrets - Improved error handling for license validation - Clean separation of KACHING and CHORUS deployment stacks 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
35 lines
647 B
Go
35 lines
647 B
Go
package snowballstem
|
|
|
|
import (
|
|
"math"
|
|
"unicode/utf8"
|
|
)
|
|
|
|
const MaxInt = math.MaxInt32
|
|
const MinInt = math.MinInt32
|
|
|
|
func splitAt(str string, mid int) (string, string) {
|
|
return str[:mid], str[mid:]
|
|
}
|
|
|
|
func min(a, b int) int {
|
|
if a < b {
|
|
return a
|
|
}
|
|
return b
|
|
}
|
|
|
|
func onCharBoundary(s string, pos int) bool {
|
|
if pos <= 0 || pos >= len(s) {
|
|
return true
|
|
}
|
|
return utf8.RuneStart(s[pos])
|
|
}
|
|
|
|
// RuneCountInString is a wrapper around utf8.RuneCountInString
|
|
// this allows us to not have to conditionally include
|
|
// the utf8 package into some stemmers and not others
|
|
func RuneCountInString(str string) int {
|
|
return utf8.RuneCountInString(str)
|
|
}
|