diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 9cef846..56d1a6e 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -23,3 +23,16 @@ jobs: with: command: test args: ${{ matrix.args }} + build_no_std: + steps: + - uses: actions/checkout@v1 + - uses: actions-rs/toolchain@v1 + with: + profile: minimal + toolchain: nightly + target: thumbv6m-none-eabi + default: true + - uses: actions-rs/cargo@v1 + with: + command: build + args: --target thumbv6m-none-eabi -p enumset_test_no_std diff --git a/Cargo.toml b/Cargo.toml index 397ceed..e1c7968 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -2,6 +2,7 @@ members = [ "enumset", "enumset_derive", + "enumset_test_no_std", ] [profile.release] diff --git a/enumset_test_no_std/Cargo.toml b/enumset_test_no_std/Cargo.toml new file mode 100644 index 0000000..ceaa230 --- /dev/null +++ b/enumset_test_no_std/Cargo.toml @@ -0,0 +1,9 @@ +[package] +name = "enumset_test_no_std" +version = "0.0.0" +edition = "2021" + +description = "DO NOT PUBLISH" + +[dependencies] +enumset = { path = "../enumset" } diff --git a/enumset_test_no_std/src/main.rs b/enumset_test_no_std/src/main.rs new file mode 100644 index 0000000..9bc334b --- /dev/null +++ b/enumset_test_no_std/src/main.rs @@ -0,0 +1,26 @@ +#![no_std] +#![feature(start)] + +use core::panic::PanicInfo; +use enumset::*; + +#[derive(EnumSetType)] +pub enum SmallEnum { + A, + B, + C, +} + +#[start] +fn main(_: isize, _: *const *const u8) -> isize { + let e = SmallEnum::A | SmallEnum::B; + if e.contains(SmallEnum::C) { + panic!("oh no!"); + } + 0 +} + +#[panic_handler] +fn panic(_info: &PanicInfo) -> ! { + loop {} +}