#watch #api-wrapper #wrapper #pebble #raii #embedded #user-interface

nightly pebble-skip

为 Pebble (手表) SDK 4.3 的高层 API 包装器

1 个不稳定版本

0.0.1 2020年10月31日

#5 in #pebble

MIT/Apache

48KB
1K SLoC

pebble-skip

Lib.rs Crates.io Docs.rs

Rust nightly-2020-10-30 Build Status Crates.io - License

GitHub open issues open pull requests crev reviews

这是一个半透明的 Pebble (手表) SDK 4.3 高层 API 包装器,可在 https://developer.rebble.io/developer.pebble.com/sdk/index.html 找到。

Pebble SDK 不自动包含,但您可以构建一个静态链接库,并使用官方工具链来链接和打包手表应用程序。 请参见此处示例。

此软件包仍在积极开发中,因此请预期在 0.1 版本之前会有频繁的破坏性更改和缺失的功能。如果您希望我优先考虑特定的 API,请 在 GitHub 上提交功能请求

安装

请使用 cargo-edit 总是添加此库的最新版本

cargo add pebble-skip

示例

#![no_std]

use debugless_unwrap::DebuglessUnwrap as _;
use pebble_skip::{
  foundation::app,
  standard_c::CStr,
  user_interface::window::number_window::{NumberWindow, NumberWindowData},
};

#[no_mangle]
pub extern "C" fn main() -> i32 {
  let label = CStr::try_from_static("miles to see you\0").unwrap();
  let number_window = NumberWindow::new(
    &label,
    NumberWindowData {
      incremented: |_, _| (),
      decremented: |_, _| (),
      selected: |_, _| (),
      context: (),
    },
  )
  .debugless_unwrap();
  number_window.set_value(10_000);
  let window = number_window.window();
  window.show(true);
  app::event_loop();
  0
}

许可协议

根据您选择,许可协议为

任选其一。

贡献

除非您明确说明,否则您有意提交的任何贡献,根据 Apache-2.0 许可证定义,均应如上所述双重许可,不得附加任何额外条款或条件。

行为准则

变更日志

版本控制

pebble-skip 严格遵循 语义版本控制 2.0.0,但有以下例外

  • 次要版本在主要版本更改时不会重置为 0(除 v1 之外)。
    将其视为全局功能级别。
  • 补丁版本在主要或次要版本更改时不会重置为 0(除 v0.1 和 v1 之外)。
    将其视为全局补丁级别。

这包括上述 Rust 版本要求。
早期 Rust 版本可能兼容,但此兼容性可能会随着次要或补丁版本而变化。

受功能和补丁影响的版本可以从 CHANGELOG.md 中的相应标题中确定。

依赖项

~41KB