fn main() { let solver = Solver::new(); let output = Output::new(); let blue_transaction_len = 5; let blue_block = Block::builder().color(blue); let dark_gray_block = Block::builder().color(dark_gray); let log_layer = Layer::builder() .name("LogAPI") .push_entry( Entry::builder() .label("activeTxn: ") .content( Blocks::builder() .push(blue_transaction_len, blue_block.build()) .build(), ) .build(), ) .build(); let other_transactions = [2, 7, 4]; let group_commit_layer = Layer::builder() .name("GroupCommit") .push_entry( Entry::builder() .label("commitedTxn: ") .content( BlockList::builder() .append( other_transactions .iter() // TODO: need collect? .map(|len| Blocks::builder().push(len, dark_gray_block.build())), ) .push(Blocks::builder().push(blue_transaction_len, blue_block.build())) .build(), ) .build(), ) .build(); let disk_log_layer = todo!(); let applier_layer = todo!(); let layers = &[ &log_layer, &group_commit_layer, &disk_log_layer, &applier_layer, ]; constraints::distribute_vertically(solver, layers); constraints::align_left(solver, layers); solver.solve(); output.write_to_stdout(Output::Format::SVG); }