mirror of
https://github.com/stashapp/stash.git
synced 2025-12-18 04:44:37 +03:00
* Update to go 1.19 * Update dependencies * Update cross-compile script * Add missing targets to cross-compile-all * Update cache action to remove warning
36 lines
589 B
Go
36 lines
589 B
Go
package astikit
|
|
|
|
import (
|
|
"bytes"
|
|
"encoding/json"
|
|
"fmt"
|
|
)
|
|
|
|
func JSONEqual(a, b interface{}) bool {
|
|
ba, err := json.Marshal(a)
|
|
if err != nil {
|
|
return false
|
|
}
|
|
bb, err := json.Marshal(b)
|
|
if err != nil {
|
|
return false
|
|
}
|
|
return bytes.Equal(ba, bb)
|
|
}
|
|
|
|
func JSONClone(src, dst interface{}) (err error) {
|
|
// Marshal
|
|
var b []byte
|
|
if b, err = json.Marshal(src); err != nil {
|
|
err = fmt.Errorf("main: marshaling failed: %w", err)
|
|
return
|
|
}
|
|
|
|
// Unmarshal
|
|
if err = json.Unmarshal(b, dst); err != nil {
|
|
err = fmt.Errorf("main: unmarshaling failed: %w", err)
|
|
return
|
|
}
|
|
return
|
|
}
|