code: func (writer *SpecificDatumWriter) Write(obj interface{}, enc Encoder) error {
  	if writer, ok := obj.(Writer); ok {
  		return writer.Write(enc)
  	}
  
  	rv := reflect.ValueOf(obj)
  
  	if writer.schema == nil {
  		return SchemaNotSet
  	}
  
  	return writer.write(rv, enc, writer.schema)
  }
docs: // Write writes a single Go struct using this SpecificDatumWriter according to provided Schema.
  // Accepts a value to write and Encoder to write to. Field names should match field names in Avro schema but be exported
  // (e.g. "some_value" in Avro schema is expected to be Some_value in struct) or you may provide Go struct tags to
  // explicitly show how to map fields (e.g. if you want to map "some_value" field of type int to SomeValue in Go struct
  // you should define your struct field as follows: SomeValue int32 `avro:"some_field"`).
  // May return an error indicating a write failure.