nativemodel_darwin.go 952 B

1234567891011121314151617181920212223242526272829303132333435
  1. // Copyright (C) 2014 The Protocol Authors.
  2. //go:build darwin
  3. // +build darwin
  4. package protocol
  5. // Darwin uses NFD normalization
  6. import "golang.org/x/text/unicode/norm"
  7. func makeNative(m rawModel) rawModel { return nativeModel{m} }
  8. type nativeModel struct {
  9. rawModel
  10. }
  11. func (m nativeModel) Index(folder string, files []FileInfo) error {
  12. for i := range files {
  13. files[i].Name = norm.NFD.String(files[i].Name)
  14. }
  15. return m.rawModel.Index(folder, files)
  16. }
  17. func (m nativeModel) IndexUpdate(folder string, files []FileInfo) error {
  18. for i := range files {
  19. files[i].Name = norm.NFD.String(files[i].Name)
  20. }
  21. return m.rawModel.IndexUpdate(folder, files)
  22. }
  23. func (m nativeModel) Request(folder, name string, blockNo, size int32, offset int64, hash []byte, weakHash uint32, fromTemporary bool) (RequestResponse, error) {
  24. name = norm.NFD.String(name)
  25. return m.rawModel.Request(folder, name, blockNo, size, offset, hash, weakHash, fromTemporary)
  26. }