Closed LyndonGingerich closed 1 year ago
Tagging @marner2 in case he gets bored.
FieldConverter.MessageFieldConverter.writeMergingCode
looks like the relevant function:
let writeMergingCode (field: Field, containingType: Message) (ctx: FileContext) =
let propName = propertyName (containingType, field)
let propCheck = hasPropertyCheck (ctx, containingType, field, "other")
ctx.Writer.WriteLines [
$"if {propCheck}"
$"then"
]
ctx.Writer.Indent()
ctx.Writer.WriteLines [
$"if me.{propName}.IsNone"
$"then me.{propName} <- ValueSome({typeNameWithoutOption (ctx, field)}.empty())"
$"(me.{propName}.Value :> global.Google.Protobuf.IMessage<{typeNameWithoutOption (ctx, field)}>).MergeFrom(other.{propName}.Value)"
]
ctx.Writer.Outdent()
I see nothing here about MergeOptions
.
I don't yet know how FieldMask.MergeOptions
normally works, so I'll keep searching for an example, though I'm finding the search difficult.
I got more information. I think I was barking up the wrong tree by trying to modify code generation.
Is it currently possible to use FieldMask.MergeOptions to modify the behavior of the
MergeFrom
members generated? I am particularly interested in ReplaceRepeatedFields.