Skip to main content

oxilean_codegen/ffi_bridge/
ffienumdef_traits.rs

1//! # FfiEnumDef - Trait Implementations
2//!
3//! This module contains trait implementations for `FfiEnumDef`.
4//!
5//! ## Implemented Traits
6//!
7//! - `Display`
8//!
9//! 🤖 Generated with [SplitRS](https://github.com/cool-japan/splitrs)
10
11use crate::lcnf::*;
12
13use super::types::FfiEnumDef;
14use std::fmt;
15
16impl std::fmt::Display for FfiEnumDef {
17    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
18        let ty = if let Some(t) = &self.underlying_type {
19            format!(" : {}", t)
20        } else {
21            String::new()
22        };
23        writeln!(f, "enum {}{} {{", self.name, ty)?;
24        for (n, v) in &self.variants {
25            if let Some(val) = v {
26                writeln!(f, "    {} = {},", n, val)?;
27            } else {
28                writeln!(f, "    {},", n)?;
29            }
30        }
31        write!(f, "}};")
32    }
33}