Created
August 31, 2022 01:21
-
-
Save kiranshila/3d8b6120d782c284a7804b25527128f7 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# In external Julia libraries | |
struct KATCPClient end | |
struct TAPCPClient end | |
# In CasperFPGA.jl | |
abstract type AbstractCasperTransport end | |
struct KatcpTransport <: AbstractCasperTransport end | |
struct TapcpTransport <: AbstractCasperTransport end | |
AbstractCasperTransport(::Type{KATCPClient}) = KatcpTransport() | |
AbstractCasperTransport(::Type{TAPCPClient}) = TapcpTransport() | |
# Trait Dispatch | |
listdev(transport::T) where {T} = listdev(AbstractCasperTransport(T),transport) | |
# Trait Implementations | |
listdev(::KatcpTransport, transport) = println("listdev for KATCP") | |
listdev(::TapcpTransport, transport) = println("listdev for TAPCP") |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment