func createBlockMetadata(mds torus.MetadataService, name string, vid torus.VolumeID) (blockMetadata, error) { switch mds.Kind() { case torus.EtcdMetadata: return createBlockEtcdMetadata(mds, name, vid) case torus.TempMetadata: return createBlockTempMetadata(mds, name, vid) default: return nil, errors.New("unimplemented for this kind of metadata") } }