pub fn optimise(
records: &[SequenceRecord],
selected: &[CoreSelection],
preparation: &[Preparation],
topology: Topology,
overlap: usize,
constraints: &PrimerConstraints,
) -> Result<OptimisedGibson, GibsonError>pub fn optimise(
records: &[SequenceRecord],
selected: &[CoreSelection],
preparation: &[Preparation],
topology: Topology,
overlap: usize,
constraints: &PrimerConstraints,
) -> Result<OptimisedGibson, GibsonError>