Skip to main content

oxilean_codegen/scala_backend/
scalamethod_traits.rs

1//! # ScalaMethod - Trait Implementations
2//!
3//! This module contains trait implementations for `ScalaMethod`.
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::ScalaMethod;
14use std::fmt;
15
16impl fmt::Display for ScalaMethod {
17    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
18        for m in &self.modifiers {
19            write!(f, "{} ", m)?;
20        }
21        write!(f, "def {}", self.name)?;
22        if !self.type_params.is_empty() {
23            write!(f, "[")?;
24            for (i, tp) in self.type_params.iter().enumerate() {
25                if i > 0 {
26                    write!(f, ", ")?;
27                }
28                write!(f, "{}", tp)?;
29            }
30            write!(f, "]")?;
31        }
32        for param_list in &self.params {
33            write!(f, "(")?;
34            for (i, p) in param_list.iter().enumerate() {
35                if i > 0 {
36                    write!(f, ", ")?;
37                }
38                write!(f, "{}", p)?;
39            }
40            write!(f, ")")?;
41        }
42        write!(f, ": {}", self.return_type)?;
43        if let Some(body) = &self.body {
44            write!(f, " = {}", body)?;
45        }
46        Ok(())
47    }
48}