processor_equal.go 767 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. package executor
  2. import (
  3. schemepkg "git.buran.team/main/cep/scheme"
  4. )
  5. type EqualProcessor struct {
  6. content []byte
  7. }
  8. func NewEqualProcessor(processorScheme schemepkg.Processor) (*EqualProcessor, error) {
  9. // Normalize
  10. content := processorScheme.KindEqual.Content
  11. if len(content) > 0 && content[len(content)-1] == '\n' {
  12. content = content[:len(content)-1]
  13. }
  14. return &EqualProcessor{
  15. content: []byte(content),
  16. }, nil
  17. }
  18. func (this *EqualProcessor) Process(buffer []byte) bool {
  19. // Normalize
  20. if len(buffer) > 0 && buffer[len(buffer)-1] == '\n' {
  21. buffer = buffer[:len(buffer)-1]
  22. }
  23. // Compare
  24. if len(buffer) != len(this.content) {
  25. return false
  26. }
  27. for i := range buffer {
  28. if buffer[i] != this.content[i] {
  29. return false
  30. }
  31. }
  32. return true
  33. }