Skip to content

Commit 45ecd8b

Browse files
committed
Switch version to common contracts interface/trait
1 parent 25f8370 commit 45ecd8b

File tree

6 files changed

+19
-42
lines changed

6 files changed

+19
-42
lines changed

src/Bass.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
use FFI\Headers\Bass\HeadersDownloader;
1919
use FFI\Headers\Bass\Platform;
2020
use FFI\Headers\Bass\Version;
21-
use FFI\Headers\Bass\VersionInterface;
21+
use FFI\Contracts\Headers\VersionInterface;
2222
use FFI\Preprocessor\Preprocessor;
2323

2424
class Bass implements HeaderInterface

src/Bass/HeadersDownloader.php

+2
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@
1111

1212
namespace FFI\Headers\Bass;
1313

14+
use FFI\Contracts\Headers\VersionInterface;
15+
1416
/**
1517
* @internal This is an internal library class, please do not use it in your code.
1618
* @psalm-internal FFI\Headers

src/Bass/Platform.php

+7-2
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@
1111

1212
namespace FFI\Headers\Bass;
1313

14+
use FFI\Contracts\Headers\Version as ComparableVersion;
15+
use FFI\Contracts\Headers\VersionInterface;
16+
1417
enum Platform
1518
{
1619
case WINDOWS;
@@ -23,10 +26,12 @@ enum Platform
2326
*/
2427
public function supportedBy(VersionInterface $version): bool
2528
{
29+
$version = ComparableVersion::fromVersion($version);
30+
2631
return match ($this) {
2732
self::WINDOWS => true,
28-
self::LINUX => \version_compare($version->toString(), '2.4', '>='),
29-
self::DARWIN => \version_compare($version->toString(), '2.2', '>='),
33+
self::LINUX => $version->gte('2.4'),
34+
self::DARWIN => $version->gte('2.2'),
3035
};
3136
}
3237
}

src/Bass/Version.php

+9-18
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,15 @@
1111

1212
namespace FFI\Headers\Bass;
1313

14-
enum Version: string implements VersionInterface
14+
use FFI\Contracts\Headers\Version as CustomVersion;
15+
use FFI\Contracts\Headers\Version\Comparable;
16+
use FFI\Contracts\Headers\Version\ComparableInterface;
17+
use FFI\Contracts\Headers\VersionInterface;
18+
19+
enum Version: string implements ComparableInterface
1520
{
21+
use Comparable;
22+
1623
case V2_0 = '2.0';
1724
case V2_1 = '2.1';
1825
case V2_2 = '2.2';
@@ -41,23 +48,7 @@ public static function create(string $version): VersionInterface
4148

4249
return self::tryFrom($version)
4350
?? $versions[$version]
44-
??= new class($version) implements VersionInterface {
45-
/**
46-
* @param non-empty-string $version
47-
*/
48-
public function __construct(
49-
private string $version,
50-
) {
51-
}
52-
53-
/**
54-
* {@inheritDoc}
55-
*/
56-
public function toString(): string
57-
{
58-
return $this->version;
59-
}
60-
};
51+
??= CustomVersion::fromString($version);
6152
}
6253

6354
/**

src/Bass/VersionInterface.php

-20
This file was deleted.

tests/BinaryCompatibilityTestCase.php

-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
use FFI\Headers\Bass;
1616
use FFI\Headers\Bass\Platform;
1717
use FFI\Headers\Bass\Tests\BinaryCompatibilityTestCase\Downloader;
18-
use FFI\Headers\Bass\Tests\BinaryCompatibilityTestCase\DownloaderResult;
1918
use FFI\Headers\Bass\Version;
2019

2120
/**

0 commit comments

Comments
 (0)