.. _naming_conventions:

==================
Naming conventions
==================

For the sake of clarity in this multi-language documentation, the following naming conventions have been adopted.

- Class, struct and enumeration names are written in *PascalCase*. Example: ``License``.
- Class and struct member names are written in *lowerCamelCase*. Example: ``activateSerialKey``
- Enumeration fields are written in *lowerCamelCase*. Example : ``LicenseError.invalidLicense``.

.. warning:: 
    The naming convention adopted in this documentation does not necessarily reflect the convention for a given programming language.
    More information is given below.
    
Examples
========

.. tab-set::

    .. tab-item:: Python
        :sync: python

        - Class name: ``DocumentLicense``
        - Function name: ``activate_serial_key``
        - Structure: ``DocumentPoint``
        - Enumeration field: ``LicenseError.INVALID_LICENSE``

    .. tab-item:: Dart
        :sync: dart

        - Class name: ``DocumentLicense``
        - Function name: ``activateSerialKey``
        - Structure: ``DocumentPoint``
        - Enumeration field: ``LicenseError.invalidLicense``

    .. tab-item:: C#
        :sync: csharp

        - Class name: ``DocumentLicense``
        - Function name: ``ActivateSerialKey``
        - Structure: ``DocumentPoint``
        - Enumeration field: ``LicenseError.InvalidLicense``

    .. tab-item:: Java
        :sync: java

        - Class name: ``DocumentLicense``
        - Function name: ``activateSerialKey``
        - Structure: ``DocumentPoint``
        - Enumeration field: ``LicenseError.INVALID_LICENSE``

    .. tab-item:: Kotlin
        :sync: kotlin

        - Class name: ``DocumentLicense``
        - Function name: ``activateSerialKey``
        - Structure: ``DocumentPoint``
        - Enumeration field: ``LicenseError.INVALID_LICENSE``

    .. tab-item:: Swift
        :sync: swift

        - Class name: ``DocumentLicense``
        - Function name: ``activateSerialKey``
        - Structure: ``DocumentPoint``
        - Enumeration field: ``LicenseError.invalidLicense``

    .. tab-item:: C
        :sync: c
        
        - Class name: ``id3DocumentLicense_``
        - Function name: ``id3DocumentLicense_ActivateSerialKey``
        - Structure: ``id3DocumentPoint``
        - Enumeration field: ``id3LicenseError_InvalidLicense`` 

        .. note:: 
            The C API implements pseudo object-oriented programming concepts where the object is passed explicitly to a member function as first parameter.


