1*18fa3ebcSPaolo Bonzini /* 2*18fa3ebcSPaolo Bonzini * Forwarding visitor 3*18fa3ebcSPaolo Bonzini * 4*18fa3ebcSPaolo Bonzini * Copyright Red Hat, Inc. 2021 5*18fa3ebcSPaolo Bonzini * 6*18fa3ebcSPaolo Bonzini * Author: Paolo Bonzini <pbonzini@redhat.com> 7*18fa3ebcSPaolo Bonzini * 8*18fa3ebcSPaolo Bonzini * This work is licensed under the terms of the GNU LGPL, version 2.1 or later. 9*18fa3ebcSPaolo Bonzini * See the COPYING.LIB file in the top-level directory. 10*18fa3ebcSPaolo Bonzini * 11*18fa3ebcSPaolo Bonzini */ 12*18fa3ebcSPaolo Bonzini 13*18fa3ebcSPaolo Bonzini #ifndef FORWARD_VISITOR_H 14*18fa3ebcSPaolo Bonzini #define FORWARD_VISITOR_H 15*18fa3ebcSPaolo Bonzini 16*18fa3ebcSPaolo Bonzini #include "qapi/visitor.h" 17*18fa3ebcSPaolo Bonzini 18*18fa3ebcSPaolo Bonzini typedef struct ForwardFieldVisitor ForwardFieldVisitor; 19*18fa3ebcSPaolo Bonzini 20*18fa3ebcSPaolo Bonzini /* 21*18fa3ebcSPaolo Bonzini * The forwarding visitor only expects a single name, @from, to be passed for 22*18fa3ebcSPaolo Bonzini * toplevel fields. It is converted to @to and forwarded to the @target visitor. 23*18fa3ebcSPaolo Bonzini * Calls within a struct are forwarded without changing the name. 24*18fa3ebcSPaolo Bonzini */ 25*18fa3ebcSPaolo Bonzini Visitor *visitor_forward_field(Visitor *target, const char *from, const char *to); 26*18fa3ebcSPaolo Bonzini 27*18fa3ebcSPaolo Bonzini #endif 28