Enums by Language
Curated enum tutorials, examples, and best practices for popular programming languages. Covers naming conventions, value conversion, serialization, and practical guidance for working with language-specific features.
Master `typedef enum`, scoped enums, `enum class`, and `sizeof enum` to solve type safety and conversion issues.
Covers type definitions, string conversion, and modern scoped enums—the most common scenarios in C/C++ projects.
Complete guide covering `enum.TryParse`, string mapping, Flags enums, `enum to list`, and Swagger/OAS mapping.
Includes string mapping, description attributes, numeric conversion, and common techniques for API documentation.
From basic definitions to `enum with values`, `valueOf`, and switch expressions, deep dive into enterprise Java enums.
Covers custom methods, ordinal values, string representations, and common issues in enterprise applications.
Practical guide to `Enum`, `IntEnum`, `StrEnum`, and `auto()`, covering Pydantic, FastAPI, serialization, and more.
Focuses on auto-assignment, type hints, string serialization, and framework integration best practices.
Covers `as const`, `const enum`, Zod, OpenAPI/Swagger mapping, and frontend serialization compatibility strategies.
From `const enum` to `as const`, to how enums work with JSON Schema and validation libraries—complete guide.
Rust enum pattern matching, serialization, and trait constraints; Go's constant+iota enum simulation, JSON mapping, and validation strategies.
Deep dive into Rust's pattern matching and serialization, Go's `iota` constants, and string representation design.
Learn to create `CREATE TYPE ... AS ENUM`, best practices for `ENUM` columns, migration strategies, and enum definitions in Prisma and SQLAlchemy.
Covers Postgres type definitions, MySQL native enums vs lookup tables, and migration and compatibility strategies.
Covers Rails enum, Laravel, GraphQL, OpenAPI/Swagger Enum Schema, Zod validators, Pydantic models, and ecosystem tools.
Focuses on backend frameworks, API documentation, validation libraries, and multi-language toolchain integration.
Basic terminology, enum semantics, quick reference for common questions, covering core Q&A like "what is enum", "define enum", "enum meaning".
Provides definitions, terminology, and explanations of common misconceptions to help you get started quickly and build a unified understanding.
Enum Playbook
Strategy-focused content based on real-world development scenarios to help you achieve more elegant enum design within your team. Includes naming conventions, cross-language migration, and serialization compatibility.
Naming Strategy: Readable, Predictable, Portable
In-depth discussion of enum naming conventions and cross-language consistency, including naming templates, team review checklists, consistency strategies, and real-world case studies.
• Team naming review checklist
• Code review key points
• Naming anti-patterns and best practices
Conversion & Serialization: Enum ←→ String / JSON
Comprehensive enum conversion methods across mainstream languages, covering C#, Python, Java, TypeScript, Rust, Go, and integration with OpenAPI, JSON Schema, GraphQL, gRPC, and other API specifications.
• Multi-language comparison matrix
• API integration solutions
• Common pitfalls and testing
Database Enum Patterns
Focus on MySQL, PostgreSQL, SQLite, and ORM frameworks like Prisma and SQLAlchemy to unlock enum field design, migration strategies, and compatibility solutions.
PostgreSQL: CREATE TYPE & ALTER
Enterprise-grade enum type management, including complete workflows and best practices for creation, modification, and safe deletion.
- • Enum type creation and ALTER TYPE operations
- • Multi-step migration strategies for renaming and deletion
- • Prisma, Hasura, GraphQL integration examples
- • Data consistency checks and performance optimization
Learn more →
MySQL & MariaDB: ENUM vs Lookup Table
Compare native ENUM and Lookup Table approaches with comprehensive analysis of performance and maintainability.
- • Native ENUM type usage and limitations
- • Complete Lookup Table pattern implementation
- • Performance comparison and decision guide
- • Laravel, TypeORM integration solutions
Learn more →
ORM Framework Integration
Complete enum integration examples for mainstream ORMs including Prisma, SQLAlchemy, Rails, and TypeORM.
- • Complete code examples for four major ORM frameworks
- • Automatic type generation and synchronization strategies
- • Migration scripts and version management
- • Automatic API Schema generation
Learn more →
Enum Utilities & Tooling
Interactive tools to help you check enum naming conventions, validate serialization compatibility, and plan safe migration strategies.
Enum Name Linter
Input a list of enum values to automatically get naming convention suggestions, avoiding common pitfalls with `enum value` and `enum valueOf`.
Includes naming checklist and examples to help teams quickly align on style.
Try it now →
Enum Serializer Checker
Validate that enums serialize correctly in JSON, ProtoBuf, GraphQL, and system interfaces to ensure cross-language compatibility.
Also provides reference materials for multiple serialization formats including JSON, ProtoBuf, and GraphQL.
Try it now →
Enum Migration Planner
Generate migration steps based on database and language selection to resolve compatibility issues like "no enum constant".
Also includes example scripts for database migration, rollback, and consistency validation.
Try it now →
Enum FAQ
Direct, practical answers to the most commonly asked fundamental questions.
What does enum mean? →
Enum (Enumeration) represents a set of named constants. It associates meaningful labels with underlying numeric or string values, helping code express business semantics and restrict value ranges. Different languages vary in syntax and underlying types, but share the same core goal: making code more readable and safer.
What is an enum in programming? →
In programming, an enum is a data type used to define a finite set of named values. Examples include order status, permission levels, colors, etc. Compared to using raw numbers or strings, enums provide compiler checks, autocomplete, and clearer business semantics.
How do enums differ across languages? →
C/C++ enums default to integer mapping, with `enum class` improving scope and type safety; Java/C# support methods, properties, and OOP integration; Python uses the `Enum` module to work with dynamic features; TypeScript uses `const enum` and `as const` for lightweight enums; Rust enums support algebraic data types (ADT). enum.cc provides dedicated guides for each language.
How to choose enum names? →
Maintain consistent naming patterns (e.g., `PAID`, `CANCELLED`), avoid redundant meanings, and ensure values align with business semantics. Refer to our naming checklist and language-specific style guides, such as Java enums using UPPER_SNAKE_CASE and TypeScript considering PascalCase.
How to convert enum to string or int? →
Different languages provide built-in or extension methods: C# uses `Enum.GetName`, `Enum.Parse`; Java uses `name()` and `valueOf()`; Python accesses `EnumMember.name`, `EnumMember.value`; C/C++ requires manual mapping or macros; TypeScript can use `Object.keys` / `Object.values`. See language-specific pages for details.