title: Add value of a method to serde serialization output
body: <p>Is there a way to add the value of a  method to the serialization output of <code>serde</code> when the struct derives <code>Serialize</code>? I'm looking for something like a "virtual field".</p>
  
  <p>I know I can define my own <code>Serializer</code> / <code>Visitor</code> or use <code>serde_json::builder</code> to get a <code>Value</code>, I just wanted to check first if there was any way to do this using <code>serde_macro</code> magic.</p>
  
  <p>To be clear I want something like this:</p>
  
  <pre><code>#[derive(Serialize, Deserialize, Debug)]
  struct Foo {
      bar: String,
      #[serde(call="Foo::baz")]
      baz: i32 // but this is not a real field
  }
  
  impl Foo {
      fn baz(&amp;self) -&gt; i32 { self.bar.len() as i32 }
  }
  </code></pre>