minigrep refine

I/O 프로젝트 개선하기

명령줄 인수, 환경 변수, 검색 함수가 반복자와 클로저로 어떻게 단순해지는지 Config::build 경계부터 읽습니다.

3

개선 지점

복사 줄이 줄고, 실패 반환이 선명해지고, 검색 로직 테스트가 작아집니다.

args

인수 반복자

env::args()를 그대로 넘겨 clone보다 소유권 흐름이 직접 보이게 합니다.

case

대소문자 옵션

IGNORE_CASE는 설정 생성 시 읽고, 검색 함수는 분기된 책임만 맡습니다.

search

검색 파이프

lines, filter, collect 순서로 조건에 맞는 줄만 결과 벡터로 모읍니다.

테스트 기준

  • 대소문자 구분 검색과 무시 검색의 기대 줄을 따로 고정합니다.
  • 인수가 부족한 경우 Err가 어떤 문구를 담는지 확인합니다.

책임 분리

  • main은 실행 조립, run은 파일 읽기와 출력, 검색 함수는 순수 비교를 담당합니다.
  • 환경 변수 판단은 검색 루프 안으로 흩어지지 않게 둡니다.