generate enumeration and vector(statistics)
์ ๋ ฅ data ๊ธฐ๋ฐ์ผ๋ก
enum ํจํค์ง๋ฅผ ๋ง๋ ๋ค.
์ ํ์ ์ผ๋ก bit flag ํจํค์ง๋ฅผ ๋ง๋ค ์ ์๋ค.
์ ํ์ ์ผ๋ก vector(ํต๊ณ) ํจํค์ง ๋ฅผ ๋ง๋ค ์๋ ์๋ค.
์ฌ์ฉ๋ฒ
์คํ ์ธ์
typename : ๋ง๋ค enum์ type
basedir : ๋ง๋ค์ด์ง ํจํค์ง๋ค์ผ ์ํ ํด๋
packagename : ๋ง๋ค์ด์ง ํจํค์ง์ด๋ฆ(==ํด๋์ด๋ฆ) ๋์์ ์ฝ์ด ๋ค์ผ data ํ์ผ ์ด๋ฆ,
packagename.enum ํ์ผ์ basedir์์ ์ฝ์ด ๋ค์ธ๋ค.
vectortype : ๋ฒกํฐ ํจํค์ง๋ฅผ ๋ง๋ค๋ ์ฌ์ฉํ element ํ์ , ์์ผ๋ฉด ๋ฒกํฐ ํจํค์ง๋ฅผ ๋ง๋ค์ง ์๋๋ค.
flagtype : bit flag ํจํค์ง๋ฅผ ๋ง๋ค๋ ์ฌ์ฉํ ํ์ enum ๊ฐฏ์๋ณด๋ค ํฐ bit len์ ๊ฐ์ ธ์ผ ํ๋ค.
uint8, uint16, uint32, uint64 ์คํ๋๋ฅผ ์ถ์ฒ
verbose : goimports ๋ฅผ ํด์ผํ ํ์ผ ๋ชฉ๋ก์ ์ฐ์ด ์ค๋๋ค.
๋ฐ์ดํฐ ํ์ผ ํํ
ํ์ค์ ํ๊ฐ์ enum์ ์ ์
๊ฐ ๋ผ์ธ์ ์ฒซ ๋จ์ด๊ฐ enum ์ด๊ณ space ๋ก ๋ถ๋ฆฌ๋ ๋ท ๋ถ๋ถ์ ์์ฑ๋ ์ฝ๋์ comment๊ฐ ๋๋ค.
# ์ผ๋ก ์์ํ๋ ๋ผ์ธ์ ๋ฌด์(comment์ทจ๊ธ)
achievetype.enum ์ฐธ๊ณ
์์ฑ์ด ๋๋ ์ฝ๋๋ค์ import code๊ฐ ์ ๋๋ก ๋์ด ์์ง ์์ผ๋ goimports ๋ฑ์ผ๋ก ์ ๋ฆฌ ํด์ฃผ์ด์ผ ํฉ๋๋ค.
example.sh๋ฅผ ์คํํ ๊ฒฐ๊ณผ
goimports -w achievetype/achievetype_gen.go
goimports -w achievetype_flag/achievetype_flag_gen.go
goimports -w achievetype_vector/achievetype_vector_gen.go