scalar.go 965 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. // License: GPLv3 Copyright: 2024, Kovid Goyal, <kovid at kovidgoyal.net>
  2. package simdstring
  3. func index_byte_scalar(data []byte, b byte) int {
  4. for i, ch := range data {
  5. if ch == b {
  6. return i
  7. }
  8. }
  9. return -1
  10. }
  11. func index_byte_string_scalar(data string, b byte) int {
  12. for i := 0; i < len(data); i++ {
  13. if data[i] == b {
  14. return i
  15. }
  16. }
  17. return -1
  18. }
  19. func index_byte2_scalar(data []byte, a, b byte) int {
  20. for i, ch := range data {
  21. switch ch {
  22. case a, b:
  23. return i
  24. }
  25. }
  26. return -1
  27. }
  28. func index_byte2_string_scalar(data string, a, b byte) int {
  29. for i := 0; i < len(data); i++ {
  30. switch data[i] {
  31. case a, b:
  32. return i
  33. }
  34. }
  35. return -1
  36. }
  37. func index_c0_scalar(data []byte) int {
  38. for i := 0; i < len(data); i++ {
  39. if data[i] == 0x7f || data[i] < ' ' {
  40. return i
  41. }
  42. }
  43. return -1
  44. }
  45. func index_c0_string_scalar(data string) int {
  46. for i := 0; i < len(data); i++ {
  47. if data[i] == 0x7f || data[i] < ' ' {
  48. return i
  49. }
  50. }
  51. return -1
  52. }