• Show log

    Commit

  • Hash : ef1395f3
    Author : Patrick Steinhardt
    Date : 2017-11-11T15:30:43

    parse: extract parse module
    
    The `git_patch_parse_ctx` encapsulates both parser state as well as
    options specific to patch parsing. To advance this state and keep it
    consistent, we provide a few functions which handle advancing the
    current position and accessing bytes of the patch contents. In fact,
    these functions are quite generic and not related to patch-parsing by
    themselves. Seeing that we have similar logic inside of other modules,
    it becomes quite enticing to extract this functionality into its own
    parser module.
    
    To do so, we create a new module `parse` with a central struct called
    `git_parse_ctx`. It encapsulates both the content that is to be parsed
    as well as its lengths and the current position. `git_patch_parse_ctx`
    now only contains this `parse_ctx` only, which is then accessed whenever
    we need to touch the current parser. This is the first step towards
    re-using this functionality across other modules which require parsing
    functionality and remove code-duplication.