1. 01 Oct, 2018 1 commit
    • Steven Allen's avatar
      stop copying when calling `Bytes` · 61e31ed4
      Steven Allen authored
      This is a huge performance hit. Really, we just need to tell users not to modify
      the result.
      
      Also, get rid of an unnecessary pointer indirection (no api change).
      61e31ed4
  2. 21 Oct, 2016 1 commit
  3. 29 Sep, 2016 1 commit
  4. 17 Jan, 2016 1 commit
  5. 09 Jan, 2015 1 commit
  6. 05 Nov, 2014 2 commits
  7. 06 Oct, 2014 1 commit
    • Juan Batiz-Benet's avatar
      New Multiaddr interface · c90ef447
      Juan Batiz-Benet authored
      This commit changes the struct to a new Multiaddr interface:
      
      ```Go
      type Multiaddr interface {
        Equal(Multiaddr) bool
        Bytes() []byte
        String() string
        Protocols() []*Protocol
        Encapsulate(Multiaddr) Multiaddr
        Decapsulate(Multiaddr) Multiaddr
      }
      ```
      
      This means a few things have changed:
      
      - use Multiaddr interface, struct not exported
      - Bytes returns a copy of the internal bytes
      - Some methods no longer return errors (catch errors in NewMultiaddr)
        - String (panics if malformed)
        - Protocols (panics if malformed)
        - Decapsulate (no-op if not prefix)
      - Moved net-specific functions to package
        - Multiaddr.DialArgs() -> DialArgs(Multiaddr)
        - Multiaddr.IsThinWaist() -> IsThinWaist(Multiaddr)
      
      cc @whyrusleeping @perfmode
      c90ef447