Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in
  • I ink
  • Project information
    • Project information
    • Activity
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
    • Locked files
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Container Registry
    • Terraform modules
  • Analytics
    • Analytics
    • CI/CD
    • Insights
    • Repository
  • Activity
  • Graph
  • Jobs
  • Commits
Collapse sidebar
  • parityparity
  • Mirrored projectsMirrored projects
  • ink
  • Repository
  • ink
  • .config
  • cargo_spellcheck.dic
Find file BlameHistoryPermalink
  • Andrew Jones's avatar
    Update to scale-info `1.0`, introduce metadata format versioning (#845) · ff723b17
    Andrew Jones authored Oct 11, 2021
    
    
    * Bump scale-info requirement to 0.9
    
    * Update manual TypeInfo impls
    
    * Use decode feature of scale-info
    
    * scale-info 1.0
    
    * Fix tests, 0 indexing on type registry
    
    * Update some missing examples
    
    * TMP: use ink rc5 for compat with cargo-contract
    
    * Update RELEASES.md
    
    * Bump versions back to 1.0
    
    * Introduce versioning of ink metadata format
    
    * Update RELEASES.md
    
    Co-authored-by: Michael Müller's avatarMichael Müller <michi@parity.io>
    
    * Update crates/metadata/src/lib.rs
    
    Co-authored-by: Michael Müller's avatarMichael Müller <michi@parity.io>
    
    * Clippy: allow large enum variant
    
    * [storage] Allow one variant enum to derive SpreadLayout (#942)
    
    * [storage] Allow one variant enum to derive SpreadLayout
    
    I have an enum that has only one variant, and I want to store the enum value in the storage. I might add new variants later in development, so the enum is not useless.
    
    The current implementation doesn't allow to derive the `SpreadLayout` trait for one variant enums, and I fixed it on this PR.
    
    # Sample code
    
    ```rust
    #![cfg_attr(not(feature = "std"), no_std)]
    
    use ink_lang as ink;
    
    #[derive(
        Copy,
        Clone,
        scale::Encode,
        scale::Decode,
        ink_storage::traits::SpreadLayout,
        ink_storage::traits::PackedLayout,
    )]
    #[cfg_attr(
        feature = "std",
        derive(scale_info::TypeInfo, ink_storage::traits::StorageLayout)
    )]
    pub enum MyEnum {
        A,
    }
    
    #[ink::contract]
    mod enum_test {
        use super::MyEnum;
    
        #[ink(storage)]
        pub struct EnumTest {
            value: MyEnum,
        }
    
        impl EnumTest {
            #[ink(constructor)]
            pub fn new() -> Self {
                Self { value: MyEnum::A }
            }
    
            #[ink(message)]
            pub fn get(&self) -> MyEnum {
                self.value
            }
        }
    }
    ```
    
    Without this change, I get this error.
    
    ```
    $ cargo +nightly contract build
     [1/5] Building cargo project
        Updating crates.io index
       Compiling enum_test v0.1.0 (/private/var/folders/zn/l2f569z56vnghtt524x1mv6w0000gn/T/cargo-contract_FM50JF)
    error: proc-macro derive panicked
      --> /snip/enum_test/lib.rs:10:5
       |
    10 |     ink_storage::traits::SpreadLayout,
       |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
       |
       = help: message: can only operate on enums
    ```
    
    * Update crates/storage/derive/src/spread_layout.rs
    
    Co-authored-by: Hero Bird's avatarRobin Freyler <robbepop@web.de>
    
    * cargo fmt
    
    Co-authored-by: Hero Bird's avatarRobin Freyler <robbepop@web.de>
    
    * CI: remove gcda files from cache (#943)
    
    * Update pretty_assertions requirement from 0.7.1 to 1.0.0 (#944)
    
    Updates the requirements on [pretty_assertions](https://github.com/colin-kiegel/rust-pretty-assertions) to permit the latest version.
    - [Release notes](https://github.com/colin-kiegel/rust-pretty-assertions/releases)
    - [Changelog](https://github.com/colin-kiegel/rust-pretty-assertions/blob/main/CHANGELOG.md)
    - [Commits](https://github.com/colin-kiegel/rust-pretty-assertions/compare/v0.7.1...v1.0.0
    
    )
    
    ---
    updated-dependencies:
    - dependency-name: pretty_assertions
      dependency-type: direct:production
    ...
    
    Signed-off-by: default avatardependabot[bot] <support@github.com>
    
    Co-authored-by: default avatardependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    
    * Add 'versioning' to spellcheck dict
    
    Co-authored-by: Michael Müller's avatarMichael Müller <michi@parity.io>
    Co-authored-by: default avatartash-2s <81064017+tash-2s@users.noreply.github.com>
    Co-authored-by: Hero Bird's avatarRobin Freyler <robbepop@web.de>
    Co-authored-by: Denis_P's avatarDenis Pisarev <denis.pisarev@parity.io>
    Co-authored-by: default avatardependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    ff723b17