Skip to content

Commit

Permalink
Merge pull request #167 from paholg/publish
Browse files Browse the repository at this point in the history
Add publish action
  • Loading branch information
paholg authored Mar 13, 2021
2 parents 39eedb7 + a394b35 commit 6721edd
Show file tree
Hide file tree
Showing 3 changed files with 67 additions and 30 deletions.
30 changes: 30 additions & 0 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
on:
push:
tags:
- 'v*'

name: Publish

jobs:
release:
name: GitHub Release
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: marvinpinto/action-automatic-releases@latest
with:
repo_token: "${{ secrets.GITHUB_TOKEN }}"
prerelease: false

publish:
name: Crates.io Publish
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true
- uses: katyo/publish-crates@v1
with:
registry-token: ${{ secrets.CARGO_REGISTRY_TOKEN }}
31 changes: 18 additions & 13 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

This project follows semantic versioning.

The MSRV (Minimum Supported Rust Version) is 1.37.0, and typenum is tested against this Rust
version.
The MSRV (Minimum Supported Rust Version) is 1.37.0, and typenum is tested
against this Rust version.

### Unreleased
- [changed] MSRV from 1.22.0 to 1.37.0.
Expand All @@ -27,13 +27,15 @@ version.
- [fixed] Cross compilation from Linux to Windows.

### 1.11.1 (2019-08-25)
- [fixed] Builds on earlier Rust builds again and added Rust 1.22.0 to Travis to prevent future breakage.
- [fixed] Builds on earlier Rust builds again and added Rust 1.22.0 to Travis to
prevent future breakage.

### 1.11.0 (2019-08-25)
- [added] Integer `log2` to the `op!` macro.
- [added] Integer binary logarithm operator `Logarithm2` with alias `Log2`.
- [changed] Removed `feature(i128_type)` when running with the `i128` feature. Kept the feature flag.
for typenum to maintain compatibility with old Rust versions.
- [changed] Removed `feature(i128_type)` when running with the `i128`
feature. Kept the feature flag. for typenum to maintain compatibility with
old Rust versions.
- [added] Integer `sqrt` to the `op!` macro.
- [added] Integer square root operator `SquareRoot` with alias `Sqrt`.
- [fixed] Bug with attempting to create U1024 type alias twice.
Expand All @@ -44,7 +46,8 @@ version.

### 1.9.0 (2017-05-14)
- [added] The `Abs` type operater and corresponding `AbsVal` alias.
- [added] The feature `i128` that enables creating 128-bit integers from typenums.
- [added] The feature `i128` that enables creating 128-bit integers from
typenums.
- [added] The `assert_type!` and `assert_type_eq!` macros.
- [added] Operators to the `op!` macro, including those performed by `cmp!`.
- [fixed] Bug in `op!` macro involving functions and convoluted expressions.
Expand All @@ -56,13 +59,14 @@ version.
- [added] Some comparison type-operators that are used by the `cmp!` macro.

### 1.7.0 (2017-03-24)
- [added] Type operators `Min` and `Max` with accompanying aliases `Minimum` and `Maximum`
- [added] Type operators `Min` and `Max` with accompanying aliases `Minimum` and
`Maximum`

### 1.6.0 (2017-02-24)
- [fixed] Bug in `Array` division.
- [fixed] Bug where `Rem` would sometimes exit early with the wrong answer.
- [added] `PartialDiv` operator that performs division as a partial function -- it's defined only
when there is no remainder.
- [added] `PartialDiv` operator that performs division as a partial function --
it's defined only when there is no remainder.

### 1.5.2 (2017-02-04)
- [fixed] Bug between `Div` implementation and type system.
Expand All @@ -71,9 +75,9 @@ version.
- [fixed] Expanded implementation of `Pow` for primitives.

### 1.5.0 (2016-11-03)
- [added] Functions to the `Pow` and `Len` traits. This is *technically* a breaking change, but it
would only break someone's code if they have a custom impl for `Pow`. I would be very surprised
if that is anyone other than me.
- [added] Functions to the `Pow` and `Len` traits. This is *technically* a
breaking change, but it would only break someone's code if they have a custom
impl for `Pow`. I would be very surprised if that is anyone other than me.

### 1.4.0 (2016-10-29)
- [added] Type-level arrays of type-level integers. (PR #66)
Expand All @@ -89,4 +93,5 @@ version.
### 1.2.0 (2016-01-03)
- [added] This change log!
- [added] Convenience type aliases for operators. (Issue #48, PR #50)
- [added] Types in this crate now derive all possible traits. (Issue #42, PR #51)
- [added] Types in this crate now derive all possible traits. (Issue #42, PR
#51)
36 changes: 19 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,20 +4,21 @@
Typenum
=====

Typenum is a Rust library for type-level numbers evaluated at compile time. It currently
supports bits, unsigned integers, and signed integers.
Typenum is a Rust library for type-level numbers evaluated at compile time. It
currently supports bits, unsigned integers, and signed integers.

Typenum depends only on libcore, and so is suitable for use on any platform!

For the full documentation, go [here](https://docs.rs/typenum).

### Importing

While `typenum` is divided into several modules, they are all re-exported through the crate root,
so you can import anything contained herein with `use typenum::whatever;`, ignoring the
crate structure.
While `typenum` is divided into several modules, they are all re-exported
through the crate root, so you can import anything contained herein with `use
typenum::whatever;`, ignoring the crate structure.

You may also find it useful to treat the `consts` module as a prelude, perfoming a glob import.
You may also find it useful to treat the `consts` module as a prelude, perfoming
a glob import.

### Example

Expand All @@ -33,26 +34,27 @@ type Y = Exp<N2, P3>;
assert_eq!(<Y as Integer>::to_i32(), -8);
```

For a non-trivial example of its use, see one of the crates that depends on it. The full
list is [here](https://crates.io/crates/typenum/reverse_dependencies). Of note are
[dimensioned](https://crates.io/crates/dimensioned/) which does compile-time type
checking for arbitrary unit systems and
[generic-array](https://crates.io/crates/generic-array/) which provides arrays whose
length you can generically refer to.
For a non-trivial example of its use, see one of the crates that depends on
it. The full list is
[here](https://crates.io/crates/typenum/reverse_dependencies). Of note are
[dimensioned](https://crates.io/crates/dimensioned/) which does compile-time
type checking for arbitrary unit systems and
[generic-array](https://crates.io/crates/generic-array/) which provides arrays
whose length you can generically refer to.

### Error messages


Typenum's error messages aren't great, and can be difficult to parse. The good news is
that the fine folks at Auxon have written a tool to help with it. Please take a look at
[tnfilt](https://github.com/auxoncorp/tnfilt).
Typenum's error messages aren't great, and can be difficult to parse. The good
news is that the fine folks at Auxon have written a tool to help with it. Please
take a look at [tnfilt](https://github.com/auxoncorp/tnfilt).

### License

Licensed under either of

* Apache License, Version 2.0
([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0)
* Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or
http://www.apache.org/licenses/LICENSE-2.0)
* MIT license
([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT)

Expand Down

0 comments on commit 6721edd

Please sign in to comment.