package harfbuzz

import (
	

	
)

type langTag struct {
	language string
	tag      tables.Tag
}

// return -1 if `a` < `l`
func ( *langTag) ( string) int {
	 := .language

	 := strings.IndexByte(, '-')
	// da := len(a)
	if  != -1 {
		// da = p
		 = [:]
	}

	 = strings.IndexByte(, '-')
	// db := len(b)
	if  != -1 {
		// db = p
		 = [:]
	}
	// L := min(min(len(a), len(b)), max(da, db))
	return strings.Compare(, )
}

func bfindLanguage( string) int {
	,  := 0, len(otLanguages)
	for  <=  {
		 := ( + ) / 2
		 := &otLanguages[]
		 := .compare()
		if  < 0 {
			 =  - 1
		} else if  > 0 {
			 =  + 1
		} else {
			return 
		}
	}
	return -1
}

func subtagMatches( string,  string) bool {
	 := len()
	if len() <  {
		return false
	}

	for {
		 := strings.Index(, )
		if  == -1 {
			return false
		}
		if + >= len() || !isAlnum([+]) {
			return true
		}
		 = [+:]
	}
}

func langMatches(,  string) bool {
	 := len()
	return strings.HasPrefix(, ) && (len() ==  || [] == '-')
}