public <I> I newFlyweight(Class<I> implementationParent, String templateFileName, Template template, Object... args) {
        Class<?>[] constructorParameterTypes = getTypes(args);
        ClassViewModel model = new ClassViewModel(implementationParent, constructorParameterTypes, structInterface,
                inspector);
        String source = template.render(model);
        debugLogSource(source);
        CompilationResult result = compiler.compile(model.className(), source);
        checkCompileFailures(templateFileName, result);
        return instantiateImplementation(constructorParameterTypes, model.className(), result, args);
    }
@return the size that each message takes up in bytes
jctools-channels/src/main/java/org/jctools/channels/mapping/Mapper.java