GoPLS Viewer

Home|gopls/internal/apidiff/report.go
1// Copyright 2019 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5package apidiff
6
7import (
8    "bytes"
9    "fmt"
10    "io"
11)
12
13// Report describes the changes detected by Changes.
14type Report struct {
15    Changes []Change
16}
17
18// A Change describes a single API change.
19type Change struct {
20    Message    string
21    Compatible bool
22}
23
24func (r Reportmessages(compatible bool) []string {
25    var msgs []string
26    for _c := range r.Changes {
27        if c.Compatible == compatible {
28            msgs = append(msgsc.Message)
29        }
30    }
31    return msgs
32}
33
34func (r ReportString() string {
35    var buf bytes.Buffer
36    if err := r.Text(&buf); err != nil {
37        return fmt.Sprintf("!!%v"err)
38    }
39    return buf.String()
40}
41
42func (r ReportText(w io.Writererror {
43    if err := r.TextIncompatible(wtrue); err != nil {
44        return err
45    }
46    return r.TextCompatible(w)
47}
48
49func (r ReportTextIncompatible(w io.WriterwithHeader boolerror {
50    if withHeader {
51        return r.writeMessages(w"Incompatible changes:"r.messages(false))
52    }
53    return r.writeMessages(w""r.messages(false))
54}
55
56func (r ReportTextCompatible(w io.Writererror {
57    return r.writeMessages(w"Compatible changes:"r.messages(true))
58}
59
60func (r ReportwriteMessages(w io.Writerheader stringmsgs []stringerror {
61    if len(msgs) == 0 {
62        return nil
63    }
64    if header != "" {
65        if _err := fmt.Fprintf(w"%s\n"header); err != nil {
66            return err
67        }
68    }
69    for _m := range msgs {
70        if _err := fmt.Fprintf(w"- %s\n"m); err != nil {
71            return err
72        }
73    }
74    return nil
75}
76
MembersX
Report.TextCompatible.r
Report.writeMessages.BlockStmt.err
Report
Report.String.r
Report.String.buf
Report.TextIncompatible
Report.TextIncompatible.withHeader
Report.messages.compatible
Report.messages.msgs
Report.TextIncompatible.w
Report.writeMessages.r
Report.writeMessages
Report.writeMessages.msgs
Report.writeMessages.RangeStmt_1459.m
Report.Changes
Report.messages.RangeStmt_483.c
Report.Text.r
Report.Text.w
Report.TextCompatible.w
Report.writeMessages.RangeStmt_1459.BlockStmt.err
io
Change.Compatible
Report.messages
Report.TextCompatible
Report.writeMessages.w
Report.writeMessages.RangeStmt_1459.BlockStmt._
Change
Report.String.err
Report.Text
Report.Text.err
Report.writeMessages.BlockStmt._
bytes
Change.Message
Report.TextIncompatible.r
Report.writeMessages.header
Report.messages.r
Report.String
Members
X