Skip to content

Latest commit

 

History

History
15 lines (11 loc) · 657 Bytes

DESIGN.md

File metadata and controls

15 lines (11 loc) · 657 Bytes

Design

Including the tskit C code.

We manually copy the source files from the current stable release. We cannot use submodules because the tskit repository contains symbolic links, which causes problems with bindgen.

Key principles

  • Don't reinvent the wheel. If there is a C function in place, call it. Calling existing functions takes advantage of the high test coverage of tskit.
  • Prefer rust idioms where possible. For example, provide iterator types instead of manual next/advance functions. See how NodeIterator works by looking in src/traits.rs and src/trees.ts for an example of a reusable iterator pattern.