[ 
https://issues.apache.org/jira/browse/AVRO-3479?focusedWorklogId=754890&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-754890
 ]

ASF GitHub Bot logged work on AVRO-3479:
----------------------------------------

                Author: ASF GitHub Bot
            Created on: 09/Apr/22 04:04
            Start Date: 09/Apr/22 04:04
    Worklog Time Spent: 10m 
      Work Description: jklamer commented on code in PR #1631:
URL: https://github.com/apache/avro/pull/1631#discussion_r846571320


##########
lang/rust/avro_derive/tests/derive.rs:
##########
@@ -0,0 +1,409 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+
+use apache_avro::schema::{AvroSchema, AvroSchemaWithResolved};
+use apache_avro::{from_value, Reader, Schema, Writer};
+use avro_derive::*;
+use serde::de::DeserializeOwned;
+use serde::ser::Serialize;
+use std::collections::HashMap;
+
+#[macro_use]
+extern crate serde;
+
+#[cfg(test)]
+mod test_derive {
+    use std::{
+        borrow::{Borrow, Cow},
+        sync::Mutex,
+    };
+
+    use super::*;
+
+    /// Takes in a type that implements the right combination of traits and 
runs it through a Serde Cycle and asserts the result is the same
+    fn freeze_dry_assert<T>(obj: T)
+    where
+        T: std::fmt::Debug + Serialize + DeserializeOwned + AvroSchema + Clone 
+ PartialEq,
+    {
+        let encoded = freeze(obj.clone());

Review Comment:
   No reason to avoid. Ive seen freeze dry used in other contexts for testing 
serde but will change as its confusing and not needed. 





Issue Time Tracking
-------------------

    Worklog Id:     (was: 754890)
    Time Spent: 1h 10m  (was: 1h)

> [rust] Derive Avro Schema macro
> -------------------------------
>
>                 Key: AVRO-3479
>                 URL: https://issues.apache.org/jira/browse/AVRO-3479
>             Project: Apache Avro
>          Issue Type: Improvement
>            Reporter: Jack Klamer
>            Assignee: Jack Klamer
>            Priority: Major
>              Labels: pull-request-available
>          Time Spent: 1h 10m
>  Remaining Estimate: 0h
>
> The tracking Issue for the Avro Derive Feature of the rust SDK. 
> Proposal (copied from email):
> Have another rust crate that is importable as a feature on the main crate (in 
> the same manner as serde derive), that will provide a derive proc_macro that 
> implements a simple trait that returns the schema for the implementing type. 
> Right now, schemas must be parsed from strings ( or read from files first), 
> and closely coordinated with the associated struct. This makes sense for 
> workflows that need to associate the same type across languages. For programs 
> that are all within Rust, there are usability advantages of the proc_macro. 



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to