1package gobusterfuzz
2
3import (
4	"bytes"
5	"fmt"
6)
7
8// Result represents a single result
9type Result struct {
10	Verbose    bool
11	Found      bool
12	Path       string
13	StatusCode int
14	Size       int64
15}
16
17// ToString converts the Result to it's textual representation
18func (r Result) ResultToString() (string, error) {
19	buf := &bytes.Buffer{}
20
21	// Prefix if we're in verbose mode
22	if r.Verbose {
23		if r.Found {
24			if _, err := fmt.Fprintf(buf, "Found: "); err != nil {
25				return "", err
26			}
27		} else {
28			if _, err := fmt.Fprintf(buf, "Missed: "); err != nil {
29				return "", err
30			}
31		}
32	} else if r.Found {
33		if _, err := fmt.Fprintf(buf, "Found: "); err != nil {
34			return "", err
35		}
36	}
37
38	if _, err := fmt.Fprintf(buf, "[Status=%d] [Length=%d] %s", r.StatusCode, r.Size, r.Path); err != nil {
39		return "", err
40	}
41
42	if _, err := fmt.Fprintf(buf, "\n"); err != nil {
43		return "", err
44	}
45
46	s := buf.String()
47	return s, nil
48}
49