Docstrings

UDL file supports docstring comments. The comments are emitted in generated bindings without any transformations. What you see in UDL is what you get in generated bindings. The only change made to UDL comments are the comment syntax specific to each language. Docstrings can be used for most declarations in UDL file. Docstrings are parsed as AST nodes, so incorrectly placed docstrings will generate parse errors. Docstrings in UDL are comments prefixed with ///.

Docstrings in UDL

/// The list of supported capitalization options
enum Capitalization {
    /// Lowercase, i.e. `hello, world!`
    Lower,

    /// Uppercase, i.e. `Hello, World!`
    Upper
};

namespace example {
    /// Return a greeting message, using `capitalization` for capitalization
    string hello_world(Capitalization capitalization);
}

Docstrings in generated Kotlin bindings

/**
 * The list of supported capitalization options
 */
enum class Capitalization {
    /**
     * Lowercase, i.e. `hello, world!`
     */
    LOWER,

    /**
     * Uppercase, i.e. `Hello, World!`
     */
    UPPER;
}

/**
 * Return a greeting message, using `capitalization` for capitalization
 */
fun `helloWorld`(`capitalization`: Capitalization): String { .. }

Docstrings in generated Swift bindings

/**
 * The list of supported capitalization options
 */
public enum Capitalization {
    /**
     * Lowercase, i.e. `hello, world!`
     */
    case lower

    /**
     * Uppercase, i.e. `Hello, World!`
     */
    case upper
}

/**
 * Return a greeting message, using `capitalization` for capitalization
 */
public func helloWorld(capitalization: Capitalization) -> String;

Docstrings in generated Python bindings

class Capitalization(enum.Enum):
    """The list of supported capitalization options"""

    LOWER = 1
    """Lowercase, i.e. `hello, world!`"""

    UPPER = 2
    """Uppercase, i.e. `Hello, World!`"""

def hello_world(capitalization: "Capitalization") -> "str":
    """Return a greeting message, using `capitalization` for capitalization"""
    ..