Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Showing 3 changed files with 5 additions and 5 deletions.
| @@ -326,7 +326,7 @@ pub struct GenomeAnswer { | ||
| 326 | 326 | /// when there's no Genome yet. |
| 327 | 327 | pub written: Option<u64>, |
| 328 | 328 | /// The map, unless it's unchanged since the client's or missing. |
| 329 | - pub genome: Option<crate::genome::Genome>, | |
| 329 | + pub genome: Option<Box<crate::genome::Genome>>, | |
| 330 | 330 | /// It's the one the client has. |
| 331 | 331 | pub unchanged: bool, |
| 332 | 332 | pub error: Option<String>, |
| @@ -1134,7 +1134,7 @@ mod tests { | ||
| 1134 | 1134 | edges: Vec::new(), |
| 1135 | 1135 | layout: vec![(0.5, 0.5)], |
| 1136 | 1136 | }; |
| 1137 | - let answer = GenomeAnswer { written: Some(42), genome: Some(genome), ..GenomeAnswer::default() }; | |
| 1137 | + let answer = GenomeAnswer { written: Some(42), genome: Some(Box::new(genome)), ..GenomeAnswer::default() }; | |
| 1138 | 1138 | let text = serde_json::to_string(&ServerMessage::GenomeReply { request: 3, answer: answer.clone() }).unwrap(); |
| 1139 | 1139 | match serde_json::from_str::<ServerMessage>(&text).unwrap() { |
| 1140 | 1140 | ServerMessage::GenomeReply { request: 3, answer: received } => assert_eq!(received, answer), |
| @@ -156,7 +156,7 @@ impl Workspace { | ||
| 156 | 156 | let read = cx.background_executor().spawn(async move { |
| 157 | 157 | let written = genome::written_at(&cwd); |
| 158 | 158 | match genome::load(&cwd) { |
| 159 | - Ok(genome) => GenomeAnswer { written, genome, ..GenomeAnswer::default() }, | |
| 159 | + Ok(genome) => GenomeAnswer { written, genome: genome.map(Box::new), ..GenomeAnswer::default() }, | |
| 160 | 160 | Err(err) => GenomeAnswer { written, error: Some(format!("{err:#}")), ..GenomeAnswer::default() }, |
| 161 | 161 | } |
| 162 | 162 | }); |
| @@ -216,7 +216,7 @@ impl Workspace { | ||
| 216 | 216 | panel.hovered = None; |
| 217 | 217 | panel.load = match (answer.error, answer.genome) { |
| 218 | 218 | (Some(error), _) => GenomeLoad::Failed(error), |
| 219 | - (None, Some(genome)) => GenomeLoad::Ready(Arc::new(genome)), | |
| 219 | + (None, Some(genome)) => GenomeLoad::Ready(Arc::new(*genome)), | |
| 220 | 220 | (None, None) => GenomeLoad::Missing, |
| 221 | 221 | }; |
| 222 | 222 | cx.notify(); |
| @@ -659,7 +659,7 @@ impl Workspace { | ||
| 659 | 659 | return GenomeAnswer { written, unchanged: true, ..GenomeAnswer::default() }; |
| 660 | 660 | } |
| 661 | 661 | match crate::genome::load(&cwd) { |
| 662 | - Ok(genome) => GenomeAnswer { written, genome, ..GenomeAnswer::default() }, | |
| 662 | + Ok(genome) => GenomeAnswer { written, genome: genome.map(Box::new), ..GenomeAnswer::default() }, | |
| 663 | 663 | Err(err) => GenomeAnswer { written, error: Some(format!("{err:#}")), ..GenomeAnswer::default() }, |
| 664 | 664 | } |
| 665 | 665 | }); |