src/main.rs
입력 경계
env::args로 인수를 모으고 실패 메시지를 사용자에게 보여준다.
종료 결정
process::exit로 실패 상태 코드를 반환한다.
바이너리는 실행 경계를 담당하고, 라이브러리는 설정과 실제 작업을 공개 API로 제공한다.
env::args로 인수를 모으고 실패 메시지를 사용자에게 보여준다.
process::exit로 실패 상태 코드를 반환한다.
검색어와 파일 경로를 검증해 설정 객체로 묶고 Err를 반환한다.
파일 읽기와 검색 로직을 수행하고 실패를 Result로 전파한다.
main과 테스트 코드가 같은 함수와 타입을 호출할 수 있게 한다.
main은 직접 테스트하기 어려우므로 작게 남긴다. 대부분의 동작은 lib.rs의 공개 함수로 옮겨 단위 테스트가 접근할 수 있게 만든다.