1#!/usr/bin/env bash
2
3set -e
4
5echo "Generating SchemeMut from Scheme"
6sed 's/trait Scheme/trait SchemeMut/' scheme.rs \
7| sed 's/\&self/\&mut self/g' \
8> scheme_mut.rs
9
10echo "Generating SchemeBlock from Scheme"
11sed 's/trait Scheme/trait SchemeBlock/' scheme.rs \
12| sed 's/fn handle(\&self, packet: \&mut Packet)/fn handle(\&self, packet: \&Packet) -> Option<usize>/' \
13| sed 's/packet.a = Error::mux(res);/res.transpose().map(Error::mux)/' \
14| sed 's/Result<usize>/Result<Option<usize>>/g' \
15> scheme_block.rs
16
17echo "Generating SchemeBlockMut from SchemeBlock"
18sed 's/trait SchemeBlock/trait SchemeBlockMut/' scheme_block.rs \
19| sed 's/\&self/\&mut self/g' \
20> scheme_block_mut.rs
21