code: func (tofu Tofu) Render(wr io.Writer, name string, obj interface{}) error {
  	var m data.Map
  	if obj != nil {
  		var ok bool
  		m, ok = data.New(obj).(data.Map)
  		if !ok {
  			return fmt.Errorf("invalid data type. expected map/struct, got %T", obj)
  		}
  	}
  	return tofu.NewRenderer(name).Execute(wr, m)
  }
docs: // Render is a convenience function that executes the soy template of the given
  // name, using the given object (converted to data.Map) as context, and writes
  // the results to the given Writer.
  //
  // When converting structs to soy's data format, the DefaultStructOptions are
  // used. In particular, note that struct properties are converted to lowerCamel
  // by default, since that is the Soy naming convention. The caller may update
  // those options to change the behavior of this function.