All functions:
  Elements:
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Instant::now
      Src: /src/semver-parser/tests/genpest.rs:22,1
    - Dst: parse::<proc_macro2::TokenStream>
      Src: /src/semver-parser/tests/genpest.rs:26,1
    - Dst: unwrap
      Src: /src/semver-parser/tests/genpest.rs:26,1
    - Dst: pest_generator::derive_parser
      Src: /src/semver-parser/tests/genpest.rs:37,1
    - Dst: into
      Src: /src/semver-parser/tests/genpest.rs:37,1
    - Dst: fs::read
      Src: /src/semver-parser/tests/genpest.rs:43,1
    - Dst: unwrap_or_default
      Src: /src/semver-parser/tests/genpest.rs:43,1
    - Dst: String::from_utf8
      Src: /src/semver-parser/tests/genpest.rs:44,1
    - Dst: unwrap
      Src: /src/semver-parser/tests/genpest.rs:44,1
    - Dst: normalize
      Src: /src/semver-parser/tests/genpest.rs:48,1
    - Dst: len
      Src: /src/semver-parser/tests/genpest.rs:48,1
    - Dst: normalize
      Src: /src/semver-parser/tests/genpest.rs:49,1
    - Dst: to_string
      Src: /src/semver-parser/tests/genpest.rs:49,1
    - Dst: Instant::now
      Src: /src/semver-parser/tests/genpest.rs:61,1
    - Dst: reformat
      Src: /src/semver-parser/tests/genpest.rs:62,1
    - Dst: to_string
      Src: /src/semver-parser/tests/genpest.rs:62,1
    - Dst: fs::write
      Src: /src/semver-parser/tests/genpest.rs:68,1
    - Dst: unwrap
      Src: /src/semver-parser/tests/genpest.rs:68,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 42
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 70
      start: 21
    functionDepth: 1
    functionLinenumber: 21
    functionLinenumberEnd: 70
    functionName: generated_code_is_fresh
    functionSourceFile: /src/semver-parser/tests/genpest.rs
    functionUses: 0
    functionsReached:
    - len
    - normalize
    - unwrap_or_default
    - fs::read
    - fs::write
    - into
    - parse::<proc_macro2::TokenStream>
    - reformat
    - Instant::now
    - unwrap
    - to_string
    - pest_generator::derive_parser
    - String::from_utf8
    linkageType: ''
    returnType: void
    signature: fn generated_code_is_fresh()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Command::new
      Src: /src/semver-parser/tests/genpest.rs:73,1
    - Dst: Result::args
      Src: /src/semver-parser/tests/genpest.rs:73,1
    - Dst: stdin
      Src: /src/semver-parser/tests/genpest.rs:73,1
    - Dst: Stdio::piped
      Src: /src/semver-parser/tests/genpest.rs:75,1
    - Dst: stdout
      Src: /src/semver-parser/tests/genpest.rs:73,1
    - Dst: Stdio::piped
      Src: /src/semver-parser/tests/genpest.rs:76,1
    - Dst: spawn
      Src: /src/semver-parser/tests/genpest.rs:73,1
    - Dst: unwrap
      Src: /src/semver-parser/tests/genpest.rs:73,1
    - Dst: take
      Src: /src/semver-parser/tests/genpest.rs:80,1
    - Dst: unwrap
      Src: /src/semver-parser/tests/genpest.rs:80,1
    - Dst: write_all
      Src: /src/semver-parser/tests/genpest.rs:80,1
    - Dst: '&str::as_bytes'
      Src: /src/semver-parser/tests/genpest.rs:83,1
    - Dst: unwrap
      Src: /src/semver-parser/tests/genpest.rs:80,1
    - Dst: wait_with_output
      Src: /src/semver-parser/tests/genpest.rs:85,1
    - Dst: unwrap
      Src: /src/semver-parser/tests/genpest.rs:85,1
    - Dst: String::from_utf8
      Src: /src/semver-parser/tests/genpest.rs:87,1
    - Dst: unwrap
      Src: /src/semver-parser/tests/genpest.rs:87,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 36
    argCount: 1
    argNames:
    - code
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 88
      start: 72
    functionDepth: 1
    functionLinenumber: 72
    functionLinenumberEnd: 88
    functionName: reformat
    functionSourceFile: /src/semver-parser/tests/genpest.rs
    functionUses: 1
    functionsReached:
    - stdout
    - spawn
    - stdin
    - '&str::as_bytes'
    - Stdio::piped
    - Command::new
    - take
    - write_all
    - Result::args
    - String::from_utf8
    - unwrap
    - wait_with_output
    linkageType: ''
    returnType: String
    signature: 'fn reformat(code: &str) -> String'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&str::replace'
      Src: /src/semver-parser/tests/genpest.rs:91,1
    - Dst: Result::is_ascii_whitespace
      Src: /src/semver-parser/tests/genpest.rs:91,1
    - Dst: '&str::contains'
      Src: /src/semver-parser/tests/genpest.rs:91,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 8
    argCount: 1
    argNames:
    - code
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: normalize
    functionSourceFile: /src/semver-parser/tests/genpest.rs
    functionUses: 1
    functionsReached:
    - Result::is_ascii_whitespace
    - '&str::replace'
    - '&str::contains'
    linkageType: ''
    returnType: String
    signature: 'fn normalize(code: &str) -> String'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 54
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 54
    functionName: Rule::all_rules
    functionSourceFile: /src/semver-parser/src/generated.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: '&''static [Rule]'
    signature: pub fn all_rules() -> &'static [Rule]
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: ::pest::state
      Src: /src/semver-parser/src/generated.rs:647,1
    - Dst: rules::r#range_set
      Src: /src/semver-parser/src/generated.rs:648,1
    - Dst: rules::r#logical_or
      Src: /src/semver-parser/src/generated.rs:649,1
    - Dst: rules::r#range
      Src: /src/semver-parser/src/generated.rs:650,1
    - Dst: rules::r#empty
      Src: /src/semver-parser/src/generated.rs:651,1
    - Dst: rules::r#hyphen
      Src: /src/semver-parser/src/generated.rs:652,1
    - Dst: rules::r#simple
      Src: /src/semver-parser/src/generated.rs:653,1
    - Dst: rules::r#primitive
      Src: /src/semver-parser/src/generated.rs:654,1
    - Dst: rules::r#primitive_op
      Src: /src/semver-parser/src/generated.rs:655,1
    - Dst: rules::r#partial
      Src: /src/semver-parser/src/generated.rs:656,1
    - Dst: rules::r#xr
      Src: /src/semver-parser/src/generated.rs:657,1
    - Dst: rules::r#xr_op
      Src: /src/semver-parser/src/generated.rs:658,1
    - Dst: rules::r#nr
      Src: /src/semver-parser/src/generated.rs:659,1
    - Dst: rules::r#tilde
      Src: /src/semver-parser/src/generated.rs:660,1
    - Dst: rules::r#caret
      Src: /src/semver-parser/src/generated.rs:661,1
    - Dst: rules::r#qualifier
      Src: /src/semver-parser/src/generated.rs:662,1
    - Dst: rules::r#parts
      Src: /src/semver-parser/src/generated.rs:663,1
    - Dst: rules::r#part
      Src: /src/semver-parser/src/generated.rs:664,1
    - Dst: rules::r#space
      Src: /src/semver-parser/src/generated.rs:665,1
    - Dst: rules::EOI
      Src: /src/semver-parser/src/generated.rs:666,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 974
    argCount: 2
    argNames:
    - rule
    - input
    argTypes:
    - Rule
    - '&''i str'
    constantsTouched: []
    func_position:
      end: 668
      start: 58
    functionDepth: 0
    functionLinenumber: 58
    functionLinenumberEnd: 668
    functionName: SemverParser::parse
    functionSourceFile: /src/semver-parser/src/generated.rs
    functionUses: 0
    functionsReached:
    - rules::r#logical_or
    - rules::r#empty
    - rules::r#primitive
    - rules::r#range_set
    - ::pest::state
    - rules::r#qualifier
    - rules::EOI
    - rules::r#xr_op
    - rules::r#part
    - rules::r#caret
    - rules::r#primitive_op
    - rules::r#hyphen
    - rules::r#parts
    - rules::r#space
    - rules::r#partial
    - rules::r#tilde
    - rules::r#simple
    - rules::r#range
    - rules::r#nr
    - rules::r#xr
    linkageType: ''
    returnType: ::std::result::Result
    signature: 'fn parse<''i>(rule: Rule,input: &''i str,) -> ::std::result::Result<::pest::iterators::Pairs<''i,
      Rule>, ::pest::error::Error<Rule>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Error::Lexer
      Src: /src/semver-parser/src/parser.rs:28,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - value
    argTypes:
    - lexer::Error
    constantsTouched: []
    func_position:
      end: 29
      start: 27
    functionDepth: 0
    functionLinenumber: 27
    functionLinenumberEnd: 29
    functionName: Error::from
    functionSourceFile: /src/semver-parser/src/parser.rs
    functionUses: 0
    functionsReached:
    - Error::Lexer
    linkageType: ''
    returnType: Self
    signature: 'fn from(value: lexer::Error) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 1
    argNames:
    - fmt
    argTypes:
    - '&mut fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 44
      start: 33
    functionDepth: 0
    functionLinenumber: 33
    functionLinenumberEnd: 44
    functionName: Error::fmt
    functionSourceFile: /src/semver-parser/src/parser.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Error<'input>::to_string
      Src: /src/semver-parser/src/parser.rs:50,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - value
    argTypes:
    - Error<'input>
    constantsTouched: []
    func_position:
      end: 51
      start: 49
    functionDepth: 0
    functionLinenumber: 49
    functionLinenumberEnd: 51
    functionName: String::from
    functionSourceFile: /src/semver-parser/src/parser.rs
    functionUses: 0
    functionsReached:
    - Error<'input>::to_string
    linkageType: ''
    returnType: Self
    signature: 'fn from(value: Error<''input>) -> Self'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Lexer::new
      Src: /src/semver-parser/src/parser.rs:65,1
    - Dst: Lexer::next
      Src: /src/semver-parser/src/parser.rs:67,1
    - Dst: Some
      Src: /src/semver-parser/src/parser.rs:68,1
    - Dst: Ok
      Src: /src/semver-parser/src/parser.rs:73,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 1
    argNames:
    - input
    argTypes:
    - '&''input str'
    constantsTouched: []
    func_position:
      end: 74
      start: 64
    functionDepth: 1
    functionLinenumber: 64
    functionLinenumberEnd: 74
    functionName: Parser::new
    functionSourceFile: /src/semver-parser/src/parser.rs
    functionUses: 0
    functionsReached:
    - Ok
    - Lexer::new
    - Some
    - Lexer::next
    linkageType: ''
    returnType: Result
    signature: 'pub fn new(input: &''input str) -> Result<Parser<''input>, Error<''input>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: next
      Src: /src/semver-parser/src/parser.rs:79,1
    - Dst: Some
      Src: /src/semver-parser/src/parser.rs:80,1
    - Dst: mem::replace
      Src: /src/semver-parser/src/parser.rs:85,1
    - Dst: ok_or_else
      Src: /src/semver-parser/src/parser.rs:85,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 86
      start: 78
    functionDepth: 1
    functionLinenumber: 78
    functionLinenumberEnd: 86
    functionName: Parser::pop
    functionSourceFile: /src/semver-parser/src/parser.rs
    functionUses: 0
    functionsReached:
    - next
    - mem::replace
    - Some
    - ok_or_else
    linkageType: ''
    returnType: Result
    signature: fn pop(&mut self) -> Result<Token<'input>, Error<'input>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: as_ref
      Src: /src/semver-parser/src/parser.rs:91,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 92
      start: 90
    functionDepth: 0
    functionLinenumber: 90
    functionLinenumberEnd: 92
    functionName: Parser::peek
    functionSourceFile: /src/semver-parser/src/parser.rs
    functionUses: 0
    functionsReached:
    - as_ref
    linkageType: ''
    returnType: Option
    signature: fn peek(&mut self) -> Option<&Token<'input>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Parser::peek
      Src: /src/semver-parser/src/parser.rs:96,1
    - Dst: Parser::pop
      Src: /src/semver-parser/src/parser.rs:97,1
    - Dst: Result::map
      Src: /src/semver-parser/src/parser.rs:97,1
    - Dst: Ok
      Src: /src/semver-parser/src/parser.rs:98,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 100
      start: 95
    functionDepth: 2
    functionLinenumber: 95
    functionLinenumberEnd: 100
    functionName: Parser::skip_whitespace
    functionSourceFile: /src/semver-parser/src/parser.rs
    functionUses: 0
    functionsReached:
    - Parser::pop
    - Ok
    - Parser::peek
    - Result::map
    linkageType: ''
    returnType: Result
    signature: fn skip_whitespace(&mut self) -> Result<(), Error<'input>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Parser::pop
      Src: /src/semver-parser/src/parser.rs:106,1
    - Dst: Ok
      Src: /src/semver-parser/src/parser.rs:107,1
    - Dst: Some
      Src: /src/semver-parser/src/parser.rs:107,1
    - Dst: String::is_wildcard
      Src: /src/semver-parser/src/parser.rs:108,1
    - Dst: Ok
      Src: /src/semver-parser/src/parser.rs:108,1
    - Dst: Err
      Src: /src/semver-parser/src/parser.rs:109,1
    - Dst: UnexpectedToken
      Src: /src/semver-parser/src/parser.rs:109,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 111
      start: 105
    functionDepth: 2
    functionLinenumber: 105
    functionLinenumberEnd: 111
    functionName: Parser::component
    functionSourceFile: /src/semver-parser/src/parser.rs
    functionUses: 0
    functionsReached:
    - Parser::pop
    - Ok
    - UnexpectedToken
    - Some
    - String::is_wildcard
    - Err
    linkageType: ''
    returnType: Result
    signature: pub fn component(&mut self) -> Result<Option<u64>, Error<'input>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Parser::pop
      Src: /src/semver-parser/src/parser.rs:115,1
    - Dst: Ok
      Src: /src/semver-parser/src/parser.rs:116,1
    - Dst: Err
      Src: /src/semver-parser/src/parser.rs:117,1
    - Dst: UnexpectedToken
      Src: /src/semver-parser/src/parser.rs:117,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 119
      start: 114
    functionDepth: 2
    functionLinenumber: 114
    functionLinenumberEnd: 119
    functionName: Parser::numeric
    functionSourceFile: /src/semver-parser/src/parser.rs
    functionUses: 0
    functionsReached:
    - Parser::pop
    - Ok
    - UnexpectedToken
    - Err
    linkageType: ''
    returnType: Result
    signature: pub fn numeric(&mut self) -> Result<u64, Error<'input>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Parser::peek
      Src: /src/semver-parser/src/parser.rs:130,1
    - Dst: Ok
      Src: /src/semver-parser/src/parser.rs:132,1
    - Dst: Parser::pop
      Src: /src/semver-parser/src/parser.rs:136,1
    - Dst: Parser::component
      Src: /src/semver-parser/src/parser.rs:137,1
    - Dst: Result::map
      Src: /src/semver-parser/src/parser.rs:137,1
    - Dst: Result::is_none
      Src: /src/semver-parser/src/parser.rs:137,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 138
      start: 129
    functionDepth: 2
    functionLinenumber: 129
    functionLinenumberEnd: 138
    functionName: Parser::dot_component
    functionSourceFile: /src/semver-parser/src/parser.rs
    functionUses: 0
    functionsReached:
    - Parser::pop
    - Ok
    - Parser::component
    - Result::is_none
    - Parser::peek
    - Result::map
    linkageType: ''
    returnType: Result
    signature: pub fn dot_component(&mut self) -> Result<(Option<u64>, bool), Error<'input>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Parser::pop
      Src: /src/semver-parser/src/parser.rs:142,1
    - Dst: Err
      Src: /src/semver-parser/src/parser.rs:144,1
    - Dst: UnexpectedToken
      Src: /src/semver-parser/src/parser.rs:144,1
    - Dst: Parser::numeric
      Src: /src/semver-parser/src/parser.rs:147,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 148
      start: 141
    functionDepth: 2
    functionLinenumber: 141
    functionLinenumberEnd: 148
    functionName: Parser::dot_numeric
    functionSourceFile: /src/semver-parser/src/parser.rs
    functionUses: 0
    functionsReached:
    - Parser::pop
    - UnexpectedToken
    - Parser::numeric
    - Err
    linkageType: ''
    returnType: Result
    signature: pub fn dot_numeric(&mut self) -> Result<u64, Error<'input>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Parser::bounded_identifier
      Src: /src/semver-parser/src/parser.rs:154,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 155
      start: 153
    functionDepth: 1
    functionLinenumber: 153
    functionLinenumberEnd: 155
    functionName: Parser::identifier
    functionSourceFile: /src/semver-parser/src/parser.rs
    functionUses: 0
    functionsReached:
    - Parser::bounded_identifier
    linkageType: ''
    returnType: Result
    signature: pub fn identifier(&mut self) -> Result<Identifier, Error<'input>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Parser::pop
      Src: /src/semver-parser/src/parser.rs:162,1
    - Dst: Identifier::AlphaNumeric
      Src: /src/semver-parser/src/parser.rs:165,1
    - Dst: Result::to_string
      Src: /src/semver-parser/src/parser.rs:165,1
    - Dst: Identifier::Numeric
      Src: /src/semver-parser/src/parser.rs:167,1
    - Dst: Err
      Src: /src/semver-parser/src/parser.rs:168,1
    - Dst: UnexpectedToken
      Src: /src/semver-parser/src/parser.rs:168,1
    - Dst: Parser::peek
      Src: /src/semver-parser/src/parser.rs:171,1
    - Dst: Parser::pop
      Src: /src/semver-parser/src/parser.rs:173,1
    - Dst: Ok
      Src: /src/semver-parser/src/parser.rs:175,1
    - Dst: Result::concat
      Src: /src/semver-parser/src/parser.rs:175,1
    - Dst: Identifier::concat
      Src: /src/semver-parser/src/parser.rs:175,1
    - Dst: Parser::bounded_identifier
      Src: /src/semver-parser/src/parser.rs:177,1
    - Dst: to_string
      Src: /src/semver-parser/src/parser.rs:177,1
    - Dst: Ok
      Src: /src/semver-parser/src/parser.rs:179,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 36
    argCount: 1
    argNames:
    - count
    argTypes:
    - u32
    constantsTouched: []
    func_position:
      end: 181
      start: 157
    functionDepth: 2
    functionLinenumber: 157
    functionLinenumberEnd: 181
    functionName: Parser::bounded_identifier
    functionSourceFile: /src/semver-parser/src/parser.rs
    functionUses: 2
    functionsReached:
    - Parser::pop
    - UnexpectedToken
    - Ok
    - Result::to_string
    - Parser::bounded_identifier
    - Identifier::Numeric
    - Parser::peek
    - Identifier::AlphaNumeric
    - Result::concat
    - to_string
    - Err
    - Identifier::concat
    linkageType: ''
    returnType: Result
    signature: 'fn bounded_identifier(&mut self, count: u32) -> Result<Identifier,
      Error<''input>>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Parser::peek
      Src: /src/semver-parser/src/parser.rs:187,1
    - Dst: Ok
      Src: /src/semver-parser/src/parser.rs:189,1
    - Dst: Parser::pop
      Src: /src/semver-parser/src/parser.rs:193,1
    - Dst: Parser::parts
      Src: /src/semver-parser/src/parser.rs:194,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 195
      start: 186
    functionDepth: 2
    functionLinenumber: 186
    functionLinenumberEnd: 195
    functionName: Parser::pre
    functionSourceFile: /src/semver-parser/src/parser.rs
    functionUses: 0
    functionsReached:
    - Parser::pop
    - Ok
    - Parser::peek
    - Parser::parts
    linkageType: ''
    returnType: Result
    signature: fn pre(&mut self) -> Result<Vec<Identifier>, Error<'input>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/semver-parser/src/parser.rs:199,1
    - Dst: Result::push
      Src: /src/semver-parser/src/parser.rs:201,1
    - Dst: Parser::identifier
      Src: /src/semver-parser/src/parser.rs:201,1
    - Dst: Parser::peek
      Src: /src/semver-parser/src/parser.rs:203,1
    - Dst: Parser::pop
      Src: /src/semver-parser/src/parser.rs:204,1
    - Dst: Result::push
      Src: /src/semver-parser/src/parser.rs:206,1
    - Dst: Parser::identifier
      Src: /src/semver-parser/src/parser.rs:206,1
    - Dst: Ok
      Src: /src/semver-parser/src/parser.rs:209,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 22
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 210
      start: 198
    functionDepth: 4
    functionLinenumber: 198
    functionLinenumberEnd: 210
    functionName: Parser::parts
    functionSourceFile: /src/semver-parser/src/parser.rs
    functionUses: 1
    functionsReached:
    - Parser::pop
    - Ok
    - Parser::peek
    - Vec::new
    - Result::push
    - Parser::identifier
    linkageType: ''
    returnType: Result
    signature: fn parts(&mut self) -> Result<Vec<Identifier>, Error<'input>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Parser::peek
      Src: /src/semver-parser/src/parser.rs:216,1
    - Dst: Ok
      Src: /src/semver-parser/src/parser.rs:218,1
    - Dst: Parser::pop
      Src: /src/semver-parser/src/parser.rs:222,1
    - Dst: Parser::parts
      Src: /src/semver-parser/src/parser.rs:223,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 12
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 224
      start: 215
    functionDepth: 4
    functionLinenumber: 215
    functionLinenumberEnd: 224
    functionName: Parser::plus_build_metadata
    functionSourceFile: /src/semver-parser/src/parser.rs
    functionUses: 0
    functionsReached:
    - Parser::pop
    - Ok
    - Parser::peek
    - Parser::parts
    linkageType: ''
    returnType: Result
    signature: fn plus_build_metadata(&mut self) -> Result<Vec<Identifier>, Error<'input>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Parser::skip_whitespace
      Src: /src/semver-parser/src/parser.rs:230,1
    - Dst: Parser::numeric
      Src: /src/semver-parser/src/parser.rs:232,1
    - Dst: Parser::dot_numeric
      Src: /src/semver-parser/src/parser.rs:233,1
    - Dst: Parser::dot_numeric
      Src: /src/semver-parser/src/parser.rs:234,1
    - Dst: Parser::pre
      Src: /src/semver-parser/src/parser.rs:235,1
    - Dst: Parser::plus_build_metadata
      Src: /src/semver-parser/src/parser.rs:236,1
    - Dst: Parser::skip_whitespace
      Src: /src/semver-parser/src/parser.rs:238,1
    - Dst: Ok
      Src: /src/semver-parser/src/parser.rs:240,1
    CyclomaticComplexity: 7
    EdgeCount: 7
    ICount: 25
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 247
      start: 229
    functionDepth: 5
    functionLinenumber: 229
    functionLinenumberEnd: 247
    functionName: Parser::version
    functionSourceFile: /src/semver-parser/src/parser.rs
    functionUses: 0
    functionsReached:
    - Parser::pre
    - Ok
    - Parser::numeric
    - Parser::dot_numeric
    - Parser::plus_build_metadata
    - Parser::skip_whitespace
    linkageType: ''
    returnType: Result
    signature: pub fn version(&mut self) -> Result<Version, Error<'input>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: is_none
      Src: /src/semver-parser/src/parser.rs:251,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 252
      start: 250
    functionDepth: 0
    functionLinenumber: 250
    functionLinenumberEnd: 252
    functionName: Parser::is_eof
    functionSourceFile: /src/semver-parser/src/parser.rs
    functionUses: 0
    functionsReached:
    - is_none
    linkageType: ''
    returnType: bool
    signature: pub fn is_eof(&mut self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/semver-parser/src/parser.rs:258,1
    - Dst: take
      Src: /src/semver-parser/src/parser.rs:260,1
    - Dst: Result::push
      Src: /src/semver-parser/src/parser.rs:261,1
    - Dst: next
      Src: /src/semver-parser/src/parser.rs:264,1
    - Dst: Result::push
      Src: /src/semver-parser/src/parser.rs:265,1
    - Dst: Ok
      Src: /src/semver-parser/src/parser.rs:268,1
    CyclomaticComplexity: 3
    EdgeCount: 3
    ICount: 19
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 269
      start: 257
    functionDepth: 2
    functionLinenumber: 257
    functionLinenumberEnd: 269
    functionName: Parser::tail
    functionSourceFile: /src/semver-parser/src/parser.rs
    functionUses: 0
    functionsReached:
    - next
    - Ok
    - take
    - Vec::new
    - Result::push
    linkageType: ''
    returnType: Result
    signature: pub fn tail(&mut self) -> Result<Vec<Token<'input>>, Error<'input>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::fs::read_to_string
      Src: /src/semver-parser/src/parser.rs:279,1
    - Dst: expect
      Src: /src/semver-parser/src/parser.rs:279,1
    - Dst: parse
      Src: /src/semver-parser/src/parser.rs:281,1
    - Dst: Result::ok
      Src: /src/semver-parser/src/parser.rs:281,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 282
      start: 278
    functionDepth: 1
    functionLinenumber: 278
    functionLinenumberEnd: 282
    functionName: tests::fuzz_0001
    functionSourceFile: /src/semver-parser/src/parser.rs
    functionUses: 0
    functionsReached:
    - expect
    - Result::ok
    - parse
    - std::fs::read_to_string
    linkageType: ''
    returnType: void
    signature: fn fuzz_0001()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/semver-parser/src/range_set.rs:21,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 24
      start: 19
    functionDepth: 2
    functionLinenumber: 19
    functionLinenumberEnd: 24
    functionName: RangeSet::new
    functionSourceFile: /src/semver-parser/src/range_set.rs
    functionUses: 0
    functionsReached:
    - Vec::new
    linkageType: ''
    returnType: RangeSet
    signature: fn new() -> RangeSet
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SemverParser::parse
      Src: /src/semver-parser/src/range_set.rs:27,1
    - Dst: next
      Src: /src/semver-parser/src/range_set.rs:28,1
    - Dst: Err
      Src: /src/semver-parser/src/range_set.rs:30,1
    - Dst: String::from
      Src: /src/semver-parser/src/range_set.rs:30,1
    - Dst: Err
      Src: /src/semver-parser/src/range_set.rs:32,1
    - Dst: String::to_string
      Src: /src/semver-parser/src/range_set.rs:32,1
    - Dst: from_pair_iterator
      Src: /src/semver-parser/src/range_set.rs:35,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 13
    argCount: 2
    argNames:
    - input
    - compat
    argTypes:
    - '&str'
    - Compat
    constantsTouched: []
    func_position:
      end: 36
      start: 26
    functionDepth: 1
    functionLinenumber: 26
    functionLinenumberEnd: 36
    functionName: RangeSet::parse
    functionSourceFile: /src/semver-parser/src/range_set.rs
    functionUses: 0
    functionsReached:
    - next
    - SemverParser::parse
    - String::to_string
    - from_pair_iterator
    - String::from
    - Err
    linkageType: ''
    returnType: Result
    signature: 'pub fn parse(input: &str, compat: Compat) -> Result<Self, String>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: RangeSet::parse
      Src: /src/semver-parser/src/range_set.rs:44,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 1
    argNames:
    - input
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 45
      start: 42
    functionDepth: 2
    functionLinenumber: 42
    functionLinenumberEnd: 45
    functionName: RangeSet::from_str
    functionSourceFile: /src/semver-parser/src/range_set.rs
    functionUses: 0
    functionsReached:
    - RangeSet::parse
    linkageType: ''
    returnType: Result
    signature: 'fn from_str(input: &str) -> Result<Self, Self::Err>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pest::iterators::Pair<'_, Rule>::as_rule
      Src: /src/semver-parser/src/range.rs:114,1
    - Dst: Err
      Src: /src/semver-parser/src/range.rs:115,1
    - Dst: String::from
      Src: /src/semver-parser/src/range.rs:115,1
    - Dst: Vec::new
      Src: /src/semver-parser/src/range.rs:118,1
    - Dst: pest::iterators::Pair<'_, Rule>::into_inner
      Src: /src/semver-parser/src/range.rs:121,1
    - Dst: as_rule
      Src: /src/semver-parser/src/range.rs:122,1
    - Dst: simple::from_hyphen_range
      Src: /src/semver-parser/src/range.rs:124,1
    - Dst: Result::append
      Src: /src/semver-parser/src/range.rs:125,1
    - Dst: simple::from_pair_iterator
      Src: /src/semver-parser/src/range.rs:128,1
    - Dst: Result::append
      Src: /src/semver-parser/src/range.rs:129,1
    - Dst: Result::push
      Src: /src/semver-parser/src/range.rs:132,1
    - Dst: Partial::new
      Src: /src/semver-parser/src/range.rs:132,1
    - Dst: Self::zero_missing
      Src: /src/semver-parser/src/range.rs:132,1
    - Dst: '&mut Self::as_comparator'
      Src: /src/semver-parser/src/range.rs:132,1
    - Dst: Ok
      Src: /src/semver-parser/src/range.rs:138,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 40
    argCount: 2
    argNames:
    - parsed_range
    - compat
    argTypes:
    - pest::iterators::Pair<'_, Rule>
    - range_set::Compat
    constantsTouched: []
    func_position:
      end: 142
      start: 109
    functionDepth: 2
    functionLinenumber: 109
    functionLinenumberEnd: 142
    functionName: from_pair_iterator
    functionSourceFile: /src/semver-parser/src/range.rs
    functionUses: 2
    functionsReached:
    - Self::zero_missing
    - Ok
    - pest::iterators::Pair<'_, Rule>::as_rule
    - Result::append
    - simple::from_hyphen_range
    - as_rule
    - simple::from_pair_iterator
    - pest::iterators::Pair<'_, Rule>::into_inner
    - Vec::new
    - Partial::new
    - Result::push
    - String::from
    - '&mut Self::as_comparator'
    - Err
    linkageType: ''
    returnType: Result
    signature: 'pub fn from_pair_iterator(parsed_range: pest::iterators::Pair<''_,
      Rule>,compat: range_set::Compat,) -> Result<Range, String>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: '&str::parse'
      Src: /src/semver-parser/src/main.rs:7,1
    - Dst: RangeSet::parse
      Src: /src/semver-parser/src/main.rs:11,1
    - Dst: Ok
      Src: /src/semver-parser/src/main.rs:14,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 15
      start: 5
    functionDepth: 4
    functionLinenumber: 5
    functionLinenumberEnd: 15
    functionName: main
    functionSourceFile: /src/semver-parser/src/main.rs
    functionUses: 0
    functionsReached:
    - '&str::parse'
    - Ok
    - RangeSet::parse
    linkageType: ''
    returnType: Result
    signature: fn main() -> Result<(), Box<dyn Error>>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/semver-parser/src/range.rs:56,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 59
      start: 51
    functionDepth: 2
    functionLinenumber: 51
    functionLinenumberEnd: 59
    functionName: Partial::new
    functionSourceFile: /src/semver-parser/src/range.rs
    functionUses: 1
    functionsReached:
    - Vec::new
    linkageType: ''
    returnType: Self
    signature: pub fn new() -> Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: unwrap_or
      Src: /src/semver-parser/src/range.rs:64,1
    - Dst: unwrap_or
      Src: /src/semver-parser/src/range.rs:65,1
    - Dst: unwrap_or
      Src: /src/semver-parser/src/range.rs:66,1
    - Dst: clone
      Src: /src/semver-parser/src/range.rs:67,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 13
    argCount: 1
    argNames:
    - op
    argTypes:
    - Op
    constantsTouched: []
    func_position:
      end: 69
      start: 61
    functionDepth: 0
    functionLinenumber: 61
    functionLinenumberEnd: 69
    functionName: Partial::as_comparator
    functionSourceFile: /src/semver-parser/src/range.rs
    functionUses: 0
    functionsReached:
    - unwrap_or
    - clone
    linkageType: ''
    returnType: Comparator
    signature: 'pub fn as_comparator(&self, op: Op) -> Comparator'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/semver-parser/src/range.rs:72,1
    - Dst: unwrap_or
      Src: /src/semver-parser/src/range.rs:72,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 74
      start: 71
    functionDepth: 0
    functionLinenumber: 71
    functionLinenumberEnd: 74
    functionName: Partial::inc_major
    functionSourceFile: /src/semver-parser/src/range.rs
    functionUses: 0
    functionsReached:
    - unwrap_or
    - Some
    linkageType: ''
    returnType: '&mut Self'
    signature: pub fn inc_major(&mut self) -> &mut Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/semver-parser/src/range.rs:77,1
    - Dst: unwrap_or
      Src: /src/semver-parser/src/range.rs:77,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 79
      start: 76
    functionDepth: 0
    functionLinenumber: 76
    functionLinenumberEnd: 79
    functionName: Partial::inc_minor
    functionSourceFile: /src/semver-parser/src/range.rs
    functionUses: 0
    functionsReached:
    - unwrap_or
    - Some
    linkageType: ''
    returnType: '&mut Self'
    signature: pub fn inc_minor(&mut self) -> &mut Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/semver-parser/src/range.rs:82,1
    - Dst: unwrap_or
      Src: /src/semver-parser/src/range.rs:82,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 8
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 84
      start: 81
    functionDepth: 0
    functionLinenumber: 81
    functionLinenumberEnd: 84
    functionName: Partial::inc_patch
    functionSourceFile: /src/semver-parser/src/range.rs
    functionUses: 0
    functionsReached:
    - unwrap_or
    - Some
    linkageType: ''
    returnType: '&mut Self'
    signature: pub fn inc_patch(&mut self) -> &mut Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/semver-parser/src/range.rs:87,1
    - Dst: unwrap_or
      Src: /src/semver-parser/src/range.rs:87,1
    - Dst: Some
      Src: /src/semver-parser/src/range.rs:88,1
    - Dst: unwrap_or
      Src: /src/semver-parser/src/range.rs:88,1
    - Dst: Some
      Src: /src/semver-parser/src/range.rs:89,1
    - Dst: unwrap_or
      Src: /src/semver-parser/src/range.rs:89,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 91
      start: 86
    functionDepth: 0
    functionLinenumber: 86
    functionLinenumberEnd: 91
    functionName: Partial::zero_missing
    functionSourceFile: /src/semver-parser/src/range.rs
    functionUses: 0
    functionsReached:
    - unwrap_or
    - Some
    linkageType: ''
    returnType: '&mut Self'
    signature: pub fn zero_missing(&mut self) -> &mut Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/semver-parser/src/range.rs:94,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 96
      start: 93
    functionDepth: 0
    functionLinenumber: 93
    functionLinenumberEnd: 96
    functionName: Partial::zero_minor
    functionSourceFile: /src/semver-parser/src/range.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: '&mut Self'
    signature: pub fn zero_minor(&mut self) -> &mut Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/semver-parser/src/range.rs:99,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 101
      start: 98
    functionDepth: 0
    functionLinenumber: 98
    functionLinenumberEnd: 101
    functionName: Partial::zero_patch
    functionSourceFile: /src/semver-parser/src/range.rs
    functionUses: 0
    functionsReached:
    - Some
    linkageType: ''
    returnType: '&mut Self'
    signature: pub fn zero_patch(&mut self) -> &mut Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Vec::new
      Src: /src/semver-parser/src/range.rs:104,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 106
      start: 103
    functionDepth: 2
    functionLinenumber: 103
    functionLinenumberEnd: 106
    functionName: Partial::no_pre
    functionSourceFile: /src/semver-parser/src/range.rs
    functionUses: 0
    functionsReached:
    - Vec::new
    linkageType: ''
    returnType: '&mut Self'
    signature: pub fn no_pre(&mut self) -> &mut Self
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pest::iterators::Pair<'_, Rule>::as_rule
      Src: /src/semver-parser/src/range.rs:152,1
    - Dst: Err
      Src: /src/semver-parser/src/range.rs:153,1
    - Dst: String::from
      Src: /src/semver-parser/src/range.rs:153,1
    - Dst: Vec::new
      Src: /src/semver-parser/src/range.rs:156,1
    - Dst: pest::iterators::Pair<'_, Rule>::into_inner
      Src: /src/semver-parser/src/range.rs:159,1
    - Dst: as_rule
      Src: /src/semver-parser/src/range.rs:160,1
    - Dst: into_inner
      Src: /src/semver-parser/src/range.rs:162,1
    - Dst: collect
      Src: /src/semver-parser/src/range.rs:162,1
    - Dst: parse_partial
      Src: /src/semver-parser/src/range.rs:164,1
    - Dst: Result::push
      Src: /src/semver-parser/src/range.rs:169,1
    - Dst: Partial::zero_missing
      Src: /src/semver-parser/src/range.rs:169,1
    - Dst: '&mut Self::as_comparator'
      Src: /src/semver-parser/src/range.rs:169,1
    - Dst: Result::push
      Src: /src/semver-parser/src/range.rs:174,1
    - Dst: Partial::clone
      Src: /src/semver-parser/src/range.rs:174,1
    - Dst: zero_missing
      Src: /src/semver-parser/src/range.rs:174,1
    - Dst: as_comparator
      Src: /src/semver-parser/src/range.rs:174,1
    - Dst: Result::push
      Src: /src/semver-parser/src/range.rs:175,1
    - Dst: Partial::inc_major
      Src: /src/semver-parser/src/range.rs:176,1
    - Dst: '&mut Self::zero_missing'
      Src: /src/semver-parser/src/range.rs:176,1
    - Dst: '&mut Self::as_comparator'
      Src: /src/semver-parser/src/range.rs:176,1
    - Dst: Result::push
      Src: /src/semver-parser/src/range.rs:180,1
    - Dst: Partial::clone
      Src: /src/semver-parser/src/range.rs:180,1
    - Dst: zero_patch
      Src: /src/semver-parser/src/range.rs:180,1
    - Dst: as_comparator
      Src: /src/semver-parser/src/range.rs:180,1
    - Dst: Result::push
      Src: /src/semver-parser/src/range.rs:181,1
    - Dst: Partial::inc_minor
      Src: /src/semver-parser/src/range.rs:182,1
    - Dst: '&mut Self::zero_patch'
      Src: /src/semver-parser/src/range.rs:182,1
    - Dst: '&mut Self::as_comparator'
      Src: /src/semver-parser/src/range.rs:182,1
    - Dst: Result::push
      Src: /src/semver-parser/src/range.rs:188,1
    - Dst: Partial::as_comparator
      Src: /src/semver-parser/src/range.rs:188,1
    - Dst: handle_caret_range
      Src: /src/semver-parser/src/range.rs:192,1
    - Dst: into_inner
      Src: /src/semver-parser/src/range.rs:199,1
    - Dst: collect
      Src: /src/semver-parser/src/range.rs:199,1
    - Dst: remove
      Src: /src/semver-parser/src/range.rs:200,1
    - Dst: as_str
      Src: /src/semver-parser/src/range.rs:202,1
    - Dst: remove
      Src: /src/semver-parser/src/range.rs:211,1
    - Dst: into_inner
      Src: /src/semver-parser/src/range.rs:212,1
    - Dst: collect
      Src: /src/semver-parser/src/range.rs:212,1
    - Dst: parse_partial
      Src: /src/semver-parser/src/range.rs:213,1
    - Dst: Result::push
      Src: /src/semver-parser/src/range.rs:220,1
    - Dst: Partial::zero_missing
      Src: /src/semver-parser/src/range.rs:220,1
    - Dst: '&mut Self::as_comparator'
      Src: /src/semver-parser/src/range.rs:220,1
    - Dst: Result::push
      Src: /src/semver-parser/src/range.rs:224,1
    - Dst: Partial::clone
      Src: /src/semver-parser/src/range.rs:225,1
    - Dst: zero_missing
      Src: /src/semver-parser/src/range.rs:225,1
    - Dst: as_comparator
      Src: /src/semver-parser/src/range.rs:225,1
    - Dst: Result::push
      Src: /src/semver-parser/src/range.rs:226,1
    - Dst: Partial::inc_major
      Src: /src/semver-parser/src/range.rs:227,1
    - Dst: '&mut Self::zero_missing'
      Src: /src/semver-parser/src/range.rs:227,1
    - Dst: '&mut Self::as_comparator'
      Src: /src/semver-parser/src/range.rs:227,1
    - Dst: Result::push
      Src: /src/semver-parser/src/range.rs:231,1
    - Dst: Partial::clone
      Src: /src/semver-parser/src/range.rs:232,1
    - Dst: zero_patch
      Src: /src/semver-parser/src/range.rs:232,1
    - Dst: as_comparator
      Src: /src/semver-parser/src/range.rs:232,1
    - Dst: Result::push
      Src: /src/semver-parser/src/range.rs:233,1
    - Dst: Partial::inc_minor
      Src: /src/semver-parser/src/range.rs:234,1
    - Dst: '&mut Self::zero_patch'
      Src: /src/semver-parser/src/range.rs:234,1
    - Dst: '&mut Self::as_comparator'
      Src: /src/semver-parser/src/range.rs:234,1
    - Dst: Result::push
      Src: /src/semver-parser/src/range.rs:237,1
    - Dst: Partial::as_comparator
      Src: /src/semver-parser/src/range.rs:237,1
    - Dst: Result::push
      Src: /src/semver-parser/src/range.rs:244,1
    - Dst: Partial::zero_missing
      Src: /src/semver-parser/src/range.rs:245,1
    - Dst: '&mut Self::as_comparator'
      Src: /src/semver-parser/src/range.rs:245,1
    - Dst: Result::push
      Src: /src/semver-parser/src/range.rs:246,1
    - Dst: Partial::zero_missing
      Src: /src/semver-parser/src/range.rs:247,1
    - Dst: '&mut Self::as_comparator'
      Src: /src/semver-parser/src/range.rs:247,1
    - Dst: Result::push
      Src: /src/semver-parser/src/range.rs:248,1
    - Dst: Partial::zero_missing
      Src: /src/semver-parser/src/range.rs:249,1
    - Dst: '&mut Self::as_comparator'
      Src: /src/semver-parser/src/range.rs:249,1
    - Dst: Result::push
      Src: /src/semver-parser/src/range.rs:250,1
    - Dst: Partial::zero_missing
      Src: /src/semver-parser/src/range.rs:251,1
    - Dst: '&mut Self::as_comparator'
      Src: /src/semver-parser/src/range.rs:251,1
    - Dst: Result::push
      Src: /src/semver-parser/src/range.rs:252,1
    - Dst: Partial::zero_missing
      Src: /src/semver-parser/src/range.rs:253,1
    - Dst: '&mut Self::as_comparator'
      Src: /src/semver-parser/src/range.rs:253,1
    - Dst: Result::push
      Src: /src/semver-parser/src/range.rs:260,1
    - Dst: Partial::inc_major
      Src: /src/semver-parser/src/range.rs:261,1
    - Dst: '&mut Self::zero_minor'
      Src: /src/semver-parser/src/range.rs:261,1
    - Dst: '&mut Self::zero_patch'
      Src: /src/semver-parser/src/range.rs:261,1
    - Dst: '&mut Self::as_comparator'
      Src: /src/semver-parser/src/range.rs:261,1
    - Dst: Result::push
      Src: /src/semver-parser/src/range.rs:267,1
    - Dst: Partial::zero_missing
      Src: /src/semver-parser/src/range.rs:267,1
    - Dst: '&mut Self::as_comparator'
      Src: /src/semver-parser/src/range.rs:267,1
    - Dst: Result::push
      Src: /src/semver-parser/src/range.rs:273,1
    - Dst: Partial::inc_minor
      Src: /src/semver-parser/src/range.rs:274,1
    - Dst: '&mut Self::zero_patch'
      Src: /src/semver-parser/src/range.rs:274,1
    - Dst: '&mut Self::as_comparator'
      Src: /src/semver-parser/src/range.rs:274,1
    - Dst: Result::push
      Src: /src/semver-parser/src/range.rs:276,1
    - Dst: Partial::zero_patch
      Src: /src/semver-parser/src/range.rs:276,1
    - Dst: '&mut Self::as_comparator'
      Src: /src/semver-parser/src/range.rs:276,1
    - Dst: Result::push
      Src: /src/semver-parser/src/range.rs:280,1
    - Dst: Partial::as_comparator
      Src: /src/semver-parser/src/range.rs:280,1
    - Dst: into_inner
      Src: /src/semver-parser/src/range.rs:286,1
    - Dst: collect
      Src: /src/semver-parser/src/range.rs:286,1
    - Dst: remove
      Src: /src/semver-parser/src/range.rs:288,1
    - Dst: into_inner
      Src: /src/semver-parser/src/range.rs:289,1
    - Dst: collect
      Src: /src/semver-parser/src/range.rs:289,1
    - Dst: parse_partial
      Src: /src/semver-parser/src/range.rs:290,1
    - Dst: handle_caret_range
      Src: /src/semver-parser/src/range.rs:292,1
    - Dst: into_inner
      Src: /src/semver-parser/src/range.rs:295,1
    - Dst: collect
      Src: /src/semver-parser/src/range.rs:295,1
    - Dst: remove
      Src: /src/semver-parser/src/range.rs:297,1
    - Dst: into_inner
      Src: /src/semver-parser/src/range.rs:298,1
    - Dst: collect
      Src: /src/semver-parser/src/range.rs:298,1
    - Dst: parse_partial
      Src: /src/semver-parser/src/range.rs:299,1
    - Dst: Result::push
      Src: /src/semver-parser/src/range.rs:301,1
    - Dst: Partial::clone
      Src: /src/semver-parser/src/range.rs:301,1
    - Dst: zero_missing
      Src: /src/semver-parser/src/range.rs:301,1
    - Dst: as_comparator
      Src: /src/semver-parser/src/range.rs:301,1
    - Dst: Result::push
      Src: /src/semver-parser/src/range.rs:310,1
    - Dst: Partial::inc_major
      Src: /src/semver-parser/src/range.rs:311,1
    - Dst: '&mut Self::zero_missing'
      Src: /src/semver-parser/src/range.rs:311,1
    - Dst: '&mut Self::no_pre'
      Src: /src/semver-parser/src/range.rs:311,1
    - Dst: '&mut Self::as_comparator'
      Src: /src/semver-parser/src/range.rs:311,1
    - Dst: Result::push
      Src: /src/semver-parser/src/range.rs:321,1
    - Dst: Partial::inc_minor
      Src: /src/semver-parser/src/range.rs:322,1
    - Dst: '&mut Self::zero_patch'
      Src: /src/semver-parser/src/range.rs:322,1
    - Dst: '&mut Self::no_pre'
      Src: /src/semver-parser/src/range.rs:322,1
    - Dst: '&mut Self::as_comparator'
      Src: /src/semver-parser/src/range.rs:322,1
    - Dst: Ok
      Src: /src/semver-parser/src/range.rs:335,1
    CyclomaticComplexity: 13
    EdgeCount: 13
    ICount: 283
    argCount: 2
    argNames:
    - parsed_simple
    - compat
    argTypes:
    - pest::iterators::Pair<'_, Rule>
    - range_set::Compat
    constantsTouched: []
    func_position:
      end: 336
      start: 147
    functionDepth: 2
    functionLinenumber: 147
    functionLinenumberEnd: 336
    functionName: simple::from_pair_iterator
    functionSourceFile: /src/semver-parser/src/range.rs
    functionUses: 1
    functionsReached:
    - Ok
    - into_inner
    - Partial::zero_patch
    - as_str
    - zero_missing
    - zero_patch
    - Vec::new
    - Partial::clone
    - Partial::inc_major
    - pest::iterators::Pair<'_, Rule>::as_rule
    - as_comparator
    - parse_partial
    - '&mut Self::zero_patch'
    - pest::iterators::Pair<'_, Rule>::into_inner
    - Result::push
    - Partial::zero_missing
    - handle_caret_range
    - Err
    - Partial::as_comparator
    - remove
    - '&mut Self::no_pre'
    - as_rule
    - '&mut Self::zero_missing'
    - String::from
    - Partial::inc_minor
    - '&mut Self::zero_minor'
    - collect
    - '&mut Self::as_comparator'
    linkageType: ''
    returnType: Result
    signature: 'pub fn from_pair_iterator(parsed_simple: pest::iterators::Pair<''_,
      Rule>,compat: range_set::Compat,) -> Result<Vec<Comparator>, String>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Some
      Src: /src/semver-parser/src/range.rs:340,1
    - Dst: '&mut Vec<Comparator>::push'
      Src: /src/semver-parser/src/range.rs:345,1
    - Dst: Partial::clone
      Src: /src/semver-parser/src/range.rs:345,1
    - Dst: zero_missing
      Src: /src/semver-parser/src/range.rs:345,1
    - Dst: as_comparator
      Src: /src/semver-parser/src/range.rs:345,1
    - Dst: '&mut Vec<Comparator>::push'
      Src: /src/semver-parser/src/range.rs:346,1
    - Dst: Partial::inc_major
      Src: /src/semver-parser/src/range.rs:347,1
    - Dst: '&mut Self::zero_missing'
      Src: /src/semver-parser/src/range.rs:347,1
    - Dst: '&mut Self::no_pre'
      Src: /src/semver-parser/src/range.rs:347,1
    - Dst: '&mut Self::as_comparator'
      Src: /src/semver-parser/src/range.rs:347,1
    - Dst: '&mut Vec<Comparator>::push'
      Src: /src/semver-parser/src/range.rs:356,1
    - Dst: Partial::clone
      Src: /src/semver-parser/src/range.rs:356,1
    - Dst: zero_missing
      Src: /src/semver-parser/src/range.rs:356,1
    - Dst: as_comparator
      Src: /src/semver-parser/src/range.rs:356,1
    - Dst: '&mut Vec<Comparator>::push'
      Src: /src/semver-parser/src/range.rs:357,1
    - Dst: Partial::inc_minor
      Src: /src/semver-parser/src/range.rs:358,1
    - Dst: '&mut Self::zero_patch'
      Src: /src/semver-parser/src/range.rs:358,1
    - Dst: '&mut Self::no_pre'
      Src: /src/semver-parser/src/range.rs:358,1
    - Dst: '&mut Self::as_comparator'
      Src: /src/semver-parser/src/range.rs:358,1
    - Dst: Some
      Src: /src/semver-parser/src/range.rs:366,1
    - Dst: '&mut Vec<Comparator>::push'
      Src: /src/semver-parser/src/range.rs:368,1
    - Dst: Partial::as_comparator
      Src: /src/semver-parser/src/range.rs:368,1
    - Dst: '&mut Vec<Comparator>::push'
      Src: /src/semver-parser/src/range.rs:369,1
    - Dst: Partial::inc_patch
      Src: /src/semver-parser/src/range.rs:369,1
    - Dst: '&mut Self::no_pre'
      Src: /src/semver-parser/src/range.rs:369,1
    - Dst: '&mut Self::as_comparator'
      Src: /src/semver-parser/src/range.rs:369,1
    - Dst: '&mut Vec<Comparator>::push'
      Src: /src/semver-parser/src/range.rs:372,1
    - Dst: Partial::as_comparator
      Src: /src/semver-parser/src/range.rs:372,1
    - Dst: '&mut Vec<Comparator>::push'
      Src: /src/semver-parser/src/range.rs:373,1
    - Dst: Partial::inc_minor
      Src: /src/semver-parser/src/range.rs:374,1
    - Dst: '&mut Self::zero_patch'
      Src: /src/semver-parser/src/range.rs:374,1
    - Dst: '&mut Self::no_pre'
      Src: /src/semver-parser/src/range.rs:374,1
    - Dst: '&mut Self::as_comparator'
      Src: /src/semver-parser/src/range.rs:374,1
    - Dst: '&mut Vec<Comparator>::push'
      Src: /src/semver-parser/src/range.rs:387,1
    - Dst: Partial::zero_missing
      Src: /src/semver-parser/src/range.rs:387,1
    - Dst: '&mut Self::as_comparator'
      Src: /src/semver-parser/src/range.rs:387,1
    - Dst: '&mut Vec<Comparator>::push'
      Src: /src/semver-parser/src/range.rs:393,1
    - Dst: Partial::clone
      Src: /src/semver-parser/src/range.rs:393,1
    - Dst: zero_missing
      Src: /src/semver-parser/src/range.rs:393,1
    - Dst: as_comparator
      Src: /src/semver-parser/src/range.rs:393,1
    - Dst: '&mut Vec<Comparator>::push'
      Src: /src/semver-parser/src/range.rs:394,1
    - Dst: Partial::inc_major
      Src: /src/semver-parser/src/range.rs:395,1
    - Dst: '&mut Self::zero_minor'
      Src: /src/semver-parser/src/range.rs:395,1
    - Dst: '&mut Self::zero_patch'
      Src: /src/semver-parser/src/range.rs:395,1
    - Dst: '&mut Self::no_pre'
      Src: /src/semver-parser/src/range.rs:395,1
    - Dst: '&mut Self::as_comparator'
      Src: /src/semver-parser/src/range.rs:395,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 115
    argCount: 2
    argNames:
    - partial
    - comparators
    argTypes:
    - Partial
    - '&mut Vec<Comparator>'
    constantsTouched: []
    func_position:
      end: 405
      start: 338
    functionDepth: 3
    functionLinenumber: 338
    functionLinenumberEnd: 405
    functionName: simple::handle_caret_range
    functionSourceFile: /src/semver-parser/src/range.rs
    functionUses: 0
    functionsReached:
    - Partial::inc_patch
    - Partial::inc_major
    - as_comparator
    - '&mut Self::no_pre'
    - '&mut Self::zero_patch'
    - Some
    - '&mut Vec<Comparator>::push'
    - zero_missing
    - '&mut Self::zero_missing'
    - Partial::clone
    - '&mut Self::as_comparator'
    - Partial::zero_missing
    - Partial::inc_minor
    - '&mut Self::zero_minor'
    - Partial::as_comparator
    linkageType: ''
    returnType: void
    signature: 'fn handle_caret_range(mut partial: Partial, comparators: &mut Vec<Comparator>)'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: pest::iterators::Pair<'_, Rule>::as_rule
      Src: /src/semver-parser/src/range.rs:411,1
    - Dst: Err
      Src: /src/semver-parser/src/range.rs:412,1
    - Dst: String::from
      Src: /src/semver-parser/src/range.rs:412,1
    - Dst: Vec::new
      Src: /src/semver-parser/src/range.rs:415,1
    - Dst: pest::iterators::Pair<'_, Rule>::into_inner
      Src: /src/semver-parser/src/range.rs:418,1
    - Dst: next
      Src: /src/semver-parser/src/range.rs:420,1
    - Dst: unwrap
      Src: /src/semver-parser/src/range.rs:420,1
    - Dst: into_inner
      Src: /src/semver-parser/src/range.rs:420,1
    - Dst: collect
      Src: /src/semver-parser/src/range.rs:420,1
    - Dst: parse_partial
      Src: /src/semver-parser/src/range.rs:421,1
    - Dst: Result::push
      Src: /src/semver-parser/src/range.rs:427,1
    - Dst: Partial::zero_missing
      Src: /src/semver-parser/src/range.rs:427,1
    - Dst: '&mut Self::as_comparator'
      Src: /src/semver-parser/src/range.rs:427,1
    - Dst: next
      Src: /src/semver-parser/src/range.rs:430,1
    - Dst: unwrap
      Src: /src/semver-parser/src/range.rs:430,1
    - Dst: into_inner
      Src: /src/semver-parser/src/range.rs:430,1
    - Dst: collect
      Src: /src/semver-parser/src/range.rs:430,1
    - Dst: parse_partial
      Src: /src/semver-parser/src/range.rs:431,1
    - Dst: Result::push
      Src: /src/semver-parser/src/range.rs:437,1
    - Dst: Partial::zero_missing
      Src: /src/semver-parser/src/range.rs:437,1
    - Dst: '&mut Self::as_comparator'
      Src: /src/semver-parser/src/range.rs:437,1
    - Dst: Result::push
      Src: /src/semver-parser/src/range.rs:442,1
    - Dst: Partial::inc_major
      Src: /src/semver-parser/src/range.rs:443,1
    - Dst: '&mut Self::zero_minor'
      Src: /src/semver-parser/src/range.rs:443,1
    - Dst: '&mut Self::zero_patch'
      Src: /src/semver-parser/src/range.rs:443,1
    - Dst: '&mut Self::as_comparator'
      Src: /src/semver-parser/src/range.rs:443,1
    - Dst: Result::push
      Src: /src/semver-parser/src/range.rs:452,1
    - Dst: Partial::inc_minor
      Src: /src/semver-parser/src/range.rs:452,1
    - Dst: '&mut Self::zero_patch'
      Src: /src/semver-parser/src/range.rs:452,1
    - Dst: '&mut Self::as_comparator'
      Src: /src/semver-parser/src/range.rs:452,1
    - Dst: Result::push
      Src: /src/semver-parser/src/range.rs:456,1
    - Dst: Partial::as_comparator
      Src: /src/semver-parser/src/range.rs:456,1
    - Dst: Ok
      Src: /src/semver-parser/src/range.rs:460,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 79
    argCount: 1
    argNames:
    - parsed_simple
    argTypes:
    - pest::iterators::Pair<'_, Rule>
    constantsTouched: []
    func_position:
      end: 461
      start: 407
    functionDepth: 2
    functionLinenumber: 407
    functionLinenumberEnd: 461
    functionName: simple::from_hyphen_range
    functionSourceFile: /src/semver-parser/src/range.rs
    functionUses: 1
    functionsReached:
    - Ok
    - into_inner
    - Vec::new
    - Partial::inc_major
    - pest::iterators::Pair<'_, Rule>::as_rule
    - parse_partial
    - '&mut Self::zero_patch'
    - pest::iterators::Pair<'_, Rule>::into_inner
    - Result::push
    - Partial::zero_missing
    - Err
    - Partial::as_comparator
    - String::from
    - Partial::inc_minor
    - '&mut Self::zero_minor'
    - next
    - collect
    - unwrap
    - '&mut Self::as_comparator'
    linkageType: ''
    returnType: Result
    signature: 'pub fn from_hyphen_range(parsed_simple: pest::iterators::Pair<''_,
      Rule>,) -> Result<Vec<Comparator>, String>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Partial::new
      Src: /src/semver-parser/src/range.rs:464,1
    - Dst: remove
      Src: /src/semver-parser/src/range.rs:467,1
    - Dst: Option::as_rule
      Src: /src/semver-parser/src/range.rs:469,1
    - Dst: Option::into_inner
      Src: /src/semver-parser/src/range.rs:471,1
    - Dst: next
      Src: /src/semver-parser/src/range.rs:471,1
    - Dst: unwrap
      Src: /src/semver-parser/src/range.rs:471,1
    - Dst: as_rule
      Src: /src/semver-parser/src/range.rs:472,1
    - Dst: Some
      Src: /src/semver-parser/src/range.rs:481,1
    - Dst: as_str
      Src: /src/semver-parser/src/range.rs:481,1
    - Dst: as_str().parse::<u64>
      Src: /src/semver-parser/src/range.rs:481,1
    - Dst: unwrap
      Src: /src/semver-parser/src/range.rs:481,1
    - Dst: is_empty
      Src: /src/semver-parser/src/range.rs:489,1
    - Dst: remove
      Src: /src/semver-parser/src/range.rs:494,1
    - Dst: Option::as_rule
      Src: /src/semver-parser/src/range.rs:496,1
    - Dst: Option::into_inner
      Src: /src/semver-parser/src/range.rs:498,1
    - Dst: next
      Src: /src/semver-parser/src/range.rs:498,1
    - Dst: unwrap
      Src: /src/semver-parser/src/range.rs:498,1
    - Dst: as_rule
      Src: /src/semver-parser/src/range.rs:499,1
    - Dst: Some
      Src: /src/semver-parser/src/range.rs:507,1
    - Dst: as_str
      Src: /src/semver-parser/src/range.rs:507,1
    - Dst: as_str().parse::<u64>
      Src: /src/semver-parser/src/range.rs:507,1
    - Dst: unwrap
      Src: /src/semver-parser/src/range.rs:507,1
    - Dst: is_empty
      Src: /src/semver-parser/src/range.rs:516,1
    - Dst: remove
      Src: /src/semver-parser/src/range.rs:521,1
    - Dst: as_rule
      Src: /src/semver-parser/src/range.rs:523,1
    - Dst: into_inner
      Src: /src/semver-parser/src/range.rs:525,1
    - Dst: next
      Src: /src/semver-parser/src/range.rs:525,1
    - Dst: unwrap
      Src: /src/semver-parser/src/range.rs:525,1
    - Dst: as_rule
      Src: /src/semver-parser/src/range.rs:526,1
    - Dst: Some
      Src: /src/semver-parser/src/range.rs:534,1
    - Dst: as_str
      Src: /src/semver-parser/src/range.rs:534,1
    - Dst: as_str().parse::<u64>
      Src: /src/semver-parser/src/range.rs:534,1
    - Dst: unwrap
      Src: /src/semver-parser/src/range.rs:534,1
    - Dst: is_empty
      Src: /src/semver-parser/src/range.rs:546,1
    - Dst: remove
      Src: /src/semver-parser/src/range.rs:548,1
    - Dst: Result::into_inner
      Src: /src/semver-parser/src/range.rs:550,1
    - Dst: collect
      Src: /src/semver-parser/src/range.rs:550,1
    - Dst: Result::remove
      Src: /src/semver-parser/src/range.rs:551,1
    - Dst: Result::as_str
      Src: /src/semver-parser/src/range.rs:552,1
    - Dst: Result::split
      Src: /src/semver-parser/src/range.rs:555,1
    - Dst: parse::<u64>
      Src: /src/semver-parser/src/range.rs:556,1
    - Dst: Identifier::Numeric
      Src: /src/semver-parser/src/range.rs:557,1
    - Dst: Identifier::AlphaNumeric
      Src: /src/semver-parser/src/range.rs:558,1
    - Dst: to_string
      Src: /src/semver-parser/src/range.rs:558,1
    - Dst: push
      Src: /src/semver-parser/src/range.rs:561,1
    CyclomaticComplexity: 11
    EdgeCount: 11
    ICount: 154
    argCount: 1
    argNames:
    - components
    argTypes:
    - Vec<pest::iterators::Pair<'_, Rule>>
    constantsTouched: []
    func_position:
      end: 566
      start: 463
    functionDepth: 3
    functionLinenumber: 463
    functionLinenumberEnd: 566
    functionName: simple::parse_partial
    functionSourceFile: /src/semver-parser/src/range.rs
    functionUses: 0
    functionsReached:
    - into_inner
    - Option::as_rule
    - as_str
    - push
    - Some
    - to_string
    - Result::as_str
    - remove
    - Result::split
    - as_rule
    - Option::into_inner
    - Identifier::Numeric
    - Result::remove
    - Identifier::AlphaNumeric
    - next
    - Result::into_inner
    - parse::<u64>
    - collect
    - unwrap
    - as_str().parse::<u64>
    - is_empty
    - Partial::new
    linkageType: ''
    returnType: Partial
    signature: 'fn parse_partial(mut components: Vec<pest::iterators::Pair<''_, Rule>>)
      -> Partial'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: SemverParser::parse
      Src: /src/semver-parser/src/range.rs:575,1
    - Dst: next
      Src: /src/semver-parser/src/range.rs:576,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 6
    argCount: 1
    argNames:
    - input
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 582
      start: 574
    functionDepth: 1
    functionLinenumber: 574
    functionLinenumberEnd: 582
    functionName: tests::parse_range
    functionSourceFile: /src/semver-parser/src/range.rs
    functionUses: 0
    functionsReached:
    - next
    - SemverParser::parse
    linkageType: ''
    returnType: pest::iterators::Pair
    signature: 'fn parse_range(input: &str) -> pest::iterators::Pair<''_, Rule>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: one
      Src: /src/semver-parser/src/lexer.rs:5,1
    - Dst: len
      Src: /src/semver-parser/src/lexer.rs:15,1
    CyclomaticComplexity: 5
    EdgeCount: 5
    ICount: 21
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 65
      start: 42
    functionDepth: 1
    functionLinenumber: 42
    functionLinenumberEnd: 65
    functionName: scan_while
    functionSourceFile: /src/semver-parser/src/lexer.rs
    functionUses: 0
    functionsReached:
    - len
    - one
    linkageType: ''
    returnType: ''
    signature: ''
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 111
      start: 106
    functionDepth: 0
    functionLinenumber: 106
    functionLinenumberEnd: 111
    functionName: Token::is_whitespace
    functionSourceFile: /src/semver-parser/src/lexer.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: pub fn is_whitespace(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 3
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 119
      start: 114
    functionDepth: 0
    functionLinenumber: 114
    functionLinenumberEnd: 119
    functionName: Token::is_wildcard
    functionSourceFile: /src/semver-parser/src/lexer.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: bool
    signature: pub fn is_wildcard(&self) -> bool
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: char_indices
      Src: /src/semver-parser/src/lexer.rs:141,1
    - Dst: next
      Src: /src/semver-parser/src/lexer.rs:142,1
    - Dst: next
      Src: /src/semver-parser/src/lexer.rs:143,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 1
    argNames:
    - input
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 151
      start: 140
    functionDepth: 1
    functionLinenumber: 140
    functionLinenumberEnd: 151
    functionName: Lexer::new
    functionSourceFile: /src/semver-parser/src/lexer.rs
    functionUses: 1
    functionsReached:
    - next
    - char_indices
    linkageType: ''
    returnType: Lexer
    signature: 'pub fn new(input: &str) -> Lexer'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: next
      Src: /src/semver-parser/src/lexer.rs:156,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 10
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 157
      start: 154
    functionDepth: 1
    functionLinenumber: 154
    functionLinenumberEnd: 157
    functionName: Lexer::step
    functionSourceFile: /src/semver-parser/src/lexer.rs
    functionUses: 0
    functionsReached:
    - next
    linkageType: ''
    returnType: void
    signature: fn step(&mut self)
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Lexer::step
      Src: /src/semver-parser/src/lexer.rs:161,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 6
    argCount: 1
    argNames:
    - n
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 163
      start: 159
    functionDepth: 2
    functionLinenumber: 159
    functionLinenumberEnd: 163
    functionName: Lexer::step_n
    functionSourceFile: /src/semver-parser/src/lexer.rs
    functionUses: 0
    functionsReached:
    - Lexer::step
    linkageType: ''
    returnType: void
    signature: 'fn step_n(&mut self, n: usize)'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 168
      start: 166
    functionDepth: 0
    functionLinenumber: 166
    functionLinenumberEnd: 168
    functionName: Lexer::one
    functionSourceFile: /src/semver-parser/src/lexer.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: Option
    signature: fn one(&mut self) -> Option<(usize, char)>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: and_then
      Src: /src/semver-parser/src/lexer.rs:172,1
    - Dst: map
      Src: /src/semver-parser/src/lexer.rs:173,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 9
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 174
      start: 171
    functionDepth: 0
    functionLinenumber: 171
    functionLinenumberEnd: 174
    functionName: Lexer::two
    functionSourceFile: /src/semver-parser/src/lexer.rs
    functionUses: 0
    functionsReached:
    - map
    - and_then
    linkageType: ''
    returnType: Option
    signature: fn two(&mut self) -> Option<(usize, char, char)>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: scan_while
      Src: /src/semver-parser/src/lexer.rs:181,1
    - Dst: chars
      Src: /src/semver-parser/src/lexer.rs:184,1
    - Dst: next
      Src: /src/semver-parser/src/lexer.rs:185,1
    - Dst: next
      Src: /src/semver-parser/src/lexer.rs:185,1
    - Dst: Some
      Src: /src/semver-parser/src/lexer.rs:188,1
    - Dst: is_none
      Src: /src/semver-parser/src/lexer.rs:188,1
    - Dst: Ok
      Src: /src/semver-parser/src/lexer.rs:189,1
    - Dst: Numeric
      Src: /src/semver-parser/src/lexer.rs:189,1
    - Dst: Some
      Src: /src/semver-parser/src/lexer.rs:192,1
    - Dst: parse::<u64>
      Src: /src/semver-parser/src/lexer.rs:193,1
    - Dst: Ok
      Src: /src/semver-parser/src/lexer.rs:194,1
    - Dst: Numeric
      Src: /src/semver-parser/src/lexer.rs:194,1
    - Dst: Ok
      Src: /src/semver-parser/src/lexer.rs:198,1
    - Dst: AlphaNumeric
      Src: /src/semver-parser/src/lexer.rs:198,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 36
    argCount: 1
    argNames:
    - start
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 199
      start: 180
    functionDepth: 2
    functionLinenumber: 180
    functionLinenumberEnd: 199
    functionName: Lexer::component
    functionSourceFile: /src/semver-parser/src/lexer.rs
    functionUses: 0
    functionsReached:
    - next
    - Ok
    - AlphaNumeric
    - parse::<u64>
    - is_none
    - Some
    - scan_while
    - Numeric
    - chars
    linkageType: ''
    returnType: Result
    signature: 'fn component(&mut self, start: usize) -> Result<Token<''input>, Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: scan_while
      Src: /src/semver-parser/src/lexer.rs:203,1
    - Dst: Ok
      Src: /src/semver-parser/src/lexer.rs:204,1
    - Dst: Whitespace
      Src: /src/semver-parser/src/lexer.rs:204,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 1
    argNames:
    - start
    argTypes:
    - usize
    constantsTouched: []
    func_position:
      end: 205
      start: 202
    functionDepth: 2
    functionLinenumber: 202
    functionLinenumberEnd: 205
    functionName: Lexer::whitespace
    functionSourceFile: /src/semver-parser/src/lexer.rs
    functionUses: 0
    functionsReached:
    - scan_while
    - Ok
    - Whitespace
    linkageType: ''
    returnType: Result
    signature: 'fn whitespace(&mut self, start: usize) -> Result<Token<''input>, Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Lexer::two
      Src: /src/semver-parser/src/lexer.rs:215,1
    - Dst: Some
      Src: /src/semver-parser/src/lexer.rs:217,1
    - Dst: Some
      Src: /src/semver-parser/src/lexer.rs:218,1
    - Dst: Some
      Src: /src/semver-parser/src/lexer.rs:219,1
    - Dst: Lexer::step_n
      Src: /src/semver-parser/src/lexer.rs:224,1
    - Dst: Some
      Src: /src/semver-parser/src/lexer.rs:225,1
    - Dst: Ok
      Src: /src/semver-parser/src/lexer.rs:225,1
    - Dst: Lexer::one
      Src: /src/semver-parser/src/lexer.rs:230,1
    - Dst: Lexer::step
      Src: /src/semver-parser/src/lexer.rs:233,1
    - Dst: Some
      Src: /src/semver-parser/src/lexer.rs:234,1
    - Dst: Lexer::whitespace
      Src: /src/semver-parser/src/lexer.rs:234,1
    - Dst: Lexer::step
      Src: /src/semver-parser/src/lexer.rs:247,1
    - Dst: Some
      Src: /src/semver-parser/src/lexer.rs:248,1
    - Dst: Lexer::component
      Src: /src/semver-parser/src/lexer.rs:248,1
    - Dst: Some
      Src: /src/semver-parser/src/lexer.rs:250,1
    - Dst: Err
      Src: /src/semver-parser/src/lexer.rs:250,1
    - Dst: UnexpectedChar
      Src: /src/semver-parser/src/lexer.rs:250,1
    - Dst: Lexer::step
      Src: /src/semver-parser/src/lexer.rs:253,1
    - Dst: Some
      Src: /src/semver-parser/src/lexer.rs:254,1
    - Dst: Ok
      Src: /src/semver-parser/src/lexer.rs:254,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 54
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 259
      start: 211
    functionDepth: 3
    functionLinenumber: 211
    functionLinenumberEnd: 259
    functionName: Lexer::next
    functionSourceFile: /src/semver-parser/src/lexer.rs
    functionUses: 1
    functionsReached:
    - Ok
    - Lexer::step_n
    - Lexer::two
    - UnexpectedChar
    - Lexer::whitespace
    - Lexer::one
    - Lexer::component
    - Some
    - Lexer::step
    - Err
    linkageType: ''
    returnType: Option
    signature: fn next(&mut self) -> Option<Self::Item>
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Lexer::new
      Src: /src/semver-parser/src/lexer.rs:267,1
    - Dst: Lexer::map
      Src: /src/semver-parser/src/lexer.rs:267,1
    - Dst: map(Result::unwrap).collect::<Vec<_>>
      Src: /src/semver-parser/src/lexer.rs:267,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 1
    argNames:
    - input
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 268
      start: 266
    functionDepth: 5
    functionLinenumber: 266
    functionLinenumberEnd: 268
    functionName: tests::lex
    functionSourceFile: /src/semver-parser/src/lexer.rs
    functionUses: 0
    functionsReached:
    - map(Result::unwrap).collect::<Vec<_>>
    - Lexer::new
    - Lexer::map
    linkageType: ''
    returnType: Vec
    signature: 'fn lex(input: &str) -> Vec<Token>'
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 276
      start: 271
    functionDepth: 0
    functionLinenumber: 271
    functionLinenumberEnd: 276
    functionName: tests::simple_tokens
    functionSourceFile: /src/semver-parser/src/lexer.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: pub fn simple_tokens()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 289
      start: 279
    functionDepth: 0
    functionLinenumber: 279
    functionLinenumberEnd: 289
    functionName: tests::whitespace
    functionSourceFile: /src/semver-parser/src/lexer.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: pub fn whitespace()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 300
      start: 292
    functionDepth: 0
    functionLinenumber: 292
    functionLinenumberEnd: 300
    functionName: tests::components
    functionSourceFile: /src/semver-parser/src/lexer.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: pub fn components()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 308
      start: 303
    functionDepth: 0
    functionLinenumber: 303
    functionLinenumberEnd: 308
    functionName: tests::is_wildcard
    functionSourceFile: /src/semver-parser/src/lexer.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: pub fn is_wildcard()
  - BBCount: 0
    BranchProfiles: []
    Callsites: []
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 1
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 313
      start: 311
    functionDepth: 0
    functionLinenumber: 311
    functionLinenumberEnd: 313
    functionName: tests::empty
    functionSourceFile: /src/semver-parser/src/lexer.rs
    functionUses: 0
    functionsReached: []
    linkageType: ''
    returnType: void
    signature: pub fn empty()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: into_iter
      Src: /src/semver-parser/src/lexer.rs:317,1
    - Dst: map
      Src: /src/semver-parser/src/lexer.rs:317,1
    - Dst: "into_iter()\n            .map(Numeric)\n            .collect::<Vec<_>>"
      Src: /src/semver-parser/src/lexer.rs:317,1
    - Dst: lex
      Src: /src/semver-parser/src/lexer.rs:322,1
    - Dst: Vec::into_iter
      Src: /src/semver-parser/src/lexer.rs:322,1
    - Dst: filter
      Src: /src/semver-parser/src/lexer.rs:322,1
    - Dst: String::is_whitespace
      Src: /src/semver-parser/src/lexer.rs:324,1
    - Dst: collect
      Src: /src/semver-parser/src/lexer.rs:322,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 18
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 328
      start: 316
    functionDepth: 6
    functionLinenumber: 316
    functionLinenumberEnd: 328
    functionName: tests::numeric_all_numbers
    functionSourceFile: /src/semver-parser/src/lexer.rs
    functionUses: 0
    functionsReached:
    - lex
    - filter
    - map
    - Vec::into_iter
    - into_iter
    - String::is_whitespace
    - collect
    - "into_iter()\n            .map(Numeric)\n            .collect::<Vec<_>>"
    linkageType: ''
    returnType: void
    signature: pub fn numeric_all_numbers()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Identifier::AlphaNumeric
      Src: /src/semver-parser/src/version.rs:114,1
    - Dst: Identifier::AlphaNumeric
      Src: /src/semver-parser/src/version.rs:115,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 4
    argCount: 1
    argNames:
    - add_str
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 117
      start: 112
    functionDepth: 0
    functionLinenumber: 112
    functionLinenumberEnd: 117
    functionName: Identifier::concat
    functionSourceFile: /src/semver-parser/src/version.rs
    functionUses: 1
    functionsReached:
    - Identifier::AlphaNumeric
    linkageType: ''
    returnType: Identifier
    signature: 'pub fn concat(self, add_str: &str) -> Identifier'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: Parser::new
      Src: /src/semver-parser/src/version.rs:145,1
    - Dst: version
      Src: /src/semver-parser/src/version.rs:146,1
    - Dst: is_eof
      Src: /src/semver-parser/src/version.rs:148,1
    - Dst: Err
      Src: /src/semver-parser/src/version.rs:149,1
    - Dst: parser::Error::MoreInput
      Src: /src/semver-parser/src/version.rs:149,1
    - Dst: tail
      Src: /src/semver-parser/src/version.rs:149,1
    - Dst: Ok
      Src: /src/semver-parser/src/version.rs:152,1
    CyclomaticComplexity: 4
    EdgeCount: 4
    ICount: 18
    argCount: 1
    argNames:
    - input
    argTypes:
    - '&str'
    constantsTouched: []
    func_position:
      end: 153
      start: 144
    functionDepth: 6
    functionLinenumber: 144
    functionLinenumberEnd: 153
    functionName: parse
    functionSourceFile: /src/semver-parser/src/version.rs
    functionUses: 5
    functionsReached:
    - Ok
    - Parser::new
    - version
    - parser::Error::MoreInput
    - is_eof
    - Err
    - tail
    linkageType: ''
    returnType: Result
    signature: 'pub fn parse(input: &str) -> Result<Version, parser::Error>'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: expect
      Src: /src/semver-parser/src/version.rs:157,1
    - Dst: is_empty
      Src: /src/semver-parser/src/version.rs:158,1
    - Dst: iter
      Src: /src/semver-parser/src/version.rs:159,1
    - Dst: map
      Src: /src/semver-parser/src/version.rs:159,1
    - Dst: collect
      Src: /src/semver-parser/src/version.rs:159,1
    - Dst: expect
      Src: /src/semver-parser/src/version.rs:160,1
    - Dst: is_empty
      Src: /src/semver-parser/src/version.rs:162,1
    - Dst: iter
      Src: /src/semver-parser/src/version.rs:163,1
    - Dst: map
      Src: /src/semver-parser/src/version.rs:163,1
    - Dst: collect
      Src: /src/semver-parser/src/version.rs:163,1
    - Dst: expect
      Src: /src/semver-parser/src/version.rs:164,1
    - Dst: Ok
      Src: /src/semver-parser/src/version.rs:166,1
    CyclomaticComplexity: 2
    EdgeCount: 2
    ICount: 37
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 167
      start: 156
    functionDepth: 0
    functionLinenumber: 156
    functionLinenumberEnd: 167
    functionName: Version::fmt
    functionSourceFile: /src/semver-parser/src/version.rs
    functionUses: 0
    functionsReached:
    - iter
    - Ok
    - map
    - expect
    - collect
    - is_empty
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::fmt
      Src: /src/semver-parser/src/version.rs:173,1
    - Dst: std::fmt
      Src: /src/semver-parser/src/version.rs:174,1
    CyclomaticComplexity: 1
    EdgeCount: 1
    ICount: 7
    argCount: 1
    argNames:
    - f
    argTypes:
    - '&mut fmt::Formatter'
    constantsTouched: []
    func_position:
      end: 176
      start: 171
    functionDepth: 1
    functionLinenumber: 171
    functionLinenumberEnd: 176
    functionName: Identifier::fmt
    functionSourceFile: /src/semver-parser/src/version.rs
    functionUses: 0
    functionsReached:
    - std::fmt
    linkageType: ''
    returnType: fmt::Result
    signature: 'fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result'
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: version::parse
      Src: /src/semver-parser/src/version.rs:188,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 194
      start: 185
    functionDepth: 1
    functionLinenumber: 185
    functionLinenumberEnd: 194
    functionName: tests::parse_empty
    functionSourceFile: /src/semver-parser/src/version.rs
    functionUses: 0
    functionsReached:
    - version::parse
    linkageType: ''
    returnType: void
    signature: fn parse_empty()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: version::parse
      Src: /src/semver-parser/src/version.rs:200,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 206
      start: 197
    functionDepth: 1
    functionLinenumber: 197
    functionLinenumberEnd: 206
    functionName: tests::parse_blank
    functionSourceFile: /src/semver-parser/src/version.rs
    functionUses: 0
    functionsReached:
    - version::parse
    linkageType: ''
    returnType: void
    signature: fn parse_blank()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: version::parse
      Src: /src/semver-parser/src/version.rs:212,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 218
      start: 209
    functionDepth: 1
    functionLinenumber: 209
    functionLinenumberEnd: 218
    functionName: tests::parse_no_minor_patch
    functionSourceFile: /src/semver-parser/src/version.rs
    functionUses: 0
    functionsReached:
    - version::parse
    linkageType: ''
    returnType: void
    signature: fn parse_no_minor_patch()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: version::parse
      Src: /src/semver-parser/src/version.rs:224,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 230
      start: 221
    functionDepth: 1
    functionLinenumber: 221
    functionLinenumberEnd: 230
    functionName: tests::parse_no_patch
    functionSourceFile: /src/semver-parser/src/version.rs
    functionUses: 0
    functionsReached:
    - version::parse
    linkageType: ''
    returnType: void
    signature: fn parse_no_patch()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: version::parse
      Src: /src/semver-parser/src/version.rs:236,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 242
      start: 233
    functionDepth: 1
    functionLinenumber: 233
    functionLinenumberEnd: 242
    functionName: tests::parse_empty_pre
    functionSourceFile: /src/semver-parser/src/version.rs
    functionUses: 0
    functionsReached:
    - version::parse
    linkageType: ''
    returnType: void
    signature: fn parse_empty_pre()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: version::parse
      Src: /src/semver-parser/src/version.rs:248,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 254
      start: 245
    functionDepth: 1
    functionLinenumber: 245
    functionLinenumberEnd: 254
    functionName: tests::parse_letters
    functionSourceFile: /src/semver-parser/src/version.rs
    functionUses: 0
    functionsReached:
    - version::parse
    linkageType: ''
    returnType: void
    signature: fn parse_letters()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: version::parse
      Src: /src/semver-parser/src/version.rs:260,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 266
      start: 257
    functionDepth: 1
    functionLinenumber: 257
    functionLinenumberEnd: 266
    functionName: tests::parse_with_letters
    functionSourceFile: /src/semver-parser/src/version.rs
    functionUses: 0
    functionsReached:
    - version::parse
    linkageType: ''
    returnType: void
    signature: fn parse_with_letters()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: version::parse
      Src: /src/semver-parser/src/version.rs:272,1
    - Dst: ::std::result::Result::unwrap
      Src: /src/semver-parser/src/version.rs:272,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 277
      start: 269
    functionDepth: 1
    functionLinenumber: 269
    functionLinenumberEnd: 277
    functionName: tests::parse_basic_version
    functionSourceFile: /src/semver-parser/src/version.rs
    functionUses: 0
    functionsReached:
    - version::parse
    - ::std::result::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn parse_basic_version()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: version::parse
      Src: /src/semver-parser/src/version.rs:283,1
    - Dst: ::std::result::Result::unwrap
      Src: /src/semver-parser/src/version.rs:283,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 6
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 288
      start: 280
    functionDepth: 1
    functionLinenumber: 280
    functionLinenumberEnd: 288
    functionName: tests::parse_trims_input
    functionSourceFile: /src/semver-parser/src/version.rs
    functionUses: 0
    functionsReached:
    - version::parse
    - ::std::result::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn parse_trims_input()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: version::parse
      Src: /src/semver-parser/src/version.rs:294,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 300
      start: 291
    functionDepth: 1
    functionLinenumber: 291
    functionLinenumberEnd: 300
    functionName: tests::parse_no_major_leading_zeroes
    functionSourceFile: /src/semver-parser/src/version.rs
    functionUses: 0
    functionsReached:
    - version::parse
    linkageType: ''
    returnType: void
    signature: fn parse_no_major_leading_zeroes()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: version::parse
      Src: /src/semver-parser/src/version.rs:306,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 312
      start: 303
    functionDepth: 1
    functionLinenumber: 303
    functionLinenumberEnd: 312
    functionName: tests::parse_no_minor_leading_zeroes
    functionSourceFile: /src/semver-parser/src/version.rs
    functionUses: 0
    functionsReached:
    - version::parse
    linkageType: ''
    returnType: void
    signature: fn parse_no_minor_leading_zeroes()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: version::parse
      Src: /src/semver-parser/src/version.rs:318,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 324
      start: 315
    functionDepth: 1
    functionLinenumber: 315
    functionLinenumberEnd: 324
    functionName: tests::parse_no_patch_leading_zeroes
    functionSourceFile: /src/semver-parser/src/version.rs
    functionUses: 0
    functionsReached:
    - version::parse
    linkageType: ''
    returnType: void
    signature: fn parse_no_patch_leading_zeroes()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: version::parse
      Src: /src/semver-parser/src/version.rs:330,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 336
      start: 327
    functionDepth: 1
    functionLinenumber: 327
    functionLinenumberEnd: 336
    functionName: tests::parse_no_major_overflow
    functionSourceFile: /src/semver-parser/src/version.rs
    functionUses: 0
    functionsReached:
    - version::parse
    linkageType: ''
    returnType: void
    signature: fn parse_no_major_overflow()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: version::parse
      Src: /src/semver-parser/src/version.rs:342,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 348
      start: 339
    functionDepth: 1
    functionLinenumber: 339
    functionLinenumberEnd: 348
    functionName: tests::parse_no_minor_overflow
    functionSourceFile: /src/semver-parser/src/version.rs
    functionUses: 0
    functionsReached:
    - version::parse
    linkageType: ''
    returnType: void
    signature: fn parse_no_minor_overflow()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: version::parse
      Src: /src/semver-parser/src/version.rs:354,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 2
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 360
      start: 351
    functionDepth: 1
    functionLinenumber: 351
    functionLinenumberEnd: 360
    functionName: tests::parse_no_patch_overflow
    functionSourceFile: /src/semver-parser/src/version.rs
    functionUses: 0
    functionsReached:
    - version::parse
    linkageType: ''
    returnType: void
    signature: fn parse_no_patch_overflow()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: version::parse
      Src: /src/semver-parser/src/version.rs:366,1
    - Dst: ::std::result::Result::unwrap
      Src: /src/semver-parser/src/version.rs:366,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 370
      start: 363
    functionDepth: 1
    functionLinenumber: 363
    functionLinenumberEnd: 370
    functionName: tests::parse_basic_prerelease
    functionSourceFile: /src/semver-parser/src/version.rs
    functionUses: 0
    functionsReached:
    - version::parse
    - ::std::result::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn parse_basic_prerelease()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: version::parse
      Src: /src/semver-parser/src/version.rs:376,1
    - Dst: ::std::result::Result::unwrap
      Src: /src/semver-parser/src/version.rs:376,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 380
      start: 373
    functionDepth: 1
    functionLinenumber: 373
    functionLinenumberEnd: 380
    functionName: tests::parse_prerelease_alphanumeric
    functionSourceFile: /src/semver-parser/src/version.rs
    functionUses: 0
    functionsReached:
    - version::parse
    - ::std::result::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn parse_prerelease_alphanumeric()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: version::parse
      Src: /src/semver-parser/src/version.rs:386,1
    - Dst: ::std::result::Result::unwrap
      Src: /src/semver-parser/src/version.rs:386,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 393
      start: 383
    functionDepth: 1
    functionLinenumber: 383
    functionLinenumberEnd: 393
    functionName: tests::parse_prerelease_zero
    functionSourceFile: /src/semver-parser/src/version.rs
    functionUses: 0
    functionsReached:
    - version::parse
    - ::std::result::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn parse_prerelease_zero()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: version::parse
      Src: /src/semver-parser/src/version.rs:399,1
    - Dst: ::std::result::Result::unwrap
      Src: /src/semver-parser/src/version.rs:399,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 403
      start: 396
    functionDepth: 1
    functionLinenumber: 396
    functionLinenumberEnd: 403
    functionName: tests::parse_basic_build
    functionSourceFile: /src/semver-parser/src/version.rs
    functionUses: 0
    functionsReached:
    - version::parse
    - ::std::result::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn parse_basic_build()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: version::parse
      Src: /src/semver-parser/src/version.rs:409,1
    - Dst: ::std::result::Result::unwrap
      Src: /src/semver-parser/src/version.rs:409,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 4
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 413
      start: 406
    functionDepth: 1
    functionLinenumber: 406
    functionLinenumberEnd: 413
    functionName: tests::parse_build_alphanumeric
    functionSourceFile: /src/semver-parser/src/version.rs
    functionUses: 0
    functionsReached:
    - version::parse
    - ::std::result::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn parse_build_alphanumeric()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: version::parse
      Src: /src/semver-parser/src/version.rs:419,1
    - Dst: ::std::result::Result::unwrap
      Src: /src/semver-parser/src/version.rs:419,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 426
      start: 416
    functionDepth: 1
    functionLinenumber: 416
    functionLinenumberEnd: 426
    functionName: tests::parse_pre_and_build
    functionSourceFile: /src/semver-parser/src/version.rs
    functionUses: 0
    functionsReached:
    - version::parse
    - ::std::result::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn parse_pre_and_build()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: version::parse
      Src: /src/semver-parser/src/version.rs:432,1
    - Dst: ::std::result::Result::unwrap
      Src: /src/semver-parser/src/version.rs:432,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 447
      start: 429
    functionDepth: 1
    functionLinenumber: 429
    functionLinenumberEnd: 447
    functionName: tests::parse_complex_metadata_01
    functionSourceFile: /src/semver-parser/src/version.rs
    functionUses: 0
    functionsReached:
    - version::parse
    - ::std::result::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn parse_complex_metadata_01()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: version::parse
      Src: /src/semver-parser/src/version.rs:453,1
    - Dst: ::std::result::Result::unwrap
      Src: /src/semver-parser/src/version.rs:453,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 463
      start: 450
    functionDepth: 1
    functionLinenumber: 450
    functionLinenumberEnd: 463
    functionName: tests::parse_complex_metadata_02
    functionSourceFile: /src/semver-parser/src/version.rs
    functionUses: 0
    functionsReached:
    - version::parse
    - ::std::result::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn parse_complex_metadata_02()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: version::parse
      Src: /src/semver-parser/src/version.rs:469,1
    - Dst: ::std::result::Result::unwrap
      Src: /src/semver-parser/src/version.rs:469,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 5
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 481
      start: 466
    functionDepth: 1
    functionLinenumber: 466
    functionLinenumberEnd: 481
    functionName: tests::parse_metadata_overflow
    functionSourceFile: /src/semver-parser/src/version.rs
    functionUses: 0
    functionsReached:
    - version::parse
    - ::std::result::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn parse_metadata_overflow()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: version::parse
      Src: /src/semver-parser/src/version.rs:487,1
    - Dst: ::std::result::Result::unwrap
      Src: /src/semver-parser/src/version.rs:487,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 495
      start: 484
    functionDepth: 1
    functionLinenumber: 484
    functionLinenumberEnd: 495
    functionName: tests::parse_regression_01
    functionSourceFile: /src/semver-parser/src/version.rs
    functionUses: 0
    functionsReached:
    - version::parse
    - ::std::result::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn parse_regression_01()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: version::parse
      Src: /src/semver-parser/src/version.rs:502,1
    - Dst: ::std::result::Result::unwrap
      Src: /src/semver-parser/src/version.rs:502,1
    CyclomaticComplexity: 0
    EdgeCount: 0
    ICount: 7
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 510
      start: 498
    functionDepth: 1
    functionLinenumber: 498
    functionLinenumberEnd: 510
    functionName: tests::parse_regression_02
    functionSourceFile: /src/semver-parser/src/version.rs
    functionUses: 0
    functionsReached:
    - version::parse
    - ::std::result::Result::unwrap
    linkageType: ''
    returnType: void
    signature: fn parse_regression_02()
  - BBCount: 0
    BranchProfiles: []
    Callsites:
    - Dst: std::str::from_utf8
      Src: /src/semver-parser/fuzz/fuzz_targets/parse.rs:2,1
    - Dst: parse::<proc_macro2::TokenStream>
      Src: /src/semver-parser/fuzz/fuzz_targets/parse.rs:3,1
    - Dst: Lexer::new
      Src: /src/semver-parser/fuzz/fuzz_targets/parse.rs:6,1
    - Dst: Lexer::next
      Src: /src/semver-parser/fuzz/fuzz_targets/parse.rs:7,1
    - Dst: Parser::new
      Src: /src/semver-parser/fuzz/fuzz_targets/parse.rs:15,1
    - Dst: version
      Src: /src/semver-parser/fuzz/fuzz_targets/parse.rs:16,1
    CyclomaticComplexity: 6
    EdgeCount: 6
    ICount: 23
    argCount: 0
    argNames: []
    argTypes: []
    constantsTouched: []
    func_position:
      end: 43
      start: 20
    functionDepth: 6
    functionLinenumber: 20
    functionLinenumberEnd: 43
    functionName: fuzz_target
    functionSourceFile: /src/semver-parser/fuzz/fuzz_targets/parse.rs
    functionUses: 0
    functionsReached:
    - Lexer::new
    - Parser::new
    - parse::<proc_macro2::TokenStream>
    - version
    - Lexer::next
    - std::str::from_utf8
    linkageType: ''
    returnType: ''
    signature: ''
Fuzzer filename: /src/semver-parser/fuzz/fuzz_targets/parse.rs
Fuzzing method: fuzz_target
report: name
sources:
- function_names:
  - generated_code_is_fresh
  - reformat
  - normalize
  source_file: /src/semver-parser/tests/genpest.rs
- function_names:
  - Rule::all_rules
  - SemverParser::parse
  source_file: /src/semver-parser/src/generated.rs
- function_names:
  - Error::from
  - Error::fmt
  - String::from
  - Parser::new
  - Parser::pop
  - Parser::peek
  - Parser::skip_whitespace
  - Parser::component
  - Parser::numeric
  - Parser::dot_component
  - Parser::dot_numeric
  - Parser::identifier
  - Parser::bounded_identifier
  - Parser::pre
  - Parser::parts
  - Parser::plus_build_metadata
  - Parser::version
  - Parser::is_eof
  - Parser::tail
  - tests::fuzz_0001
  source_file: /src/semver-parser/src/parser.rs
- function_names:
  - RangeSet::new
  - RangeSet::parse
  - RangeSet::from_str
  - from_pair_iterator
  source_file: /src/semver-parser/src/range_set.rs
- function_names: []
  source_file: /src/semver-parser/src/lib.rs
- function_names:
  - main
  source_file: /src/semver-parser/src/main.rs
- function_names:
  - Partial::new
  - Partial::as_comparator
  - Partial::inc_major
  - Partial::inc_minor
  - Partial::inc_patch
  - Partial::zero_missing
  - Partial::zero_minor
  - Partial::zero_patch
  - Partial::no_pre
  - from_pair_iterator
  - simple::from_pair_iterator
  - simple::handle_caret_range
  - simple::from_hyphen_range
  - simple::parse_partial
  - tests::parse_range
  source_file: /src/semver-parser/src/range.rs
- function_names:
  - scan_while
  - Token::is_whitespace
  - Token::is_wildcard
  - Lexer::new
  - Lexer::step
  - Lexer::step_n
  - Lexer::one
  - Lexer::two
  - Lexer::component
  - Lexer::whitespace
  - Lexer::next
  - tests::lex
  - tests::simple_tokens
  - tests::whitespace
  - tests::components
  - tests::is_wildcard
  - tests::empty
  - tests::numeric_all_numbers
  source_file: /src/semver-parser/src/lexer.rs
- function_names:
  - Identifier::concat
  - parse
  - Version::fmt
  - Identifier::fmt
  - tests::parse_empty
  - tests::parse_blank
  - tests::parse_no_minor_patch
  - tests::parse_no_patch
  - tests::parse_empty_pre
  - tests::parse_letters
  - tests::parse_with_letters
  - tests::parse_basic_version
  - tests::parse_trims_input
  - tests::parse_no_major_leading_zeroes
  - tests::parse_no_minor_leading_zeroes
  - tests::parse_no_patch_leading_zeroes
  - tests::parse_no_major_overflow
  - tests::parse_no_minor_overflow
  - tests::parse_no_patch_overflow
  - tests::parse_basic_prerelease
  - tests::parse_prerelease_alphanumeric
  - tests::parse_prerelease_zero
  - tests::parse_basic_build
  - tests::parse_build_alphanumeric
  - tests::parse_pre_and_build
  - tests::parse_complex_metadata_01
  - tests::parse_complex_metadata_02
  - tests::parse_metadata_overflow
  - tests::parse_regression_01
  - tests::parse_regression_02
  source_file: /src/semver-parser/src/version.rs
- function_names:
  - fuzz_target
  source_file: /src/semver-parser/fuzz/fuzz_targets/parse.rs
