| // Copyright (c) 2025, the Dart project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| |
| extension UriExtension on Uri { |
| /// Whether this URI represents a path in a package's private "implementation" |
| /// directory. |
| bool get isImplementation => |
| (isScheme('package') || !hasAbsolutePath) && |
| pathSegments.length > 2 && |
| pathSegments[1] == 'src'; |
| |
| /// Whether this URI and [other] are each 'package:' URIs referencing the same |
| /// package name. |
| bool isSamePackageAs(Uri other) { |
| return isScheme('package') && |
| other.isScheme('package') && |
| pathSegments.isNotEmpty && |
| other.pathSegments.isNotEmpty && |
| pathSegments.first == other.pathSegments.first; |
| } |
| } |