from static method

Implementation

static Danger<IdentifierableCollection, CitrusSyntaxException> from(String identifier) {

    final log = Log(classLocation: IdentifierableCollection, functionLocation: 'from');

    final List<Identifierable> list = [];

    for (final character in identifier.split('')) {

        final result = LeafCitrusSyntax.result(character);
        log.add(result);
        if (result is! Success<LeafCitrusSyntax, LeafCitrusSyntaxExceptionA>) return Failure(result.asException, log);

        final id = result.wrapped;

        if (id is! Identifierable) return Failure(CitrusSyntaxExceptionA(), log.monitor({
            'message': 'value is not idenfierable in IdentifierableCollection.from',
        }));

        list.add(id);

    }

    final result = IdentifierableCollection.fromIterable(list);

    return Success(result, log);

}