Hoa Kỳdjspiewak/shims
Seamless interop layer between cats and scalaz
🔄 Chuyển đổi liền mạch giữa cats và scalaz
Một lớp chuyển đổi hai chiều giữa cats và scalaz, ánh xạ tự động cả typeclass và datatype chỉ với một dòng import.
shims cung cấp lớp chuyển đổi hai chiều giữa cats và scalaz, bao gồm cả typeclass (ví dụ: Monad) và datatype (ví dụ: \/). Với shims, bất kỳ kiểu nào có instance cats.Functor cũng có instance scalaz.Functor và ngược lại. Mỗi datatype có thể chuyển đổi đều có hàm asCats hoặc asScalaz được thêm ngầm định.
✨ Điểm nổi bật
- Chuyển đổi hai chiều: mọi instance cats đều có instance scalaz tương ứng và ngược lại.
- Một dòng import: chỉ cần
import shims._để kích hoạt toàn bộ chức năng. - Hỗ trợ typeclass: bao gồm
Alternative,Applicative,Monad,FlatMap,Bifunctor,Comonadvà nhiều khác nữa. - Chuyển đổi datatype: thêm hàm
asCatscho scalaz datatype vàasScalazcho cats datatype. - Hỗ trợ Scala.js: cross-build cho Scala 2.12, 2.13, Dotty 0.25–0.26.
- shims-effect: hỗ trợ chuyển đổi giữa scalaz
Taskvà cats-effect.
💡 Vì sao đáng chú ý
shims giải quyết bài toán đi kèm khi dự án sử dụng đồng thời cats và scalaz, tránh phải viết lớp wrapper thủ công. Tuy nhiên, kể từ Cats 2.3.0, các instance lớp chính thức được đưa vào scope ngầm định, gây mâu thuẫn không được ưu tiên. Tác giả đã quyết định ngừng bảo trì và khuyến nghị nâng cấp sang cats để trải nghiệm tốt hơn trong hệ sinh thái hiện đại.
#Scala #Cats #Scalaz #Typeclass #Interoperability #TiniX
Dự án tương tự
Khám phá các dự án và mô hình AI khác có sự tương đồng.