When to use `parse_next` vs `parse_peek` in winnow parsing

I have a hard time understand when to use which? parse_peek returns IResult and parse_next uses PResult in winnow

For reference - winnow - Rust

Generally, you should use parse_next when calling one parser inside of another. At the top-level, you generally call parse.

parse_peek is useful for testing and migrating from nom. For normal peeks, use peek.