copyTask 深拷贝任务
(task *Task)
| 132 | |
| 133 | // copyTask 深拷贝任务 |
| 134 | func copyTask(task *Task) *Task { |
| 135 | if task == nil { |
| 136 | return nil |
| 137 | } |
| 138 | |
| 139 | // 拷贝基本字段 |
| 140 | copied := &Task{ |
| 141 | ID: task.ID, |
| 142 | ContextID: task.ContextID, |
| 143 | Status: TaskStatus{ |
| 144 | State: task.Status.State, |
| 145 | Timestamp: task.Status.Timestamp, |
| 146 | }, |
| 147 | Kind: task.Kind, |
| 148 | } |
| 149 | |
| 150 | // 拷贝 Status.Message |
| 151 | if task.Status.Message != nil { |
| 152 | msg := *task.Status.Message |
| 153 | copied.Status.Message = &msg |
| 154 | } |
| 155 | |
| 156 | // 拷贝 History |
| 157 | if task.History != nil { |
| 158 | copied.History = make([]Message, len(task.History)) |
| 159 | copy(copied.History, task.History) |
| 160 | } |
| 161 | |
| 162 | // 拷贝 Artifacts |
| 163 | if task.Artifacts != nil { |
| 164 | copied.Artifacts = make([]Artifact, len(task.Artifacts)) |
| 165 | copy(copied.Artifacts, task.Artifacts) |
| 166 | } |
| 167 | |
| 168 | // 拷贝 Metadata |
| 169 | if task.Metadata != nil { |
| 170 | copied.Metadata = make(Metadata) |
| 171 | maps.Copy(copied.Metadata, task.Metadata) |
| 172 | } |
| 173 | |
| 174 | return copied |
| 175 | } |