generate enumeration and statistics


Keywords
enum, enumeration, golang, metaprogramming, statistics, vector
License
Apache-2.0
Install
go get github.com/kasworld/genenum

Documentation

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