-
Notifications
You must be signed in to change notification settings - Fork 9
/
task.go
38 lines (31 loc) · 908 Bytes
/
task.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
// Copyright 2022 Namespace Labs Inc; All rights reserved.
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
package tasks
import (
"encoding/json"
"google.golang.org/protobuf/proto"
"google.golang.org/protobuf/reflect/protoregistry"
)
var (
TaskOutputTextLog = Output("text.log", "text/plain")
)
type ProtoResolver interface {
protoregistry.ExtensionTypeResolver
protoregistry.MessageTypeResolver
}
func TryProtoAsJson(pr ProtoResolver, msg proto.Message, multiline bool) ([]byte, error) {
// XXX Need to rethink how we handle serialized any protos.
//
// if pr != nil {
// body, err := (protojson.MarshalOptions{
// UseProtoNames: true,
// Multiline: multiline,
// Resolver: pr,
// }).Marshal(msg)
// if err == nil {
// return body, nil
// }
// }
return json.Marshal(msg)
}