package store import ( "database/sql" "errors" "fmt" "time" ) func IsNotFound(err error) bool { return errors.Is(err, sql.ErrNoRows) } func boolInt(v bool) int { if v { return 1 } return 0 } func SlugFromTitle(title string) string { out := make([]rune, 0, len(title)) lastDash := false for _, r := range title { if r >= 'A' && r <= 'Z' { r += 'a' - 'A' } if (r >= 'a' && r <= 'z') || (r >= '0' && r <= '9') { out = append(out, r) lastDash = false continue } if !lastDash && len(out) > 0 { out = append(out, '-') lastDash = true } } for len(out) > 0 && out[len(out)-1] == '-' { out = out[:len(out)-1] } if len(out) == 0 { return fmt.Sprintf("project-%d", time.Now().Unix()) } return string(out) }