SYMBOL INDEX (117 symbols across 13 files) FILE: sd-cli/src/cli.rs type Options (line 17) | pub struct Options { function debug_assert (line 87) | fn debug_assert() { FILE: sd-cli/src/main.rs function main (line 8) | fn main() { function try_main (line 15) | fn try_main() -> Result<()> { FILE: sd-cli/tests/cli.rs function sd (line 7) | fn sd() -> Command { function assert_file (line 11) | fn assert_file(path: &std::path::Path, content: &str) { function create_soft_link (line 21) | fn create_soft_link>( function in_place (line 32) | fn in_place() -> Result<()> { function in_place_with_empty_result_file (line 46) | fn in_place_with_empty_result_file() -> Result<()> { function in_place_following_symlink (line 64) | fn in_place_following_symlink() -> Result<()> { function replace_into_stdout (line 84) | fn replace_into_stdout() -> Result<()> { function stdin (line 99) | fn stdin() -> Result<()> { function bad_replace_helper_styled (line 109) | fn bad_replace_helper_styled(replace: &str) -> String { function fixed_strings_ambiguous_replace_is_fine (line 118) | fn fixed_strings_ambiguous_replace_is_fine() { function ambiguous_replace_basic (line 131) | fn ambiguous_replace_basic() { function ambiguous_replace_variable_width (line 142) | fn ambiguous_replace_variable_width() { function ambiguous_replace_multibyte_char (line 153) | fn ambiguous_replace_multibyte_char() { function ambiguous_replace_issue_44 (line 164) | fn ambiguous_replace_issue_44() { function ambiguous_replace_ensure_styling (line 179) | fn ambiguous_replace_ensure_styling() { function limit_replacements_file (line 192) | fn limit_replacements_file() -> Result<()> { function limit_replacements_file_preview (line 206) | fn limit_replacements_file_preview() -> Result<()> { function limit_replacements_stdin (line 228) | fn limit_replacements_stdin() { function limit_replacements_stdin_preview (line 237) | fn limit_replacements_stdin_preview() { constant UNTOUCHED_CONTENTS (line 245) | const UNTOUCHED_CONTENTS: &str = "untouched"; function assert_fails_correctly (line 247) | fn assert_fails_correctly( function correctly_fails_on_missing_file (line 267) | fn correctly_fails_on_missing_file() -> Result<()> { function line_by_line_stdin (line 286) | fn line_by_line_stdin() -> Result<()> { function line_by_line_in_place (line 297) | fn line_by_line_in_place() -> Result<()> { function line_by_line_preserves_no_trailing_newline (line 311) | fn line_by_line_preserves_no_trailing_newline() -> Result<()> { function line_by_line_caret_no_phantom (line 322) | fn line_by_line_caret_no_phantom() -> Result<()> { function line_by_line_whitespace_trim (line 333) | fn line_by_line_whitespace_trim() -> Result<()> { function correctly_fails_on_unreadable_file (line 348) | fn correctly_fails_on_unreadable_file() -> Result<()> { function reports_errors_on_atomic_file_swap_creation_failure (line 385) | fn reports_errors_on_atomic_file_swap_creation_failure() -> Result<()> { constant FIND_REPLACE (line 457) | const FIND_REPLACE: [&str; 2] = ["able", "ed"]; constant ORIG_TEXT (line 458) | const ORIG_TEXT: &str = "modifiable"; constant MODIFIED_TEXT (line 459) | const MODIFIED_TEXT: &str = "modified"; constant FILE_SHARE_NONE (line 460) | const FILE_SHARE_NONE: u32 = 0; constant FILE_SHARE_READ (line 461) | const FILE_SHARE_READ: u32 = 0x00000001; constant FILE_SHARE_WRITE (line 462) | const FILE_SHARE_WRITE: u32 = 0x00000002; function correctly_fails_on_unreadable_file (line 465) | fn correctly_fails_on_unreadable_file() -> Result<()> { function reports_errors_on_atomic_file_swap_creation_failure (line 501) | fn reports_errors_on_atomic_file_swap_creation_failure() -> Result<()> { FILE: sd/src/error.rs type Error (line 6) | pub enum Error { method fmt (line 23) | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { type Result (line 28) | pub type Result = std::result::Result; type FailedJobs (line 30) | pub struct FailedJobs(pub Vec<(PathBuf, Error)>); method fmt (line 33) | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { method fmt (line 44) | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { FILE: sd/src/input.rs type Source (line 10) | pub enum Source { method from_paths (line 16) | pub fn from_paths(paths: Vec) -> Result> { method from_stdin (line 29) | pub fn from_stdin() -> Vec { method display (line 33) | pub fn display(&self) -> String { function open_source (line 41) | pub fn open_source(source: &Source) -> Result> { function read_source (line 54) | pub fn read_source(source: &Source) -> Result> { FILE: sd/src/lib.rs function process_sources (line 17) | pub fn process_sources( function process_sources_line_by_line (line 86) | fn process_sources_line_by_line( function process_reader_line_by_line (line 136) | fn process_reader_line_by_line( function write_file_line_by_line (line 179) | fn write_file_line_by_line(replacer: &Replacer, path: &PathBuf) -> Resul... function write_with_temp (line 205) | fn write_with_temp(path: &PathBuf, data: &[u8]) -> Result<()> { function test_process_sources_with_preview (line 235) | fn test_process_sources_with_preview() -> Result<()> { function test_process_sources_in_place (line 254) | fn test_process_sources_in_place() -> Result<()> { function test_process_sources_nonexistent_file (line 273) | fn test_process_sources_nonexistent_file() { function test_write_with_temp (line 291) | fn test_write_with_temp() -> Result<()> { function test_process_sources_line_by_line_preview (line 306) | fn test_process_sources_line_by_line_preview() -> Result<()> { function test_process_sources_line_by_line_in_place (line 325) | fn test_process_sources_line_by_line_in_place() -> Result<()> { function test_line_by_line_no_trailing_newline (line 344) | fn test_line_by_line_no_trailing_newline() -> Result<()> { function test_line_by_line_caret_no_phantom (line 363) | fn test_line_by_line_caret_no_phantom() -> Result<()> { function test_line_by_line_whitespace_trim (line 381) | fn test_line_by_line_whitespace_trim() -> Result<()> { FILE: sd/src/output.rs function write_atomic (line 4) | pub(crate) fn write_atomic(path: &Path, data: &[u8]) -> Result<()> { FILE: sd/src/replacer/mod.rs type Replacer (line 13) | pub struct Replacer { method new (line 21) | pub fn new( method replace (line 72) | pub fn replace<'a>(&'a self, content: &'a [u8]) -> Cow<'a, [u8]> { method replacen (line 97) | pub fn replacen<'haystack, R: regex::bytes::Replacer>( FILE: sd/src/replacer/tests.rs type Replace (line 24) | struct Replace { method test (line 34) | fn test(&self) { function default_global (line 53) | fn default_global() { function escaped_char_preservation (line 65) | fn escaped_char_preservation() { function case_sensitive_default (line 77) | fn case_sensitive_default() { function sanity_check_literal_replacements (line 99) | fn sanity_check_literal_replacements() { function unescape_regex_replacements (line 112) | fn unescape_regex_replacements() { function no_unescape_literal_replacements (line 124) | fn no_unescape_literal_replacements() { function full_word_replace (line 137) | fn full_word_replace() { function escaping_unnecessarily (line 150) | fn escaping_unnecessarily() { FILE: sd/src/replacer/validate.rs type InvalidReplaceCapture (line 4) | pub struct InvalidReplaceCapture { method fmt (line 15) | fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { function validate_replace (line 121) | pub fn validate_replace(s: &str) -> Result<(), InvalidReplaceCapture> { type Span (line 142) | struct Span { method start_at (line 148) | fn start_at(start: usize) -> SpanOpen { method new (line 152) | fn new(start: usize, end: usize) -> Self { method slice (line 158) | fn slice(self, s: &str) -> &str { method len (line 162) | fn len(self) -> usize { type SpanOpen (line 168) | struct SpanOpen { method end_at (line 173) | fn end_at(self, end: usize) -> Span { method end_offset (line 178) | fn end_offset(self, offset: usize) -> Span { type Capture (line 186) | struct Capture<'rep> { function new (line 192) | fn new(name: &'rep str, span: Span) -> Self { type ReplaceCaptureIter (line 202) | struct ReplaceCaptureIter<'rep>(CharIndices<'rep>); function new (line 205) | fn new(s: &'rep str) -> Self { type Item (line 211) | type Item = Capture<'rep>; method next (line 213) | fn next(&mut self) -> Option { function find_cap_ref (line 249) | fn find_cap_ref(rep: &[u8], open_span: SpanOpen) -> Option> { function find_cap_ref_braced (line 273) | fn find_cap_ref_braced(rep: &[u8], open_span: SpanOpen) -> Option bool { function literal_dollar_sign (line 303) | fn literal_dollar_sign() { function wacky_captures (line 310) | fn wacky_captures() { constant INTERPOLATED_CAPTURE (line 331) | const INTERPOLATED_CAPTURE: &str = ""; function upstream_interpolate (line 333) | fn upstream_interpolate(s: &str) -> String { function our_interpolate (line 344) | fn our_interpolate(s: &str) -> String { FILE: sd/src/unescape.rs function unescape (line 6) | pub fn unescape(input: &str) -> String { function escape_n_chars (line 47) | fn escape_n_chars(chars: &mut Chars<'_>, length: usize) -> Option { function test_unescape (line 60) | fn test_unescape() { FILE: xtask/src/generate.rs function generate (line 12) | pub fn generate() { function gen_shell (line 18) | fn gen_shell(base_dir: &Path) { function gen_man (line 28) | fn gen_man(base_dir: &Path) { FILE: xtask/src/main.rs type Cli (line 11) | struct Cli { type Commands (line 17) | enum Commands { function main (line 22) | fn main() { function project_root (line 32) | fn project_root() -> PathBuf {