defprotocol ExSni.DbusProtocol do
@type property_value() :: String.t() | binary() | list() | boolean() | number() | tuple()
@spec get_property(t(), property :: String.t()) ::
{:ok, property_value()}
| {:error, String.t(), String.t()}
def get_property(struct, property)
@spec get_property(t(), property :: String.t(), options :: any()) ::
{:ok, property_value()}
| {:error, String.t(), String.t()}
def get_property(struct, property, options)
@spec get_properties(t(), properties :: list(String.t())) :: list(property_value())
def get_properties(struct, properties)
@spec get_properties(t(), properties :: list(String.t()), options :: any()) :: list(property_value())
def get_properties(struct, properties, options)
end