aboutsummaryrefslogtreecommitdiffhomepage
path: root/vendor/github.com/hashicorp/terraform/tfdiags/rpc_friendly.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/hashicorp/terraform/tfdiags/rpc_friendly.go')
-rw-r--r--vendor/github.com/hashicorp/terraform/tfdiags/rpc_friendly.go53
1 files changed, 53 insertions, 0 deletions
diff --git a/vendor/github.com/hashicorp/terraform/tfdiags/rpc_friendly.go b/vendor/github.com/hashicorp/terraform/tfdiags/rpc_friendly.go
new file mode 100644
index 0000000..6cc95cc
--- /dev/null
+++ b/vendor/github.com/hashicorp/terraform/tfdiags/rpc_friendly.go
@@ -0,0 +1,53 @@
1package tfdiags
2
3import (
4 "encoding/gob"
5)
6
7type rpcFriendlyDiag struct {
8 Severity_ Severity
9 Summary_ string
10 Detail_ string
11 Subject_ *SourceRange
12 Context_ *SourceRange
13}
14
15// rpcFriendlyDiag transforms a given diagnostic so that is more friendly to
16// RPC.
17//
18// In particular, it currently returns an object that can be serialized and
19// later re-inflated using gob. This definition may grow to include other
20// serializations later.
21func makeRPCFriendlyDiag(diag Diagnostic) Diagnostic {
22 desc := diag.Description()
23 source := diag.Source()
24 return &rpcFriendlyDiag{
25 Severity_: diag.Severity(),
26 Summary_: desc.Summary,
27 Detail_: desc.Detail,
28 Subject_: source.Subject,
29 Context_: source.Context,
30 }
31}
32
33func (d *rpcFriendlyDiag) Severity() Severity {
34 return d.Severity_
35}
36
37func (d *rpcFriendlyDiag) Description() Description {
38 return Description{
39 Summary: d.Summary_,
40 Detail: d.Detail_,
41 }
42}
43
44func (d *rpcFriendlyDiag) Source() Source {
45 return Source{
46 Subject: d.Subject_,
47 Context: d.Context_,
48 }
49}
50
51func init() {
52 gob.Register((*rpcFriendlyDiag)(nil))
53}