code: func (s *Scheme) AddKnownTypeWithName(gvk unversioned.GroupVersionKind, obj interface{}) {
  	t := reflect.TypeOf(obj)
  	if t.Kind() != reflect.Ptr {
  		panic("All types must be pointers to structs.")
  	}
  	t = t.Elem()
  	if t.Kind() != reflect.Struct {
  		panic("All types must be pointers to structs.")
  	}
  
  	s.gvkToType[gvk] = t
  	s.typeToGVK[t] = append(s.typeToGVK[t], gvk)
  
  }
docs: // AddKnownTypeWithName is like AddKnownTypes, but it lets you specify what this type should
  // be encoded as. Useful for testing when you don't want to make multiple packages to define
  // your structs.