Swift Vapor 和模块;如何区分两个重叠'type symbols'

Swift Vapor and modules; how to distinguish two overlapping 'type symbols'

我希望将一些 (iOS) 客户端代码重新使用到示例 Vapor 服务器端项目中。

相关代码依赖于 SwiftyJSON 功能,定义为结构 JSON;现在这个名称槽不是 'free',但已经在 Vapor 依赖的包中使用(包名称也是 JSON)。

虽然我可以在我以前的客户端代码中指出我想要的 JSON 东西(如 App.JSON),但样板化到代码中的控制器也使用 JSON。显然像我一样将 SwiftyJSON 库文件放入 App 命名空间实际上覆盖了对 Vapor JSON.

的无模块引用

然后我尝试参考 JSON.JSON,但它没有被识别。 JSON是项目中定义编译好的框架。它不应该也隐含地定义一个模块名称吗?

那我怎样才能到达 Vapor 的 JSON?

谢谢..

事实上,Vapor 模块也导出了 JSON。因此,以下工作:

import Vapor

// Introduce a symbol collision
struct JSON {}

// Import from the Vapor module
print(try Vapor.JSON(node: "test"))