@@ -513,22 +513,22 @@ impl Project<Message<PrepareHeader>> for Message<RequestHeader> {
513513 fn project ( self , consensus : & Self :: Consensus ) -> Message < PrepareHeader > {
514514 let op = consensus. sequencer . current_sequence ( ) + 1 ;
515515
516- self . replace_header ( |prev | {
517- PrepareHeader {
516+ self . transmute_header ( |old , new | {
517+ * new = PrepareHeader {
518518 cluster : consensus. cluster ,
519- size : prev . size ,
519+ size : old . size ,
520520 epoch : 0 ,
521521 view : consensus. view . get ( ) ,
522- release : prev . release ,
522+ release : old . release ,
523523 command : Command2 :: Prepare ,
524524 replica : consensus. replica ,
525525 parent : 0 , // TODO: Get parent checksum from the previous entry in the journal (figure out how to pass that ctx here)
526- request_checksum : prev . request_checksum ,
527- request : prev . request ,
526+ request_checksum : old . request_checksum ,
527+ request : old . request ,
528528 commit : consensus. commit . get ( ) ,
529529 op,
530530 timestamp : 0 , // 0 for now. Implement correct way to get timestamp later
531- operation : prev . operation ,
531+ operation : old . operation ,
532532 ..Default :: default ( )
533533 }
534534 } )
@@ -537,25 +537,26 @@ impl Project<Message<PrepareHeader>> for Message<RequestHeader> {
537537
538538impl Project < Message < PrepareOkHeader > > for Message < PrepareHeader > {
539539 type Consensus = VsrConsensus ;
540+
540541 fn project ( self , consensus : & Self :: Consensus ) -> Message < PrepareOkHeader > {
541- self . replace_header ( |prev | {
542- PrepareOkHeader {
542+ self . transmute_header ( |old , new | {
543+ * new = PrepareOkHeader {
543544 command : Command2 :: PrepareOk ,
544- parent : prev . parent ,
545- prepare_checksum : prev . checksum ,
546- request : prev . request ,
545+ parent : old . parent ,
546+ prepare_checksum : old . checksum ,
547+ request : old . request ,
547548 cluster : consensus. cluster ,
548549 replica : consensus. replica ,
549550 epoch : 0 , // TODO: consensus.epoch
550551 // It's important to use the view of the replica, not the received prepare!
551552 view : consensus. view . get ( ) ,
552- op : prev . op ,
553+ op : old . op ,
553554 commit : consensus. commit . get ( ) ,
554- timestamp : prev . timestamp ,
555- operation : prev . operation ,
555+ timestamp : old . timestamp ,
556+ operation : old . operation ,
556557 // PrepareOks are only header no body
557558 ..Default :: default ( )
558- }
559+ } ;
559560 } )
560561 }
561562}
0 commit comments