Compose appended request messages
This commit is contained in:
@@ -59,20 +59,24 @@ func NormalizeCacheControl(control *CacheControl) (*CacheControl, error) {
|
||||
// CloneRenderedMessages returns a deep copy of rendered messages.
|
||||
func CloneRenderedMessages(messages []RenderedMessage) []RenderedMessage {
|
||||
cloned := make([]RenderedMessage, len(messages))
|
||||
for index, message := range messages {
|
||||
cloned[index] = message
|
||||
if message.CacheControl != nil {
|
||||
cacheControl := *message.CacheControl
|
||||
cloned[index].CacheControl = &cacheControl
|
||||
}
|
||||
}
|
||||
copyRenderedMessages(cloned, messages)
|
||||
return cloned
|
||||
}
|
||||
|
||||
// ConcatRenderedMessages returns an independently owned concatenation of messages.
|
||||
func ConcatRenderedMessages(prefix, suffix []RenderedMessage) []RenderedMessage {
|
||||
messages := make([]RenderedMessage, 0, len(prefix)+len(suffix))
|
||||
messages = append(messages, CloneRenderedMessages(prefix)...)
|
||||
messages = append(messages, CloneRenderedMessages(suffix)...)
|
||||
messages := make([]RenderedMessage, len(prefix)+len(suffix))
|
||||
copyRenderedMessages(messages, prefix)
|
||||
copyRenderedMessages(messages[len(prefix):], suffix)
|
||||
return messages
|
||||
}
|
||||
|
||||
func copyRenderedMessages(destination, source []RenderedMessage) {
|
||||
for index, message := range source {
|
||||
destination[index] = message
|
||||
if message.CacheControl != nil {
|
||||
cacheControl := *message.CacheControl
|
||||
destination[index].CacheControl = &cacheControl
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user