3 个版本
0.1.2 | 2021年10月30日 |
---|---|
0.1.1 | 2021年9月28日 |
0.1.0 | 2021年9月27日 |
#75 in #portable
在 narthex_web_app 中使用
11KB
69 代码行数,不包括注释
narthex-engine-trait
此crate为创建可在PC和Android移动手机上运行的便携式应用程序的系统提供引擎特质。
更多信息,请参阅API文档:https://docs.rs/narthex_engine_trait/0.1.0/narthex_engine_trait/
此源代码形式受Mozilla公共许可证第2.0版的条款约束。如果没有随此文件分发MPL副本,您可以从中获得一份:https://mozilla.org/MPL/2.0/。
lib.rs
:
此系统可构建可在PC和Android移动手机上运行的便携式应用程序。
有一个示例仓库,实现了经典Wumpus游戏的PC和Android移动端示例。这两个平台的实现共享一个共同的底层('engine'),否则使用与应用程序差别很小的样板代码。
总体而言
系统包含以下部分,每个部分都在GitHub仓库中。本节描述了在实现不同的应用程序时需要更改哪些部分。某些部分不需要任何更改,某些部分是示例,通常不需要太多更改,而 engine crate 需要编写以提供新应用程序的功能。
- narthex-engine-trait 定义了 [EngineTrait];实现新应用程序通常不需要更改。
- narthex-wumpus 是此框架的示例。有关此内容,请参阅 GitHub上的 narthex-wumpus 页面。 narthex-wumpus 仓库包含以下内容:
- engine crate 包含实现Wumpus游戏的代码,它实现了 [EngineTrait]。
- wumpus crate 是游戏PC实现的客户端;实现新应用程序通常不需要太多更改。
- wumpus-c crate 是 engine crate 的C绑定;实现新应用程序通常不需要太多更改。
- Wumpus 是游戏Android实现的代码(Java等);实现新应用程序通常不需要太多更改。
- narthex-web-app 是一些代码,可以更轻松地将应用程序的PC实现组合起来;实现新应用程序通常不需要更改。有关更多信息,请参阅 narthex-web-app 文档。
本页面描述了Engine
和用户界面之间的[EngineTrait]接口。此crate实现新应用时无需任何更改。
创建引擎(整体架构)
要创建应用程序,您需要在您的应用程序中创建以下类型。满足[EngineTrait]的引擎执行特定于应用程序的功能。
- 一开始,用户界面将为引擎创建一个网页视图(浏览器)。
- 在初始化时,主程序通过传递满足[ConfigTrait]的
Config
将配置传递给引擎。 - 用户界面将调用
engine.initial_html()
,并且引擎必须返回一个HTML字符串。 - 然后,对于每个用户输入,用户界面使用
engine.execute(action)
将操作传递给引擎,并且引擎必须返回一个满足[ResponseTrait]的响应返回给用户界面。 - 此外,对于应用程序事件,用户界面使用
engine.execute(action)
将事件传递给引擎,并且引擎必须返回一个满足[ResponseTrait]的响应返回给用户界面。 - 最后,引擎将返回一个带有
response.shutdown_required()
的响应,并且用户界面将终止应用程序。
依赖项
~1.4–2.4MB
~46K SLoC