serde-seeded 0.1.0

Trait and macros for easy seeded serialization with `serde`.
Documentation
#![allow(dead_code)]
use serde_seeded::DeserializeSeeded;

pub struct Seed;

pub struct Seeded<T>(pub T);

impl<'de, T> DeserializeSeeded<'de, Seed> for Seeded<T> {
	fn deserialize_seeded<D>(_seed: &Seed, _deserializer: D) -> Result<Self, D::Error>
	where
		D: serde::Deserializer<'de>,
	{
		unimplemented!()
	}
}

#[derive(DeserializeSeeded)]
#[seeded(de(seed(Seed)))]
pub struct Unit;

#[derive(DeserializeSeeded)]
#[seeded(de(seed(Seed)))]
pub struct Newtype(Seeded<u32>);

#[derive(DeserializeSeeded)]
#[seeded(de(seed(Seed)))]
pub struct Tuple(Seeded<u32>, Seeded<bool>);

#[derive(DeserializeSeeded)]
#[seeded(de(seed(Seed)))]
pub struct Struct {
	foo: Seeded<bool>,
	bar: Seeded<u32>,
}

#[derive(DeserializeSeeded)]
#[seeded(de(seed(Seed)))]
pub enum Bar {
	Unit,
	Newtype(Seeded<u32>),
	Tuple(Seeded<u32>, Seeded<bool>),
	Struct { foo: Seeded<u32>, bar: Seeded<bool> },
}