fp_state_generator 0.0.5 copy "fp_state_generator: ^0.0.5" to clipboard
fp_state_generator: ^0.0.5 copied to clipboard

outdated

The `@FpState` annotation is used in dependency with the `fp_state_generator` package to generate template code for managing state

example/lib/main.dart

import 'package:fp_state_generator/fp_state_annotation.dart';
import 'package:freezed_annotation/freezed_annotation.dart';
part 'main.fp_state.dart';
part 'main.freezed.dart';

@fpState
class UiState {}

class LState extends UiState {}

class RState extends UiState {}

class R3State extends UiState {}

class R4State extends UiState {}

@freezed
@fpState
sealed class FreezedState with _$FreezedState {
  const FreezedState._();
  const factory FreezedState.FreezedState(final String user) = FreezedState1;
  const factory FreezedState.FreezedState2(final String user, final String id) =
      FreezedState2;
  const factory FreezedState.FreezedState3(
      final String user, final bool activate) = FreezedState3;
}

void main(List<String> args) {
  final state = LState();
  final match = state.match(
    lState: (data) => "LState",
    rState: (data) => "FState",
    r3State: (R3State data) {},
    r4State: (R4State data) {},
  );
  // match => "LState"
  final matchOrElse = state.matchOrElse(
    rState: (data) => "FState",
    r3State: (R3State data) {},
    r4State: (R4State data) {},
    orElse: (data) => "Orlese result",
  );
  //  matchOrElse => "Orlese result"

  final maybeMatch = state.maybeMatch(
    rState: (data) => "FState",
    r3State: (R3State data) {},
    r4State: (R4State data) {},
  );

  // maybeMatch = null

  final freezedState = FreezedState.FreezedState2("jack", "1");
  final freezedMatch = freezedState.match(
    freezedState1: (data) => "FreezedState",
    freezedState2: (data) => "FreezedState2 ${data.user},${data.id} ",
    freezedState3: (data) => "FreezedState3",
  );
  // freezedMatch => "FreezedState2 jack,1 "

  final freezedMatchOrElse = freezedState.matchOrElse(
    freezedState1: (data) => "FreezedState",
    freezedState3: (data) => "FreezedState3",
    orElse: (data) => "OrElse result",
  );
  // freezedMatchOrElse => "OrElse result"

  final freezedMaybeMatch = freezedState.maybeMatch(
    freezedState1: (data) => "FreezedState",
    freezedState3: (data) => "FreezedState3",
  );
  // freezedMaybeMatch => null
}
1
likes
0
points
154
downloads

Publisher

unverified uploader

Weekly Downloads

The `@FpState` annotation is used in dependency with the `fp_state_generator` package to generate template code for managing state

Homepage
Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

analyzer, build, change_case, source_gen

More

Packages that depend on fp_state_generator