Like Prometheus, but for logs.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
loki/vendor/github.com/d4l3k/messagediff
Owen Diehl f861068df4
moves boomfilters lib into loki (#10898)
2 years ago
..
.coveralls.yml moves boomfilters lib into loki (#10898) 2 years ago
.gitignore moves boomfilters lib into loki (#10898) 2 years ago
.travis.yml moves boomfilters lib into loki (#10898) 2 years ago
CHANGELOG.md moves boomfilters lib into loki (#10898) 2 years ago
LICENSE moves boomfilters lib into loki (#10898) 2 years ago
README.md moves boomfilters lib into loki (#10898) 2 years ago
bypass.go moves boomfilters lib into loki (#10898) 2 years ago
bypasssafe.go moves boomfilters lib into loki (#10898) 2 years ago
messagediff.go moves boomfilters lib into loki (#10898) 2 years ago

README.md

messagediff Build Status Coverage Status GoDoc

A library for doing diffs of arbitrary Golang structs.

If the unsafe package is available messagediff will diff unexported fields in addition to exported fields. This is primarily used for testing purposes as it allows for providing informative error messages.

Optionally, fields in structs can be tagged as testdiff:"ignore" to make messagediff skip it when doing the comparison.

Example Usage

In a normal file:

package main

import "gopkg.in/d4l3k/messagediff.v1"

type someStruct struct {
    A, b int
    C []int
}

func main() {
    a := someStruct{1, 2, []int{1}}
    b := someStruct{1, 3, []int{1, 2}}
    diff, equal := messagediff.PrettyDiff(a, b)
    /*
        diff =
        `added: .C[1] = 2
        modified: .b = 3`

        equal = false
    */
}

In a test:

import "gopkg.in/d4l3k/messagediff.v1"

...

type someStruct struct {
    A, b int
    C []int
}

func TestSomething(t *testing.T) {
    want := someStruct{1, 2, []int{1}}
    got := someStruct{1, 3, []int{1, 2}}
    if diff, equal := messagediff.PrettyDiff(want, got); !equal {
        t.Errorf("Something() = %#v\n%s", got, diff)
    }
}

To ignore a field in a struct, just annotate it with testdiff:"ignore" like this:

package main

import "gopkg.in/d4l3k/messagediff.v1"

type someStruct struct {
    A int
    B int `testdiff:"ignore"`
}

func main() {
    a := someStruct{1, 2}
    b := someStruct{1, 3}
    diff, equal := messagediff.PrettyDiff(a, b)
    /*
        equal = true
        diff = ""
    */
}

See the DeepDiff function for using the diff results programmatically.

License

Copyright (c) 2015 Tristan Rice rice@fn.lc

messagediff is licensed under the MIT license. See the LICENSE file for more information.

bypass.go and bypasssafe.go are borrowed from go-spew and have a seperate copyright notice.