mirror of
				https://source.quilibrium.com/quilibrium/ceremonyclient.git
				synced 2025-11-04 03:07:28 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			41 lines
		
	
	
		
			750 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			750 B
		
	
	
	
		
			Go
		
	
	
	
	
	
package routing
 | 
						|
 | 
						|
import (
 | 
						|
	"encoding/json"
 | 
						|
 | 
						|
	"github.com/libp2p/go-libp2p/core/peer"
 | 
						|
)
 | 
						|
 | 
						|
func (qe *QueryEvent) MarshalJSON() ([]byte, error) {
 | 
						|
	return json.Marshal(map[string]interface{}{
 | 
						|
		"ID":        qe.ID.String(),
 | 
						|
		"Type":      int(qe.Type),
 | 
						|
		"Responses": qe.Responses,
 | 
						|
		"Extra":     qe.Extra,
 | 
						|
	})
 | 
						|
}
 | 
						|
 | 
						|
func (qe *QueryEvent) UnmarshalJSON(b []byte) error {
 | 
						|
	temp := struct {
 | 
						|
		ID        string
 | 
						|
		Type      int
 | 
						|
		Responses []*peer.AddrInfo
 | 
						|
		Extra     string
 | 
						|
	}{}
 | 
						|
	err := json.Unmarshal(b, &temp)
 | 
						|
	if err != nil {
 | 
						|
		return err
 | 
						|
	}
 | 
						|
	if len(temp.ID) > 0 {
 | 
						|
		pid, err := peer.Decode(temp.ID)
 | 
						|
		if err != nil {
 | 
						|
			return err
 | 
						|
		}
 | 
						|
		qe.ID = pid
 | 
						|
	}
 | 
						|
	qe.Type = QueryEventType(temp.Type)
 | 
						|
	qe.Responses = temp.Responses
 | 
						|
	qe.Extra = temp.Extra
 | 
						|
	return nil
 | 
						|
}
 |