module 나누기

joonpark·2022년 1월 14일
0

42_cli

목록 보기
3/5

문제

OAuth2로 access_token 까지 얻은 상태.
문제는 지금 main.rs에 다 구현된 상태.
거기다 me 요청을 보냈을 때 사용할 구조체도 분리 필요.

src/
    main.rs

이 상태에서
최종적으로 만들고 싶은 모습은 아래와 같다.

src/
    authorize/ -> 인증 관련
        some_file1
        some_file2
        some_file3
    info_struct/ -> request 에 사용할 구조체
        some_file1
        some_file2
        some_file3

해결

1

일단 러스트 모듈 개념이 너무 헷갈린다.
모듈 설명 이 영상이 그나마 잘 설명해준다.
아무튼 러스트가 모듈을 찾는 순서를 보면
먼저 lib.rs를 보고 거기에 선언된 모듈을 보는 식으로 찾는다.

// lib.rs
pub mod authorize
pub mod info_struct

이런 lib.rs 파일이 있으면 authorize, info_struct 모듈을 찾을 수 있다.

2

러스트에서 모듈을 만드는(?) 방법은 3개가 있다.

1. 
src/
    main.rs
    lib.rs
    module1.rs
    module2.rs
    
2.
src/
    main.rs
    lib.rs
    module1/
    	   module1.rs
    module2/
    	   module2.rs
           
3.
src/
    main.rs
    lib.rs
    module1/
    	   mod.rs
    module2/
    	   mod.rs

2, 3번 차이는 모듈 디렉터리 안에서 모듈 파일 이름을 어떻게 하냐 차이다. 공식 문서에는 하위 모듈이 없으면 2번, 하위 모듈이 있으면 3번으로 한다고 나왔는데 나는 하위 모듈을 만들기 때문에 3번처럼 하면 된다.
최종 모습은 아래처럼 나온다.

src/
    authorize/
             mod.rs
             token.rs
    info_struct/
               mod.rs
               me.rs

authorize나 info_struct안에 있는 하위 모듈을 쓰려면 mod.rs에 모듈을 선언해줘야 됨.

// mod.rs
...
...
pub mod token

0개의 댓글