mirror of
https://github.com/pezkuwichain/pezframe-metadata.git
synced 2026-04-22 01:57:59 +00:00
CI build & reformat. (#1)
* CI build & reformat. * Fix no default features builds. * Fix v12 build.
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
name: Cargo deny
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
schedule:
|
||||
- cron: '0 0 * * *'
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
tags:
|
||||
- v*
|
||||
paths-ignore:
|
||||
- 'README.md'
|
||||
jobs:
|
||||
cargo-deny:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Cancel Previous Runs
|
||||
uses: styfle/cancel-workflow-action@0.4.1
|
||||
with:
|
||||
access_token: ${{ github.token }}
|
||||
- name: Checkout sources & submodules
|
||||
uses: actions/checkout@master
|
||||
with:
|
||||
fetch-depth: 5
|
||||
submodules: recursive
|
||||
- name: Cargo deny
|
||||
uses: EmbarkStudios/cargo-deny-action@v1
|
||||
with:
|
||||
command: "check --hide-inclusion-graph"
|
||||
@@ -0,0 +1,35 @@
|
||||
name: Check style
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
tags:
|
||||
- v*
|
||||
paths-ignore:
|
||||
- 'README.md'
|
||||
jobs:
|
||||
## Check stage
|
||||
check-fmt:
|
||||
name: Check RustFmt
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
RUST_BACKTRACE: full
|
||||
steps:
|
||||
- name: Cancel Previous Runs
|
||||
uses: styfle/cancel-workflow-action@0.4.1
|
||||
with:
|
||||
access_token: ${{ github.token }}
|
||||
- name: Checkout sources & submodules
|
||||
uses: actions/checkout@master
|
||||
with:
|
||||
fetch-depth: 5
|
||||
submodules: recursive
|
||||
- name: Add rustfmt
|
||||
run: rustup component add rustfmt
|
||||
- name: rust-fmt check
|
||||
uses: actions-rs/cargo@master
|
||||
with:
|
||||
command: fmt
|
||||
args: --all -- --check
|
||||
@@ -0,0 +1,106 @@
|
||||
name: Compilation and Testing Suite
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
tags:
|
||||
- v*
|
||||
paths-ignore:
|
||||
- 'README.md'
|
||||
jobs:
|
||||
|
||||
check-test-build:
|
||||
name: Check, test and build
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
RUST_BACKTRACE: full
|
||||
steps:
|
||||
- name: Cancel Previous Runs
|
||||
uses: styfle/cancel-workflow-action@0.4.1
|
||||
with:
|
||||
access_token: ${{ github.token }}
|
||||
- name: Checkout sources & submodules
|
||||
uses: actions/checkout@master
|
||||
with:
|
||||
fetch-depth: 5
|
||||
submodules: recursive
|
||||
## Check Stage
|
||||
- name: Checking rust-stable
|
||||
uses: actions-rs/cargo@master
|
||||
with:
|
||||
command: check
|
||||
toolchain: stable
|
||||
args: --all --verbose
|
||||
|
||||
## Test Stage
|
||||
- name: Testing rust-stable
|
||||
uses: actions-rs/cargo@master
|
||||
with:
|
||||
command: test
|
||||
toolchain: stable
|
||||
args: --all --verbose
|
||||
|
||||
## Build Stage
|
||||
- name: Building rust-stable
|
||||
uses: actions-rs/cargo@master
|
||||
if: github.ref == 'refs/heads/master'
|
||||
with:
|
||||
command: build
|
||||
toolchain: stable
|
||||
args: --all --verbose
|
||||
|
||||
check-wasm:
|
||||
name: Check WASM
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
RUST_BACKTRACE: full
|
||||
steps:
|
||||
- name: Cancel Previous Runs
|
||||
uses: styfle/cancel-workflow-action@0.4.1
|
||||
with:
|
||||
access_token: ${{ github.token }}
|
||||
- name: Checkout sources & submodules
|
||||
uses: actions/checkout@master
|
||||
with:
|
||||
fetch-depth: 5
|
||||
submodules: recursive
|
||||
- name: Add WASM Utilities
|
||||
run: rustup target add wasm32-unknown-unknown --toolchain stable
|
||||
## Check Stage
|
||||
- name: Checking wasm32
|
||||
uses: actions-rs/cargo@master
|
||||
with:
|
||||
command: check
|
||||
toolchain: stable
|
||||
args: --manifest-path ./frame-metadata/Cargo.toml --target wasm32-unknown-unknown --no-default-features
|
||||
|
||||
check-features:
|
||||
name: Check Features
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
RUST_BACKTRACE: full
|
||||
steps:
|
||||
- name: Cancel Previous Runs
|
||||
uses: styfle/cancel-workflow-action@0.4.1
|
||||
with:
|
||||
access_token: ${{ github.token }}
|
||||
- name: Checkout sources & submodules
|
||||
uses: actions/checkout@master
|
||||
with:
|
||||
fetch-depth: 5
|
||||
submodules: recursive
|
||||
## Check Stage
|
||||
- name: Checking without any features
|
||||
uses: actions-rs/cargo@master
|
||||
with:
|
||||
command: check
|
||||
toolchain: stable
|
||||
args: --manifest-path ./frame-metadata/Cargo.toml --no-default-features
|
||||
- name: Checking v12
|
||||
uses: actions-rs/cargo@master
|
||||
with:
|
||||
command: check
|
||||
toolchain: stable
|
||||
args: --manifest-path ./frame-metadata/Cargo.toml --no-default-features --features v12
|
||||
@@ -0,0 +1,128 @@
|
||||
# This template contains all of the possible sections and their default values
|
||||
|
||||
# Note that all fields that take a lint level have these possible values:
|
||||
# * deny - An error will be produced and the check will fail
|
||||
# * warn - A warning will be produced, but the check will not fail
|
||||
# * allow - No warning or error will be produced, though in some cases a note will be
|
||||
|
||||
# If 1 or more target triples (and optionally, target_features) are specified, only
|
||||
# the specified targets will be checked when running `cargo deny check`. This means,
|
||||
# if a particular package is only ever used as a target specific dependency, such
|
||||
# as, for example, the `nix` crate only being used via the `target_family = "unix"`
|
||||
# configuration, that only having windows targets in this list would mean the nix
|
||||
# crate, as well as any of its exclusive dependencies not shared by any other
|
||||
# crates, would be ignored, as the target list here is effectively saying which
|
||||
# targets you are building for.
|
||||
targets = [
|
||||
# The triple can be any string, but only the target triples built in to
|
||||
# rustc (as of 1.40) can be checked against actual config expressions
|
||||
#{ triple = "x86_64-unknown-linux-musl" },
|
||||
# You can also specify which target_features you promise are enabled for a particular
|
||||
# target. target_features are currently not validated against the actual valid
|
||||
# features supported by the target architecture.
|
||||
#{ triple = "wasm32-unknown-unknown", features = ["atomics"] },
|
||||
]
|
||||
|
||||
# This section is considered when running `cargo deny check advisories`
|
||||
# More documentation for the advisories section can be found here:
|
||||
# https://github.com/EmbarkStudios/cargo-deny#the-advisories-section
|
||||
[advisories]
|
||||
# The path where the advisory database is cloned/fetched into
|
||||
db-path = "~/.cargo/advisory-db"
|
||||
# The url of the advisory database to use
|
||||
db-url = "https://github.com/rustsec/advisory-db"
|
||||
# The lint level for security vulnerabilities
|
||||
vulnerability = "warn"
|
||||
# The lint level for unmaintained crates
|
||||
unmaintained = "warn"
|
||||
# The lint level for crates with security notices. Note that as of
|
||||
# 2019-12-17 there are no security notice advisories in https://github.com/rustsec/advisory-db
|
||||
notice = "warn"
|
||||
# A list of advisory IDs to ignore. Note that ignored advisories will still output
|
||||
# a note when they are encountered.
|
||||
ignore = []
|
||||
# Threshold for security vulnerabilities, any vulnerability with a CVSS score
|
||||
# lower than the range specified will be ignored. Note that ignored advisories
|
||||
# will still output a note when they are encountered.
|
||||
# * None - CVSS Score 0.0
|
||||
# * Low - CVSS Score 0.1 - 3.9
|
||||
# * Medium - CVSS Score 4.0 - 6.9
|
||||
# * High - CVSS Score 7.0 - 8.9
|
||||
# * Critical - CVSS Score 9.0 - 10.0
|
||||
#severity-threshold =
|
||||
|
||||
# This section is considered when running `cargo deny check licenses`
|
||||
# More documentation for the licenses section can be found here:
|
||||
# https://github.com/EmbarkStudios/cargo-deny#the-licenses-section
|
||||
[licenses]
|
||||
# The lint level for crates which do not have a detectable license
|
||||
unlicensed = "warn"
|
||||
# List of explictly allowed licenses
|
||||
# See https://spdx.org/licenses/ for list of possible licenses
|
||||
# [possible values: any SPDX 3.7 short identifier (+ optional exception)].
|
||||
allow = []
|
||||
# List of explictly disallowed licenses
|
||||
# See https://spdx.org/licenses/ for list of possible licenses
|
||||
# [possible values: any SPDX 3.7 short identifier (+ optional exception)].
|
||||
deny = ["GPL-3.0"]
|
||||
# The lint level for licenses considered copyleft
|
||||
copyleft = "allow"
|
||||
# Blanket approval or denial for OSI-approved or FSF Free/Libre licenses
|
||||
# * both - The license will only be approved if it is both OSI-approved *AND* FSF/Free
|
||||
# * either - The license will be approved if it is either OSI-approved *OR* FSF/Free
|
||||
# * osi-only - The license will be approved if is OSI-approved *AND NOT* FSF/Free
|
||||
# * fsf-only - The license will be approved if is FSF/Free *AND NOT* OSI-approved
|
||||
# * neither - The license will be denied if is FSF/Free *OR* OSI-approved
|
||||
allow-osi-fsf-free = "either"
|
||||
# The confidence threshold for detecting a license from license text.
|
||||
# The higher the value, the more closely the license text must be to the
|
||||
# canonical license text of a valid SPDX license file.
|
||||
# [possible values: any between 0.0 and 1.0].
|
||||
confidence-threshold = 0.8
|
||||
|
||||
# This section is considered when running `cargo deny check bans`.
|
||||
# More documentation about the 'bans' section can be found here:
|
||||
# https://github.com/EmbarkStudios/cargo-deny#crate-bans-cargo-deny-check-ban
|
||||
[bans]
|
||||
# Lint level for when multiple versions of the same crate are detected
|
||||
multiple-versions = "warn"
|
||||
# The graph highlighting used when creating dotgraphs for crates
|
||||
# with multiple versions
|
||||
# * lowest-version - The path to the lowest versioned duplicate is highlighted
|
||||
# * simplest-path - The path to the version with the fewest edges is highlighted
|
||||
# * all - Both lowest-version and simplest-path are used
|
||||
highlight = "all"
|
||||
# List of crates that are allowed. Use with care!
|
||||
allow = [
|
||||
#{ name = "ansi_term", version = "=0.11.0" },
|
||||
]
|
||||
# List of crates to deny
|
||||
deny = [
|
||||
# Each entry the name of a crate and a version range. If version is
|
||||
# not specified, all versions will be matched.
|
||||
#{ name = "ansi_term", version = "=0.11.0" },
|
||||
]
|
||||
# Certain crates/versions that will be skipped when doing duplicate detection.
|
||||
skip = [
|
||||
#{ name = "ansi_term", version = "=0.11.0" },
|
||||
]
|
||||
# Similarly to `skip` allows you to skip certain crates during duplicate detection,
|
||||
# unlike skip, it also includes the entire tree of transitive dependencies starting at
|
||||
# the specified crate, up to a certain depth, which is by default infinite
|
||||
skip-tree = [
|
||||
#{ name = "ansi_term", version = "=0.11.0", depth = 20 },
|
||||
]
|
||||
|
||||
|
||||
# This section is considered when running `cargo deny check sources`.
|
||||
# More documentation about the 'sources' section can be found here:
|
||||
# https://github.com/EmbarkStudios/cargo-deny#crate-sources-cargo-deny-check-sources
|
||||
[sources]
|
||||
# Lint level for what to happen when a crate from a crate registry that is not in the allow list is encountered
|
||||
unknown-registry = "warn"
|
||||
# Lint level for what to happen when a crate from a git repository that is not in the allow list is encountered
|
||||
unknown-git = "warn"
|
||||
# List of URLs for allowed crate registries, by default https://github.com/rust-lang/crates.io-index is included
|
||||
#allow-registry = []
|
||||
# List of URLs for allowed Git repositories
|
||||
allow-git = []
|
||||
+55
-23
@@ -20,10 +20,10 @@
|
||||
#![cfg_attr(not(feature = "std"), no_std)]
|
||||
|
||||
#[cfg(feature = "std")]
|
||||
use serde::Serialize;
|
||||
#[cfg(feature = "std")]
|
||||
use codec::{Decode, Input, Error};
|
||||
use codec::{Decode, Error, Input};
|
||||
use codec::{Encode, Output};
|
||||
#[cfg(feature = "std")]
|
||||
use serde::Serialize;
|
||||
|
||||
#[cfg(not(feature = "std"))]
|
||||
extern crate alloc;
|
||||
@@ -46,12 +46,20 @@ type StringBuf = &'static str;
|
||||
///
|
||||
/// For example a `&'static [ &'static str ]` can be decoded to a `Vec<String>`.
|
||||
#[derive(Clone)]
|
||||
pub enum DecodeDifferent<B, O> where B: 'static, O: 'static {
|
||||
pub enum DecodeDifferent<B, O>
|
||||
where
|
||||
B: 'static,
|
||||
O: 'static,
|
||||
{
|
||||
Encode(B),
|
||||
Decoded(O),
|
||||
}
|
||||
|
||||
impl<B, O> Encode for DecodeDifferent<B, O> where B: Encode + 'static, O: Encode + 'static {
|
||||
impl<B, O> Encode for DecodeDifferent<B, O>
|
||||
where
|
||||
B: Encode + 'static,
|
||||
O: Encode + 'static,
|
||||
{
|
||||
fn encode_to<W: Output>(&self, dest: &mut W) {
|
||||
match self {
|
||||
DecodeDifferent::Encode(b) => b.encode_to(dest),
|
||||
@@ -60,14 +68,21 @@ impl<B, O> Encode for DecodeDifferent<B, O> where B: Encode + 'static, O: Encode
|
||||
}
|
||||
}
|
||||
|
||||
impl<B, O> codec::EncodeLike for DecodeDifferent<B, O> where B: Encode + 'static, O: Encode + 'static {}
|
||||
impl<B, O> codec::EncodeLike for DecodeDifferent<B, O>
|
||||
where
|
||||
B: Encode + 'static,
|
||||
O: Encode + 'static,
|
||||
{
|
||||
}
|
||||
|
||||
#[cfg(feature = "std")]
|
||||
impl<B, O> Decode for DecodeDifferent<B, O> where B: 'static, O: Decode + 'static {
|
||||
impl<B, O> Decode for DecodeDifferent<B, O>
|
||||
where
|
||||
B: 'static,
|
||||
O: Decode + 'static,
|
||||
{
|
||||
fn decode<I: Input>(input: &mut I) -> Result<Self, Error> {
|
||||
<O>::decode(input).map(|val| {
|
||||
DecodeDifferent::Decoded(val)
|
||||
})
|
||||
<O>::decode(input).map(|val| DecodeDifferent::Decoded(val))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -82,8 +97,11 @@ where
|
||||
}
|
||||
|
||||
impl<B, O> Eq for DecodeDifferent<B, O>
|
||||
where B: Encode + Eq + PartialEq + 'static, O: Encode + Eq + PartialEq + 'static
|
||||
{}
|
||||
where
|
||||
B: Encode + Eq + PartialEq + 'static,
|
||||
O: Encode + Eq + PartialEq + 'static,
|
||||
{
|
||||
}
|
||||
|
||||
impl<B, O> core::fmt::Debug for DecodeDifferent<B, O>
|
||||
where
|
||||
@@ -104,7 +122,10 @@ impl<B, O> serde::Serialize for DecodeDifferent<B, O>
|
||||
B: serde::Serialize + 'static,
|
||||
O: serde::Serialize + 'static,
|
||||
{
|
||||
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> where S: serde::Serializer {
|
||||
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
||||
where
|
||||
S: serde::Serializer,
|
||||
{
|
||||
match self {
|
||||
DecodeDifferent::Encode(b) => b.serialize(serializer),
|
||||
DecodeDifferent::Decoded(o) => o.serialize(serializer),
|
||||
@@ -135,7 +156,9 @@ pub struct FunctionArgumentMetadata {
|
||||
|
||||
/// Newtype wrapper for support encoding functions (actual the result of the function).
|
||||
#[derive(Clone, Eq)]
|
||||
pub struct FnEncode<E>(pub fn() -> E) where E: Encode + 'static;
|
||||
pub struct FnEncode<E>(pub fn() -> E)
|
||||
where
|
||||
E: Encode + 'static;
|
||||
|
||||
impl<E: Encode> Encode for FnEncode<E> {
|
||||
fn encode_to<W: Output>(&self, dest: &mut W) {
|
||||
@@ -159,7 +182,10 @@ impl<E: Encode + core::fmt::Debug> core::fmt::Debug for FnEncode<E> {
|
||||
|
||||
#[cfg(feature = "std")]
|
||||
impl<E: Encode + serde::Serialize> serde::Serialize for FnEncode<E> {
|
||||
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> where S: serde::Serializer {
|
||||
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
||||
where
|
||||
S: serde::Serializer,
|
||||
{
|
||||
self.0().serialize(serializer)
|
||||
}
|
||||
}
|
||||
@@ -171,7 +197,7 @@ pub struct OuterEventMetadata {
|
||||
pub name: DecodeDifferentStr,
|
||||
pub events: DecodeDifferentArray<
|
||||
(&'static str, FnEncode<&'static [EventMetadata]>),
|
||||
(StringBuf, Vec<EventMetadata>)
|
||||
(StringBuf, Vec<EventMetadata>),
|
||||
>,
|
||||
}
|
||||
|
||||
@@ -256,7 +282,10 @@ impl Eq for DefaultByteGetter { }
|
||||
|
||||
#[cfg(feature = "std")]
|
||||
impl serde::Serialize for DefaultByteGetter {
|
||||
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> where S: serde::Serializer {
|
||||
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
|
||||
where
|
||||
S: serde::Serializer,
|
||||
{
|
||||
self.0.default_byte().serialize(serializer)
|
||||
}
|
||||
}
|
||||
@@ -391,6 +420,7 @@ impl Decode for RuntimeMetadataDeprecated {
|
||||
/// The metadata of a runtime.
|
||||
#[derive(Eq, Encode, PartialEq)]
|
||||
#[cfg_attr(feature = "std", derive(Decode, Serialize, Debug))]
|
||||
#[cfg(feature = "v12")]
|
||||
pub struct RuntimeMetadataV12 {
|
||||
/// Metadata of all the modules.
|
||||
pub modules: DecodeDifferentArray<ModuleMetadata>,
|
||||
@@ -399,8 +429,16 @@ pub struct RuntimeMetadataV12 {
|
||||
}
|
||||
|
||||
/// The latest version of the metadata.
|
||||
#[cfg(feature = "v12")]
|
||||
pub type RuntimeMetadataLastVersion = RuntimeMetadataV12;
|
||||
|
||||
#[cfg(feature = "v12")]
|
||||
impl Into<RuntimeMetadataPrefixed> for RuntimeMetadataLastVersion {
|
||||
fn into(self) -> RuntimeMetadataPrefixed {
|
||||
RuntimeMetadataPrefixed(META_RESERVED, RuntimeMetadata::V12(self))
|
||||
}
|
||||
}
|
||||
|
||||
/// All metadata about an runtime module.
|
||||
#[derive(Clone, PartialEq, Eq, Encode)]
|
||||
#[cfg_attr(feature = "std", derive(Decode, Serialize, Debug))]
|
||||
@@ -424,9 +462,3 @@ impl Into<Vec<u8>> for RuntimeMetadataPrefixed {
|
||||
self.encode()
|
||||
}
|
||||
}
|
||||
|
||||
impl Into<RuntimeMetadataPrefixed> for RuntimeMetadataLastVersion {
|
||||
fn into(self) -> RuntimeMetadataPrefixed {
|
||||
RuntimeMetadataPrefixed(META_RESERVED, RuntimeMetadata::V12(self))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
hard_tabs = true
|
||||
Reference in New Issue
Block a user