MCPcopy Create free account
hub / github.com/Permify/permify / AnyToString

Function AnyToString

pkg/attribute/attribute.go:205–275  ·  view source on GitHub ↗

AnyToString function takes an Any proto message and converts it into a string.

(any *anypb.Any)

Source from the content-addressed store, hash-verified

203
204// AnyToString function takes an Any proto message and converts it into a string.
205func AnyToString(any *anypb.Any) string {
206 var str string
207
208 // Convert the Any proto message into string based on its TypeUrl
209 switch any.TypeUrl {
210 case "type.googleapis.com/base.v1.BooleanValue":
211 boolVal := &base.BooleanValue{}
212 if err := any.UnmarshalTo(boolVal); err != nil {
213 return "undefined"
214 }
215 str = strconv.FormatBool(boolVal.Data)
216 case "type.googleapis.com/base.v1.BooleanArrayValue":
217 boolVal := &base.BooleanArrayValue{}
218 if err := any.UnmarshalTo(boolVal); err != nil {
219 return "undefined"
220 }
221 var strs []string
222 for _, b := range boolVal.GetData() {
223 strs = append(strs, strconv.FormatBool(b))
224 }
225 str = strings.Join(strs, ",")
226 case "type.googleapis.com/base.v1.StringValue":
227 stringVal := &base.StringValue{}
228 if err := any.UnmarshalTo(stringVal); err != nil {
229 return "undefined"
230 }
231 str = stringVal.Data
232 case "type.googleapis.com/base.v1.StringArrayValue":
233 stringVal := &base.StringArrayValue{}
234 if err := any.UnmarshalTo(stringVal); err != nil {
235 return "undefined"
236 }
237 str = strings.Join(stringVal.GetData(), ",") // Join string array
238 case "type.googleapis.com/base.v1.DoubleValue":
239 doubleVal := &base.DoubleValue{}
240 if err := any.UnmarshalTo(doubleVal); err != nil {
241 return "undefined"
242 }
243 str = strconv.FormatFloat(doubleVal.Data, 'f', -1, 64)
244 case "type.googleapis.com/base.v1.DoubleArrayValue":
245 doubleVal := &base.DoubleArrayValue{}
246 if err := any.UnmarshalTo(doubleVal); err != nil {
247 return "undefined"
248 }
249 var strs []string
250 for _, v := range doubleVal.GetData() {
251 strs = append(strs, strconv.FormatFloat(v, 'f', -1, 64))
252 }
253 str = strings.Join(strs, ",")
254 case "type.googleapis.com/base.v1.IntegerValue":
255 intVal := &base.IntegerValue{}
256 if err := any.UnmarshalTo(intVal); err != nil {
257 return "undefined"
258 }
259 str = strconv.Itoa(int(intVal.Data))
260 case "type.googleapis.com/base.v1.IntegerArrayValue":
261 intVal := &base.IntegerArrayValue{}
262 if err := any.UnmarshalTo(intVal); err != nil {

Callers 2

ToStringFunction · 0.85
attribute_test.goFile · 0.85

Calls 4

GetDataMethod · 0.95
GetDataMethod · 0.95
GetDataMethod · 0.95
GetDataMethod · 0.95

Tested by

no test coverage detected