Default parameters
Dart allows default values for function and constructor parameters, and you can achieve the same effect using #[frb(default)]. The syntax is as follows:
- If the parameter is a
Stringor any other primitive,#[frb(default = ".." | 0 | true | ..)]annotates its default value. - If the parameter is a class or an enum,
#[frb(default = "..")]annotates the Dart code to initialize the parameter. Note that this is run in the constant context, so classes can only be constructed if they are preceded withconst.
This will be translated to either a default value annotation, or Freezed's @Default in the case of enum constructor parameters.
Example
pub enum Answer { Yes, No }
pub struct Point(pub f64, pub f64);
#[frb]
pub fn defaults(
#[frb(default = "Answer.Yes")]
answer: Answer,
#[frb(default = "const Point(field0: 2, field1: 3)")]
point: Point,
);