//
//  Addressable.swift
//  Astro
//
//  Created by Jeremy Wiebe on 2015-04-28.
//  Copyright (c) 2015 Mobify Research & Development Inc. All rights reserved.
//

import Foundation

/// A type with an associated `MessageAddress`. An instance of addressable
/// should be considered the owner of `address`.
///
/// Note that an object must be addressable to receive RpcMessages.
public protocol Addressable {
    var address: MessageAddress { get }
    var eventAddress: MessageAddress { get }
}

extension Addressable {
    public var eventAddress: MessageAddress {
        return "\(address):events"
    }
}
