attributes_test.go 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. /*
  2. *
  3. * Copyright 2019 gRPC authors.
  4. *
  5. * Licensed under the Apache License, Version 2.0 (the "License");
  6. * you may not use this file except in compliance with the License.
  7. * You may obtain a copy of the License at
  8. *
  9. * http://www.apache.org/licenses/LICENSE-2.0
  10. *
  11. * Unless required by applicable law or agreed to in writing, software
  12. * distributed under the License is distributed on an "AS IS" BASIS,
  13. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  14. * See the License for the specific language governing permissions and
  15. * limitations under the License.
  16. *
  17. */
  18. package attributes_test
  19. import (
  20. "fmt"
  21. "google.golang.org/grpc/attributes"
  22. )
  23. func ExampleAttributes() {
  24. type keyOne struct{}
  25. type keyTwo struct{}
  26. a := attributes.New(keyOne{}, 1, keyTwo{}, "two")
  27. fmt.Println("Key one:", a.Value(keyOne{}))
  28. fmt.Println("Key two:", a.Value(keyTwo{}))
  29. // Output:
  30. // Key one: 1
  31. // Key two: two
  32. }
  33. func ExampleAttributes_WithValues() {
  34. type keyOne struct{}
  35. type keyTwo struct{}
  36. a := attributes.New(keyOne{}, 1)
  37. a = a.WithValues(keyTwo{}, "two")
  38. fmt.Println("Key one:", a.Value(keyOne{}))
  39. fmt.Println("Key two:", a.Value(keyTwo{}))
  40. // Output:
  41. // Key one: 1
  42. // Key two: two
  43. }