| {{- /* |
| -------------------------------------------------------------------------------- |
| Template file for use with tools/src/cmd/gen to generate address_space.h |
| |
| To update the generated file, run: |
| ./tools/run gen |
| |
| See: |
| * tools/src/cmd/gen for structures used by this template |
| * https://golang.org/pkg/text/template/ for documentation on the template syntax |
| -------------------------------------------------------------------------------- |
| */ -}} |
| |
| {{- Import "src/tint/templates/enums.tmpl.inc" -}} |
| {{- $enum := (Sem.Enum "address_space") -}} |
| |
| #ifndef SRC_TINT_AST_ADDRESS_SPACE_H_ |
| #define SRC_TINT_AST_ADDRESS_SPACE_H_ |
| |
| #include <ostream> |
| |
| namespace tint::ast { |
| |
| /// Address space of a given pointer. |
| {{ Eval "DeclareEnum" $enum}} |
| |
| /// @returns true if the AddressSpace is host-shareable |
| /// @param address_space the AddressSpace |
| /// @see https://gpuweb.github.io/gpuweb/wgsl.html#host-shareable |
| inline bool IsHostShareable(AddressSpace address_space) { |
| return address_space == ast::AddressSpace::kUniform || address_space == ast::AddressSpace::kStorage || |
| address_space == ast::AddressSpace::kPushConstant; |
| } |
| |
| } // namespace tint::ast |
| |
| #endif // SRC_TINT_AST_ADDRESS_SPACE_H_ |