anchor.diff:  %%     <<"yessir.{integer}.anything">> will use integer (interpreted in
   %%     base 10) as the returned binary's Size.
   %%
  +%% fold_keys and fold_objects are implemented for both sync and async.
  +%% Each will return the same deterministic set of results for every call,
  +%% given the same set of configuration parameters. The size of the object
  +%% folded over is controlled by the "default_size" config var. The number
  +%% of keys folded over is controlled by the "key_count" config var. Folding
  +%% over the keys and objects will each return the same set of keys, so if
  +%% you fold over the keys and collect the list; and then you fold over the
  +%% objects and collect the list of keys again, the two lists will match.
  +%%
   %% This backend is the Riak storage manager equivalent of:
   %%
   %% * cat > /dev/null
   %% * cat < /dev/zero
  +%%
  +%% Configuration file parameters:
  +%%   default_size - The number of bytes of generated data for the value
  +%%   key_count    - The number of keys that will be folded over, e.g. list_keys()
   %%
   %% TODO list:
   %%
  
positive.code:     DefaultLen = case app_helper:get_prop_or_env(
                          default_size, Config, yessir_backend) of
                       undefined -> 1024;
                       N         -> N
                   end,
      {ok, #state{default_get = <<42:(DefaultLen*8)>>}}.
  
  %% @doc Stop this backend, yes, sir!
  -spec stop(state()) -> ok.
  
negative.code:               undefined    -> S#state.default_get;
                N            -> <<42:(N*8)>>
            end,
      Meta = dict:new(),
      Meta1 = dict:store(<<"X-Riak-Last-Modified">>, erlang:now(), Meta),
      Meta2 = dict:store(<<"X-Riak-VTag">>, make_vtag(erlang:now()), Meta1),
      O = riak_object:increment_vclock(riak_object:new(Bucket, Key, Bin, Meta2),
                                       <<"yessir!">>, 1),
      {ok, term_to_binary(O), S#state{op_get = Gets + 1}}.
  
  