| Index: mojo/public/tools/bindings/generators/cpp_templates/module.h.tmpl
 | 
| diff --git a/mojo/public/tools/bindings/generators/cpp_templates/module.h.tmpl b/mojo/public/tools/bindings/generators/cpp_templates/module.h.tmpl
 | 
| index 0a54e1d5a58a0901887af92d6af019ec84ae4d62..79710a396271c56d54c3bcc0b41f6d5a1dddacb7 100644
 | 
| --- a/mojo/public/tools/bindings/generators/cpp_templates/module.h.tmpl
 | 
| +++ b/mojo/public/tools/bindings/generators/cpp_templates/module.h.tmpl
 | 
| @@ -14,6 +14,8 @@
 | 
|  #include "mojo/public/cpp/bindings/interface_ptr.h"
 | 
|  #include "mojo/public/cpp/bindings/message_filter.h"
 | 
|  #include "mojo/public/cpp/bindings/no_interface.h"
 | 
| +#include "mojo/public/cpp/bindings/string.h"
 | 
| +#include "mojo/public/cpp/bindings/struct_ptr.h"
 | 
|  #include "{{module.path}}-internal.h"
 | 
|  {%- for import in imports %}
 | 
|  #include "{{import.module.path}}.h"
 | 
| @@ -39,9 +41,22 @@ class {{interface.name}};
 | 
|  typedef mojo::InterfacePtr<{{interface.name}}> {{interface.name}}Ptr;
 | 
|  {%  endfor %}
 | 
|  
 | 
| +{#--- Struct Forward Declarations -#}
 | 
| +{%  for struct in structs %}
 | 
| +class {{struct.name}};
 | 
| +{%    if struct|should_inline %}
 | 
| +typedef mojo::InlinedStructPtr<{{struct.name}}> {{struct.name}}Ptr;
 | 
| +{%      include "wrapper_class_declaration.tmpl" %}
 | 
| +{%    else %}
 | 
| +typedef mojo::StructPtr<{{struct.name}}> {{struct.name}}Ptr;
 | 
| +{%    endif %}
 | 
| +{%  endfor %}
 | 
| +
 | 
|  {#--- Structs #}
 | 
|  {%  for struct in structs %}
 | 
| -{%    include "wrapper_class_declaration.tmpl" %}
 | 
| +{%    if not struct|should_inline %}
 | 
| +{%      include "wrapper_class_declaration.tmpl" %}
 | 
| +{%    endif %}
 | 
|  {%- endfor %}
 | 
|  
 | 
|  {#--- Interfaces -#}
 | 
| @@ -69,19 +84,26 @@ typedef mojo::InterfacePtr<{{interface.name}}> {{interface.name}}Ptr;
 | 
|  {%    include "interface_response_validator_declaration.tmpl" %}
 | 
|  {%- endfor %}
 | 
|  
 | 
| +{#--- Struct Serialization Helpers -#}
 | 
| +{%  if structs %}
 | 
| +{%    for struct in structs %}
 | 
| +{%      include "struct_serialization_declaration.tmpl" %}
 | 
| +{%-   endfor %}
 | 
| +{%- endif %}
 | 
| +
 | 
|  {%- for namespace in namespaces_as_array|reverse %}
 | 
|  }  // namespace {{namespace}}
 | 
|  {%- endfor %}
 | 
|  
 | 
|  {#--- Enum TypeTraits Specializations #}
 | 
| -{%  if enums %}
 | 
|  namespace mojo {
 | 
|  namespace internal {
 | 
| +{%  if enums %}
 | 
|  {%    for enum in enums %}
 | 
|  {%      include "enum_traits.tmpl" %}
 | 
|  {%-   endfor %}
 | 
| +{%- endif %}
 | 
|  }  // namespace internal
 | 
|  }  // namespace mojo
 | 
| -{%- endif %}
 | 
|  
 | 
|  #endif  // {{header_guard}}
 | 
| 
 |