moxy-derive 0.0.4

derive macros for moxy crate
Documentation
use quote::quote;

use super::{DisplayOptions, DisplayOutput, Segment, SegmentKind, access};

pub struct CompactStyleSyntax;

impl CompactStyleSyntax {
    pub fn render(&self, opts: &DisplayOptions) -> syn::Result<DisplayOutput> {
        let mut out = DisplayOutput::new();

        for (i, f) in opts.fields.iter().enumerate() {
            let a = access(f, opts.use_self);

            out.push(Segment::placeholder(SegmentKind::Value, quote! { #a }));

            if i + 1 < opts.fields.len() {
                out.push(Segment::literal(SegmentKind::Separator, " "));
            }
        }

        Ok(out)
    }
}