@@ -12,6 +12,13 @@ type Mounter interface {
1212 Mount (Register )
1313}
1414
15+ // MountFunc Mount函数用于简化配置
16+ type MountFunc func (Register )
17+
18+ func (m MountFunc ) Mount (r Register ) {
19+ m (r )
20+ }
21+
1522// 获取当前请求路径
1623func GetReqPath (r * http.Request ) string {
1724 path := r .URL .RawPath
@@ -30,33 +37,34 @@ func Attach(i interface{}, t *Twig) {
3037 }
3138}
3239
40+ // Cfg Twig路由配置工具
41+ // 对当前的Register和Namer进行配置
3342type Cfg struct {
3443 R Register
3544 N Namer
3645}
3746
47+ // Config 指定Register创建Config
3848func Config (r Register ) * Cfg {
3949 return & Cfg {
4050 R : r ,
4151 N : nil ,
4252 }
4353}
4454
45- func (c * Cfg ) WithNamer (n Namer ) * Cfg {
46- c .N = n
47- return c
48- }
49-
55+ // SetName 设置当前Namer的名称
5056func (c * Cfg ) SetName (name string ) * Cfg {
5157 c .N .SetName (name )
5258 return c
5359}
5460
61+ // Use 当前Register增加中间件
5562func (c * Cfg ) Use (m ... MiddlewareFunc ) * Cfg {
5663 c .R .Use (m ... )
5764 return c
5865}
5966
67+ // AddHandler 增加Handler
6068func (c * Cfg ) AddHandler (method , path string , handler HandlerFunc , m ... MiddlewareFunc ) * Cfg {
6169 c .N = c .R .AddHandler (method , path , handler , m ... )
6270 return c
@@ -94,19 +102,22 @@ func (c *Cfg) Trace(path string, handler HandlerFunc, m ...MiddlewareFunc) *Cfg
94102 return c .AddHandler (TRACE , path , handler , m ... )
95103}
96104
105+ // Mount 挂载Mounter到当前Register
97106func (c * Cfg ) Mount (mount Mounter ) * Cfg {
98107 mount .Mount (c .R )
99108 c .N = nil
100109 return c
101110}
102111
112+ // Static 增加静态路由
103113func (c * Cfg ) Static (path , file string , m ... MiddlewareFunc ) * Cfg {
104114 return c .Get (path , Static (file ), m ... )
105115}
106116
107- func (c * Cfg ) Done () {
108- c .R = nil
109- c .N = nil
117+ // Group 配置路由组
118+ func (c * Cfg ) Group (path string , m MountFunc ) * Cfg {
119+ m (NewGroup (c .R , path ))
120+ return c
110121}
111122
112123// Group 提供理由分组支持
0 commit comments