fpm_manifest_feature_collection Module



Derived Types

type, public, extends(serializable_t) ::  feature_collection_t

Feature configuration data

Components

Type Visibility Attributes Name Initial
type(feature_config_t), public :: base
type(feature_config_t), public, allocatable :: variants(:)

Type-Bound Procedures

procedure, public :: check => check_collection
generic, public :: dump => dump_to_toml, dump_to_file, dump_to_unit
procedure, public :: dump_to_toml => feature_collection_dump
procedure, public :: extract_for_target
generic, public :: load => load_from_toml, load_from_file, load_from_unit
procedure, public :: load_from_toml => feature_collection_load
generic, public :: operator(==) => serializable_is_same
procedure, public :: push_variant
procedure, public :: serializable_is_same => feature_collection_same
procedure, public, non_overridable :: test_serialization

Test load/write roundtrip


Functions

public function default_debug_feature() result(collection)

Create default debug feature collection

Arguments

None

Return Value type(feature_collection_t)

public function default_release_feature() result(collection)

Create default release feature collection

Arguments

None

Return Value type(feature_collection_t)


Subroutines

public subroutine get_default_features(collections, error)

Get default feature collections (debug and release)

Arguments

Type IntentOptional Attributes Name
type(feature_collection_t), intent(out), allocatable :: collections(:)

Feature collections array to populate (debug and release)

type(error_t), intent(out), allocatable :: error

Error handling

public subroutine get_default_features_as_features(features, error)

Convert feature collections to individual features (for backward compatibility)

Arguments

Type IntentOptional Attributes Name
type(feature_config_t), intent(out), allocatable :: features(:)

Features array to populate (backward compatible)

type(error_t), intent(out), allocatable :: error

Error handling

public subroutine new_collections(collections, table, error)

Initialize multiple feature collections from manifest features table

Arguments

Type IntentOptional Attributes Name
type(feature_collection_t), intent(out), allocatable :: collections(:)
type(toml_table), intent(inout) :: table
type(error_t), intent(out), allocatable :: error