real-logic / simple-binary-encoding

Simple Binary Encoding (SBE) - High Performance Message Codec
Apache License 2.0
3.12k stars 524 forks source link

[Rust] Enhance enum supporting fromstr and display and into #1020

Closed wbprime closed 1 week ago

wbprime commented 3 weeks ago

This pr intended to make generated enum items impl FromStr and Display and Into trait.

Usually an enum (in or not in trading) may have two different usecases: either for integer-compitible values (like Side/OrderType) or for string values (like Market). It's very kind to generate conversion helper for generated Rust enum types. Currently only From was impl for enum types.

  1. FromStr trait

    Consider a Market enum:

    enum Market {
    XSHE, XSHG, 
    }

    A str to Market conversion was usually needed when dealing with external system.

  2. Display trait

    See above Market enum, a Display trait impl was helpful when converting to meaningful string representation for display or presentation purpose.

  3. Into trait

    As a reverse op of From, it is also helpful to get sensible storing data into DB or something similar.