mirror of
				https://github.com/superseriousbusiness/gotosocial.git
				synced 2025-10-31 05:32:25 -05:00 
			
		
		
		
	* start with export/import code * messing about with decoding/encoding * some more fiddling * stuff is WORKING * working pretty alright! * go fmt * fix up tests, add docs * start backup/restore doc * tweaks * credits * update advancedVisibility settings * update bun library -> v1.0.4 Signed-off-by: kim (grufwub) <grufwub@gmail.com> * update oauth library -> v4.3.1-SSB Signed-off-by: kim (grufwub) <grufwub@gmail.com> * handle oauth token scope, fix user.SigninCount + token.UserID Signed-off-by: kim (grufwub) <grufwub@gmail.com> * update oauth library --> v4.3.2-SSB Signed-off-by: kim (grufwub) <grufwub@gmail.com> * update sqlite library -> v1.13.0 Signed-off-by: kim (grufwub) <grufwub@gmail.com> * review changes * start with export/import code * messing about with decoding/encoding * some more fiddling * stuff is WORKING * working pretty alright! * go fmt * fix up tests, add docs * start backup/restore doc * tweaks * credits * update advancedVisibility settings * review changes Co-authored-by: kim (grufwub) <grufwub@gmail.com> Co-authored-by: kim <89579420+NyaaaWhatsUpDoc@users.noreply.github.com>
		
			
				
	
	
		
			50 lines
		
	
	
	
		
			1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
	
		
			1 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| package mapstructure
 | |
| 
 | |
| import (
 | |
| 	"errors"
 | |
| 	"fmt"
 | |
| 	"sort"
 | |
| 	"strings"
 | |
| )
 | |
| 
 | |
| // Error implements the error interface and can represents multiple
 | |
| // errors that occur in the course of a single decode.
 | |
| type Error struct {
 | |
| 	Errors []string
 | |
| }
 | |
| 
 | |
| func (e *Error) Error() string {
 | |
| 	points := make([]string, len(e.Errors))
 | |
| 	for i, err := range e.Errors {
 | |
| 		points[i] = fmt.Sprintf("* %s", err)
 | |
| 	}
 | |
| 
 | |
| 	sort.Strings(points)
 | |
| 	return fmt.Sprintf(
 | |
| 		"%d error(s) decoding:\n\n%s",
 | |
| 		len(e.Errors), strings.Join(points, "\n"))
 | |
| }
 | |
| 
 | |
| // WrappedErrors implements the errwrap.Wrapper interface to make this
 | |
| // return value more useful with the errwrap and go-multierror libraries.
 | |
| func (e *Error) WrappedErrors() []error {
 | |
| 	if e == nil {
 | |
| 		return nil
 | |
| 	}
 | |
| 
 | |
| 	result := make([]error, len(e.Errors))
 | |
| 	for i, e := range e.Errors {
 | |
| 		result[i] = errors.New(e)
 | |
| 	}
 | |
| 
 | |
| 	return result
 | |
| }
 | |
| 
 | |
| func appendErrors(errors []string, err error) []string {
 | |
| 	switch e := err.(type) {
 | |
| 	case *Error:
 | |
| 		return append(errors, e.Errors...)
 | |
| 	default:
 | |
| 		return append(errors, e.Error())
 | |
| 	}
 | |
| }
 |