bindInstance function

void bindInstance(
  1. SuperuserInterface? suInterface
)

Attach specified suInterface as data source of superuser property.

If suInterface is null, it binds platform specified SuperuserInterface automatically.

When this invoked in neither Windows, macOS or Linux platform, it throws UnsupportedError.

Implementation

void bindInstance(SuperuserInterface? suInterface) {
  if (!Platform.isWindows && !Platform.isMacOS && !Platform.isLinux) {
    throw UnsupportedError("Unknown platform");
  }

  late SuperuserInterface newInst;

  if (suInterface == null) {
    // Denote null interface as uses default implementation.
    if (Platform.isWindows) {
      newInst = WindowsSuperuser();
    } else if (Platform.isMacOS || Platform.isLinux) {
      newInst = UnixSuperuser();
    }
  } else {
    newInst = suInterface;
  }

  SuperuserInstance._instance = newInst;
}