SYMBOL INDEX (136 symbols across 6 files) FILE: build.rs constant LONG_ABOUT (line 5) | const LONG_ABOUT: &str = function main (line 16) | fn main() -> std::io::Result<()> { FILE: src/cli.rs type Command (line 5) | pub(crate) enum Command { type Cli (line 55) | pub struct Cli { FILE: src/main.rs constant LOCAL_CONFIG_FILE_NAME (line 17) | pub const LOCAL_CONFIG_FILE_NAME: &str = ".prr.toml"; function find_project_config_file (line 20) | fn find_project_config_file() -> Option { function open_review (line 35) | fn open_review(file: &Path) -> Result<()> { function main (line 55) | async fn main() -> Result<()> { FILE: src/parser.rs type LineLocation (line 26) | pub enum LineLocation { type InlineComment (line 35) | pub struct InlineComment { type FileComment (line 49) | pub struct FileComment { type ReviewAction (line 59) | pub enum ReviewAction { type Comment (line 67) | pub enum Comment { type StartState (line 79) | struct StartState { type FilePreambleState (line 94) | struct FilePreambleState { type FileDiffState (line 102) | struct FileDiffState { type SpanStartOrCommentState (line 116) | struct SpanStartOrCommentState { type CommentState (line 121) | struct CommentState { type State (line 142) | enum State { type ReviewParser (line 159) | pub struct ReviewParser { method new (line 240) | pub fn new() -> ReviewParser { method parse_line (line 246) | pub fn parse_line(&mut self, mut line: &str) -> Result> { method finish (line 500) | pub fn finish(self) -> Option { function is_diff_header (line 163) | fn is_diff_header(s: &str) -> bool { function is_prr_directive (line 170) | fn is_prr_directive(s: &str) -> Option<&str> { function parse_diff_header (line 180) | fn parse_diff_header(line: &str) -> Result { function parse_hunk_start (line 191) | fn parse_hunk_start(line: &str) -> Result> { function is_left_line (line 224) | fn is_left_line(line: &str) -> bool { function get_next_lines (line 229) | fn get_next_lines(line: &str, left: u64, right: u64) -> (u64, u64) { function test_fail (line 517) | fn test_fail(input: &str) { function test (line 529) | fn test(input: &str, expected: &[Comment]) { function single_comment (line 552) | fn single_comment() { function approve_review (line 565) | fn approve_review() { function reject_review (line 581) | fn reject_review() { function review_comment (line 597) | fn review_comment() { function file_comment (line 613) | fn file_comment() { function review_comment_whitespace (line 624) | fn review_comment_whitespace() { function multiline_comment (line 635) | fn multiline_comment() { function back_to_back_span (line 648) | fn back_to_back_span() { function multiple_files (line 669) | fn multiple_files() { function hunk_start_no_trailing_whitespace (line 690) | fn hunk_start_no_trailing_whitespace() { function add_oneliner (line 703) | fn add_oneliner() { function deleted_file (line 724) | fn deleted_file() { function empty_file (line 737) | fn empty_file() { function trailing_comment (line 750) | fn trailing_comment() { function spaces_in_filename (line 764) | fn spaces_in_filename() { function unterminated_span (line 777) | fn unterminated_span() { function cross_file_span_ignored (line 783) | fn cross_file_span_ignored() { function unterminated_back_to_back_span (line 789) | fn unterminated_back_to_back_span() { function cross_hunk_span (line 795) | fn cross_hunk_span() { function unknown_directive (line 801) | fn unknown_directive() { function hunk_oneliner_regex (line 807) | fn hunk_oneliner_regex() { function hunk_normal_regex (line 818) | fn hunk_normal_regex() { function hunk_only_one_line_on_each_side (line 829) | fn hunk_only_one_line_on_each_side() { function inline_and_review_comments_with_pr_description_present (line 840) | fn inline_and_review_comments_with_pr_description_present() { function review_comments_interleaved_with_pr_description (line 857) | fn review_comments_interleaved_with_pr_description() { FILE: src/prr.rs constant GITHUB_BASE_URL (line 27) | const GITHUB_BASE_URL: &str = "https://api.github.com"; function resolve_github_token (line 36) | fn resolve_github_token(config_token: Option<&str>, env_lookup: F) ->... type PrrConfig (line 66) | struct PrrConfig { type PrrLocalConfig (line 84) | struct PrrLocalConfig { type Config (line 92) | struct Config { method url (line 109) | fn url(&self) -> String { type Prr (line 98) | pub struct Prr { method new (line 136) | pub fn new(config_path: &Path, local_config_path: Option) -> ... method workdir (line 175) | fn workdir(&self) -> Result { method is_pr_metadata_experiment_active (line 218) | pub fn is_pr_metadata_experiment_active(&self) -> bool { method parse_pr_str (line 224) | pub fn parse_pr_str(&self, s: &str) -> Result<(String, String, u64)> { method get_pr (line 271) | pub async fn get_pr( method get_review (line 306) | pub fn get_review(&self, owner: &str, repo: &str, pr_num: u64) -> Resu... method submit_pr (line 311) | pub async fn submit_pr(&self, owner: &str, repo: &str, pr_num: u64, de... method submit_review (line 383) | async fn submit_review( method submit_file_comment (line 427) | async fn submit_file_comment( method apply_pr (line 472) | pub fn apply_pr(&self, owner: &str, repo: &str, pr_num: u64, apply_rep... method print_status (line 494) | pub fn print_status(&self, no_titles: bool) -> Result<()> { method remove (line 519) | pub async fn remove(&self, prs: &[String], force: bool, submitted: boo... function config (line 556) | fn config(global: &str, local: Option<&str>) -> (Prr, TempDir) { function test_parse_basic_pr_str (line 589) | async fn test_parse_basic_pr_str() { function test_parse_dotted_pr_str (line 598) | async fn test_parse_dotted_pr_str() { function test_parse_underscored_pr_str (line 607) | async fn test_parse_underscored_pr_str() { function test_parse_dashed_pr_str (line 616) | async fn test_parse_dashed_pr_str() { function test_parse_numbered_pr_str (line 625) | async fn test_parse_numbered_pr_str() { function test_parse_mixed_pr_str (line 634) | async fn test_parse_mixed_pr_str() { function test_parse_github_url (line 643) | async fn test_parse_github_url() { function test_parse_github_url_with_extra_path (line 652) | async fn test_parse_github_url_with_extra_path() { function test_parse_github_url_with_complex_path (line 661) | async fn test_parse_github_url_with_complex_path() { function test_parse_custom_github_host (line 670) | async fn test_parse_custom_github_host() { function test_local_config_repository (line 679) | async fn test_local_config_repository() { function test_global_workdir (line 697) | async fn test_global_workdir() { function test_local_workdir (line 709) | async fn test_local_workdir() { function test_local_workdir_relative (line 724) | async fn test_local_workdir_relative() { function test_local_workdir_override (line 742) | async fn test_local_workdir_override() { function test_invalid_relative_workdir (line 758) | async fn test_invalid_relative_workdir() { function copy_dir_all (line 769) | fn copy_dir_all(src: impl AsRef, dst: impl AsRef) { function test_resolve_github_token_with_no_config_token_fallback_to_env (line 784) | fn test_resolve_github_token_with_no_config_token_fallback_to_env() { function test_resolve_github_token_with_no_config_token_no_env_error (line 797) | fn test_resolve_github_token_with_no_config_token_no_env_error() { function test_resolve_github_token_config_token_preferred_over_env (line 809) | fn test_resolve_github_token_config_token_preferred_over_env() { function test_resolve_github_token_empty_config_token_falls_back_to_env (line 822) | fn test_resolve_github_token_empty_config_token_falls_back_to_env() { function test_resolve_github_token_env_var_precedence (line 835) | fn test_resolve_github_token_env_var_precedence() { function test_resolve_github_token_empty_env_var_error (line 850) | fn test_resolve_github_token_empty_env_var_error() { function test_apply_pr (line 866) | async fn test_apply_pr() { FILE: src/review.rs constant SNIP_VARIANTS (line 15) | const SNIP_VARIANTS: &[&str] = &["[..]", "[...]"]; type Review (line 18) | pub struct Review { method new (line 230) | pub fn new( method new_existing (line 307) | pub fn new_existing(workdir: &Path, owner: &str, repo: &str, pr_num: u... method comments (line 319) | pub fn comments(&self) -> Result<(ReviewAction, String, Vec Result<()> { method resolve_snips (line 392) | fn resolve_snips(&self, contents: &str) -> Result { method validate_review_file (line 419) | fn validate_review_file(&self, contents: &str) -> Result<()> { method reviewed (line 464) | fn reviewed(&self) -> Result { method path (line 473) | pub fn path(&self) -> PathBuf { method metadata (line 483) | fn metadata(&self) -> Result { method has_metadata (line 489) | fn has_metadata(&self) -> bool { method metadata_path (line 493) | fn metadata_path(&self) -> PathBuf { method commit_id (line 501) | pub fn commit_id(&self) -> Result> { method diff (line 506) | pub fn diff(&self) -> Result { method handle (line 511) | pub fn handle(&self) -> String { method status (line 516) | pub fn status(&self) -> Result { method remove (line 531) | pub fn remove(self, force: bool) -> Result<()> { type ReviewMetadata (line 31) | struct ReviewMetadata { type ReviewStatus (line 42) | pub enum ReviewStatus { type LineType (line 52) | enum LineType<'a> { method fmt (line 62) | fn fmt(&self, f: &mut Formatter<'_>) -> fmt_result { function from (line 74) | fn from(line: &'a str) -> Self { function prefix_lines (line 85) | fn prefix_lines(s: &str, prefix: &str) -> String { function get_all_existing (line 101) | pub fn get_all_existing(workdir: &Path) -> Result> { function resolve_snips_recurse (line 169) | fn resolve_snips_recurse<'a>(pattern: &[LineType<'a>], text: &[&'a str])... function setup (line 556) | fn setup(review: &str, metadata: &str) -> (Review, TempDir) { function test_validate_stripped (line 584) | fn test_validate_stripped() { function test_review_status (line 595) | fn test_review_status() { function test_review_validation_with_pr_description (line 624) | fn test_review_validation_with_pr_description() { function test_review_validation_with_interleaving_pr_description (line 634) | fn test_review_validation_with_interleaving_pr_description() { function test_new_review (line 645) | fn test_new_review() { function test_snip_single (line 668) | fn test_snip_single() { function test_snip_multiple (line 678) | fn test_snip_multiple() { function test_snip_comments (line 688) | fn test_snip_comments() { function test_snip_single_exhaustive (line 700) | fn test_snip_single_exhaustive() {