From 3f123b291d60cb91c2e830b17b6826310521f4fb Mon Sep 17 00:00:00 2001 From: Josh Stone Date: Mar 10 2018 01:44:52 +0000 Subject: Update to 0.9.2 --- diff --git a/.gitignore b/.gitignore index 7565f96..ecfa766 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ /scroll_derive-0.8.0.crate /scroll_derive-0.8.1.crate /scroll_derive-0.9.1.crate +/scroll_derive-0.9.2.crate diff --git a/0001-Update-to-syn-0.12-and-quote-0.4.patch b/0001-Update-to-syn-0.12-and-quote-0.4.patch deleted file mode 100644 index ecaf237..0000000 --- a/0001-Update-to-syn-0.12-and-quote-0.4.patch +++ /dev/null @@ -1,240 +0,0 @@ -From f551ddd7f122a761363d3413c6f1c3c59df0eb4f Mon Sep 17 00:00:00 2001 -From: Josh Stone -Date: Fri, 9 Mar 2018 17:03:43 -0800 -Subject: [PATCH] Update to syn 0.12 and quote 0.4 - -This is mostly just updating names -- it should behave exactly the same. ---- - src/lib.rs | 119 ++++++++++++++++++++++++++++++------------------------------- - 1 file changed, 59 insertions(+), 60 deletions(-) - -diff --git a/src/lib.rs b/src/lib.rs -index a6c301319f96..c32652fbaf88 100644 ---- a/src/lib.rs -+++ b/src/lib.rs -@@ -7,14 +7,15 @@ extern crate quote; - - use proc_macro::TokenStream; - --fn impl_struct(name: &syn::Ident, fields: &[syn::Field]) -> quote::Tokens { -- let items: Vec<_> = fields.iter().map(|f| { -+fn impl_struct(name: &syn::Ident, fields: &syn::FieldsNamed) -> quote::Tokens { -+ let items: Vec<_> = fields.named.iter().map(|f| { - let ident = &f.ident; - let ty = &f.ty; - match ty { -- &syn::Ty::Array(_, ref constexpr) => { -- match constexpr { -- &syn::ConstExpr::Lit(syn::Lit::Int(size, _)) => { -+ &syn::Type::Array(ref array) => { -+ match array.len { -+ syn::Expr::Lit(syn::ExprLit { lit: syn::Lit::Int(ref int), ..}) => { -+ let size = int.value(); - quote! { - #ident: { let mut __tmp: #ty = [0; #size as usize]; src.gread_inout_with(offset, &mut __tmp, ctx)?; __tmp } - } -@@ -44,13 +45,13 @@ fn impl_struct(name: &syn::Ident, fields: &[syn::Field]) -> quote::Tokens { - } - } - --fn impl_try_from_ctx(ast: &syn::MacroInput) -> quote::Tokens { -+fn impl_try_from_ctx(ast: &syn::DeriveInput) -> quote::Tokens { - let name = &ast.ident; -- match &ast.body { -- &syn::Body::Struct(ref data) => { -- match data { -- &syn::VariantData::Struct(ref fields) => { -- impl_struct(name, &fields) -+ match ast.data { -+ syn::Data::Struct(ref data) => { -+ match data.fields { -+ syn::Fields::Named(ref fields) => { -+ impl_struct(name, fields) - }, - _ => { - panic!("Pread can only be derived for a regular struct with public fields") -@@ -63,18 +64,17 @@ fn impl_try_from_ctx(ast: &syn::MacroInput) -> quote::Tokens { - - #[proc_macro_derive(Pread)] - pub fn derive_pread(input: TokenStream) -> TokenStream { -- let s = input.to_string(); -- let ast = syn::parse_macro_input(&s).unwrap(); -+ let ast: syn::DeriveInput = syn::parse(input).unwrap(); - let gen = impl_try_from_ctx(&ast); -- gen.parse().unwrap() -+ gen.into() - } - --fn impl_try_into_ctx(name: &syn::Ident, fields: &[syn::Field]) -> quote::Tokens { -- let items: Vec<_> = fields.iter().map(|f| { -+fn impl_try_into_ctx(name: &syn::Ident, fields: &syn::FieldsNamed) -> quote::Tokens { -+ let items: Vec<_> = fields.named.iter().map(|f| { - let ident = &f.ident; - let ty = &f.ty; - match ty { -- &syn::Ty::Array(_, _) => { -+ &syn::Type::Array(_) => { - quote! { - for i in 0..self.#ident.len() { - dst.gwrite_with(self.#ident[i], offset, ctx)?; -@@ -103,13 +103,13 @@ fn impl_try_into_ctx(name: &syn::Ident, fields: &[syn::Field]) -> quote::Tokens - } - } - --fn impl_pwrite(ast: &syn::MacroInput) -> quote::Tokens { -+fn impl_pwrite(ast: &syn::DeriveInput) -> quote::Tokens { - let name = &ast.ident; -- match &ast.body { -- &syn::Body::Struct(ref data) => { -- match data { -- &syn::VariantData::Struct(ref fields) => { -- impl_try_into_ctx(name, &fields) -+ match ast.data { -+ syn::Data::Struct(ref data) => { -+ match data.fields { -+ syn::Fields::Named(ref fields) => { -+ impl_try_into_ctx(name, fields) - }, - _ => { - panic!("Pwrite can only be derived for a regular struct with public fields") -@@ -122,10 +122,9 @@ fn impl_pwrite(ast: &syn::MacroInput) -> quote::Tokens { - - #[proc_macro_derive(Pwrite)] - pub fn derive_pwrite(input: TokenStream) -> TokenStream { -- let s = input.to_string(); -- let ast = syn::parse_macro_input(&s).unwrap(); -+ let ast: syn::DeriveInput = syn::parse(input).unwrap(); - let gen = impl_pwrite(&ast); -- gen.parse().unwrap() -+ gen.into() - } - - fn size_with(name: &syn::Ident) -> quote::Tokens { -@@ -140,12 +139,12 @@ fn size_with(name: &syn::Ident) -> quote::Tokens { - } - } - --fn impl_size_with(ast: &syn::MacroInput) -> quote::Tokens { -+fn impl_size_with(ast: &syn::DeriveInput) -> quote::Tokens { - let name = &ast.ident; -- match &ast.body { -- &syn::Body::Struct(ref data) => { -- match data { -- &syn::VariantData::Struct(_) => { -+ match ast.data { -+ syn::Data::Struct(ref data) => { -+ match data.fields { -+ syn::Fields::Named(_) => { - size_with(name) - }, - _ => { -@@ -159,20 +158,21 @@ fn impl_size_with(ast: &syn::MacroInput) -> quote::Tokens { - - #[proc_macro_derive(SizeWith)] - pub fn derive_sizewith(input: TokenStream) -> TokenStream { -- let s = input.to_string(); -- let ast = syn::parse_macro_input(&s).unwrap(); -+ let ast: syn::DeriveInput = syn::parse(input).unwrap(); - let gen = impl_size_with(&ast); -- gen.parse().unwrap() -+ gen.into() - } - --fn impl_cread_struct(name: &syn::Ident, fields: &[syn::Field]) -> quote::Tokens { -- let items: Vec<_> = fields.iter().map(|f| { -+fn impl_cread_struct(name: &syn::Ident, fields: &syn::FieldsNamed) -> quote::Tokens { -+ let items: Vec<_> = fields.named.iter().map(|f| { - let ident = &f.ident; - let ty = &f.ty; - match ty { -- &syn::Ty::Array(ref arrty, ref constexpr) => { -- match constexpr { -- &syn::ConstExpr::Lit(syn::Lit::Int(size, _)) => { -+ &syn::Type::Array(ref array) => { -+ let arrty = &array.elem; -+ match array.len { -+ syn::Expr::Lit(syn::ExprLit { lit: syn::Lit::Int(ref int), ..}) => { -+ let size = int.value(); - let incr = quote! { ::scroll::export::mem::size_of::<#arrty>() }; - quote! { - #ident: { -@@ -209,13 +209,13 @@ fn impl_cread_struct(name: &syn::Ident, fields: &[syn::Field]) -> quote::Tokens - } - } - --fn impl_from_ctx(ast: &syn::MacroInput) -> quote::Tokens { -+fn impl_from_ctx(ast: &syn::DeriveInput) -> quote::Tokens { - let name = &ast.ident; -- match &ast.body { -- &syn::Body::Struct(ref data) => { -- match data { -- &syn::VariantData::Struct(ref fields) => { -- impl_cread_struct(name, &fields) -+ match ast.data { -+ syn::Data::Struct(ref data) => { -+ match data.fields { -+ syn::Fields::Named(ref fields) => { -+ impl_cread_struct(name, fields) - }, - _ => { - panic!("IOread can only be derived for a regular struct with public fields") -@@ -228,19 +228,19 @@ fn impl_from_ctx(ast: &syn::MacroInput) -> quote::Tokens { - - #[proc_macro_derive(IOread)] - pub fn derive_ioread(input: TokenStream) -> TokenStream { -- let s = input.to_string(); -- let ast = syn::parse_macro_input(&s).unwrap(); -+ let ast: syn::DeriveInput = syn::parse(input).unwrap(); - let gen = impl_from_ctx(&ast); -- gen.parse().unwrap() -+ gen.into() - } - --fn impl_into_ctx(name: &syn::Ident, fields: &[syn::Field]) -> quote::Tokens { -- let items: Vec<_> = fields.iter().map(|f| { -+fn impl_into_ctx(name: &syn::Ident, fields: &syn::FieldsNamed) -> quote::Tokens { -+ let items: Vec<_> = fields.named.iter().map(|f| { - let ident = &f.ident; - let ty = &f.ty; - let size = quote! { ::scroll::export::mem::size_of::<#ty>() }; - match ty { -- &syn::Ty::Array(ref arrty, _) => { -+ &syn::Type::Array(ref array) => { -+ let arrty = &array.elem; - quote! { - let size = ::scroll::export::mem::size_of::<#arrty>(); - for i in 0..self.#ident.len() { -@@ -270,13 +270,13 @@ fn impl_into_ctx(name: &syn::Ident, fields: &[syn::Field]) -> quote::Tokens { - } - } - --fn impl_iowrite(ast: &syn::MacroInput) -> quote::Tokens { -+fn impl_iowrite(ast: &syn::DeriveInput) -> quote::Tokens { - let name = &ast.ident; -- match &ast.body { -- &syn::Body::Struct(ref data) => { -- match data { -- &syn::VariantData::Struct(ref fields) => { -- impl_into_ctx(name, &fields) -+ match ast.data { -+ syn::Data::Struct(ref data) => { -+ match data.fields { -+ syn::Fields::Named(ref fields) => { -+ impl_into_ctx(name, fields) - }, - _ => { - panic!("IOwrite can only be derived for a regular struct with public fields") -@@ -289,8 +289,7 @@ fn impl_iowrite(ast: &syn::MacroInput) -> quote::Tokens { - - #[proc_macro_derive(IOwrite)] - pub fn derive_iowrite(input: TokenStream) -> TokenStream { -- let s = input.to_string(); -- let ast = syn::parse_macro_input(&s).unwrap(); -+ let ast: syn::DeriveInput = syn::parse(input).unwrap(); - let gen = impl_iowrite(&ast); -- gen.parse().unwrap() -+ gen.into() - } --- -2.14.3 - diff --git a/rust-scroll_derive.spec b/rust-scroll_derive.spec index ef120c7..98b1180 100644 --- a/rust-scroll_derive.spec +++ b/rust-scroll_derive.spec @@ -6,18 +6,13 @@ %global crate scroll_derive Name: rust-%{crate} -Version: 0.9.1 -Release: 3%{?dist} +Version: 0.9.2 +Release: 1%{?dist} Summary: Macros 1.1 derive implementation for Pread and Pwrite traits from scroll crate License: MIT URL: https://crates.io/crates/scroll_derive Source0: https://crates.io/api/v1/crates/%{crate}/%{version}/download#/%{crate}-%{version}.crate -# Initial patched metadata -# * bump to syn 0.12 and quote 0.4 -Patch0: scroll_derive-0.9.1-fix-metadata.diff -# https://github.com/m4b/scroll_derive/pull/4 -Patch1: 0001-Update-to-syn-0.12-and-quote-0.4.patch ExclusiveArch: %{rust_arches} @@ -65,6 +60,9 @@ which use %{crate} from crates.io. %{cargo_registry}/%{crate}-%{version}/ %changelog +* Sat Mar 10 2018 Josh Stone - 0.9.2-1 +- Update to 0.9.2 + * Sat Mar 10 2018 Josh Stone - 0.9.1-3 - Bump to syn 0.12 and quote 0.4 diff --git a/scroll_derive-0.9.1-fix-metadata.diff b/scroll_derive-0.9.1-fix-metadata.diff deleted file mode 100644 index 96f5f24..0000000 --- a/scroll_derive-0.9.1-fix-metadata.diff +++ /dev/null @@ -1,14 +0,0 @@ ---- scroll_derive-0.9.1/Cargo.toml 1969-12-31T16:00:00-08:00 -+++ scroll_derive-0.9.1/Cargo.toml 2018-03-09T17:11:40.884586-08:00 -@@ -24,9 +24,9 @@ - [lib] - proc-macro = true - [dependencies.quote] --version = "0.3.15" -+version = "0.4" - - [dependencies.syn] --version = "0.11.11" -+version = "0.12" - [dev-dependencies.scroll] - version = "0.9" diff --git a/sources b/sources index 5368534..2b77753 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (scroll_derive-0.9.1.crate) = 3ba299e7e07cf4b4917f8ee737fd83f788c50c9254e6242736d7293f2ae4364e95e67ee39a5bc102a48da3a13538f6d649e3add2f4ed9000078aa5df97eaff11 +SHA512 (scroll_derive-0.9.2.crate) = e3eb757f98e68916772b8c9ee0b4ce312fe9243e585446b646cd870a33ba1148b1c162b3e448c4f6ced1d5f8de05150d61dcf82a9c7cbf37fc7a9095e83109a7