github.com/GeniusesGroup/libgo@v0.0.0-20220929090155-5ff932cb408e/protocol/json.go (about)

     1  /* For license and copyright information please see LEGAL file in repository */
     2  
     3  package protocol
     4  
     5  // JSON is the interface that must implement by any struct to be a JSON object.
     6  // Standards by https://www.json.org/json-en.html
     7  type JSON interface {
     8  	// ToJSON encode the struct pointer to JSON format
     9  	// actually payload is a byte slice buffer interface but due to prevent unnecessary memory allocation use simple []byte
    10  	ToJSON(payload []byte) []byte
    11  	// FromJSON decode JSON to the struct pointer
    12  	// actually payload is a byte slice buffer interface but due to prevent unnecessary memory allocation use simple []byte
    13  	FromJSON(payload []byte) (err Error)
    14  
    15  	// LenAsJSON return whole calculated length of JSON encoded of the struct
    16  	LenAsJSON() int
    17  }