Ditto

一个用 Swift 编写的轻量级路由系统。

用法

let router = Router<Void>(schemes: ["ditto"])
let endpoint = Endpoint(url: URL(string: "ditto://foo/:bar")!)
let route = Route<Void>(endpoint: endpoint) { context in
    guard let bar: Int = try? context.argument(forKey: "bar") else {
        return false
    }
    print(bar) // 233
    return true
}

router.register(route)

let url = URL(string: "ditto://foo/233")!
if router.responds(to: url) {
    router.route(to: url)
}

高级

class Router {
    // Register home page route use silgen prefix `ditto:`
    // alligator://home
    // https://www.alligator.com/home
    @_silgen_name("ditto:/home")
    func home(context: Context<RoutingCoordinator>) -> Bool {
        return true
    }
}

许可

Ditto 基于 MIT 许可证发布。有关更多信息,请参阅 LICENSE 文件。