1// Copyright (c) 2020 Denis Tingajkin
2//
3// SPDX-License-Identifier: Apache-2.0
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
17package goheader
18
19type Issue interface {
20	Location() Location
21	Message() string
22}
23
24type issue struct {
25	msg      string
26	location Location
27}
28
29func (i *issue) Location() Location {
30	return i.location
31}
32
33func (i *issue) Message() string {
34	return i.msg
35}
36
37func NewIssueWithLocation(msg string, location Location) Issue {
38	return &issue{
39		msg:      msg,
40		location: location,
41	}
42}
43
44func NewIssue(msg string) Issue {
45	return &issue{
46		msg: msg,
47	}
48}
49