github.com/switchupcb/yaegi@v0.10.2/_test/issue-1010.go (about)

     1  package main
     2  
     3  import (
     4  	"encoding/json"
     5  	"fmt"
     6  )
     7  
     8  type MyJsonMarshaler struct{ n int }
     9  
    10  func (m MyJsonMarshaler) MarshalJSON() ([]byte, error) {
    11  	return []byte(fmt.Sprintf(`{"num": %d}`, m.n)), nil
    12  }
    13  
    14  func main() {
    15  	ch := make(chan json.Marshaler, 1)
    16  	ch <- MyJsonMarshaler{2}
    17  	m, err := json.Marshal(<-ch)
    18  	fmt.Println(string(m), err)
    19  }
    20  
    21  // Output:
    22  // {"num":2} <nil>