Skip to content

Commit 0f2e26d

Browse files
committed
Remove AsMap and AsList type
These types are more related to serde and sval than they are to log. Because of that is falls out of scope for the log crate.
1 parent 35ee944 commit 0f2e26d

File tree

1 file changed

+0
-325
lines changed

1 file changed

+0
-325
lines changed

src/kv/source.rs

-325
Original file line numberDiff line numberDiff line change
@@ -402,319 +402,6 @@ mod std_support {
402402
}
403403
}
404404

405-
/// The result of calling `Source::as_map`.
406-
pub struct AsMap<S>(S);
407-
408-
/// Visit this source as a map.
409-
pub fn as_map<S>(source: S) -> AsMap<S>
410-
where
411-
S: Source,
412-
{
413-
AsMap(source)
414-
}
415-
416-
impl<S> Source for AsMap<S>
417-
where
418-
S: Source,
419-
{
420-
fn visit<'kvs>(&'kvs self, visitor: &mut dyn Visitor<'kvs>) -> Result<(), Error> {
421-
self.0.visit(visitor)
422-
}
423-
424-
fn get(&self, key: Key) -> Option<Value<'_>> {
425-
self.0.get(key)
426-
}
427-
428-
fn count(&self) -> usize {
429-
self.0.count()
430-
}
431-
}
432-
433-
impl<S> fmt::Debug for AsMap<S>
434-
where
435-
S: Source,
436-
{
437-
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
438-
let mut f = f.debug_map();
439-
self.0.visit(&mut f).map_err(|_| fmt::Error)?;
440-
f.finish()
441-
}
442-
}
443-
444-
/// The result of calling `Source::as_list`
445-
pub struct AsList<S>(S);
446-
447-
/// Visit this source as a list.
448-
pub fn as_list<S>(source: S) -> AsList<S>
449-
where
450-
S: Source,
451-
{
452-
AsList(source)
453-
}
454-
455-
impl<S> Source for AsList<S>
456-
where
457-
S: Source,
458-
{
459-
fn visit<'kvs>(&'kvs self, visitor: &mut dyn Visitor<'kvs>) -> Result<(), Error> {
460-
self.0.visit(visitor)
461-
}
462-
463-
fn get(&self, key: Key) -> Option<Value<'_>> {
464-
self.0.get(key)
465-
}
466-
467-
fn count(&self) -> usize {
468-
self.0.count()
469-
}
470-
}
471-
472-
impl<S> fmt::Debug for AsList<S>
473-
where
474-
S: Source,
475-
{
476-
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
477-
let mut f = f.debug_list();
478-
self.0.visit(&mut f).map_err(|_| fmt::Error)?;
479-
f.finish()
480-
}
481-
}
482-
483-
#[cfg(feature = "kv_unstable_sval")]
484-
mod sval_support {
485-
use super::*;
486-
487-
impl<S> sval::Value for AsMap<S>
488-
where
489-
S: Source,
490-
{
491-
fn stream<'sval, SV: sval::Stream<'sval> + ?Sized>(
492-
&'sval self,
493-
stream: &mut SV,
494-
) -> sval::Result {
495-
struct StreamVisitor<'a, V: ?Sized>(&'a mut V);
496-
497-
impl<'a, 'kvs, V: sval::Stream<'kvs> + ?Sized> Visitor<'kvs> for StreamVisitor<'a, V> {
498-
fn visit_pair(&mut self, key: Key<'kvs>, value: Value<'kvs>) -> Result<(), Error> {
499-
self.0
500-
.map_key_begin()
501-
.map_err(|_| Error::msg("failed to stream map key"))?;
502-
sval_ref::stream_ref(self.0, key)
503-
.map_err(|_| Error::msg("failed to stream map key"))?;
504-
self.0
505-
.map_key_end()
506-
.map_err(|_| Error::msg("failed to stream map key"))?;
507-
508-
self.0
509-
.map_value_begin()
510-
.map_err(|_| Error::msg("failed to stream map value"))?;
511-
sval_ref::stream_ref(self.0, value)
512-
.map_err(|_| Error::msg("failed to stream map value"))?;
513-
self.0
514-
.map_value_end()
515-
.map_err(|_| Error::msg("failed to stream map value"))?;
516-
517-
Ok(())
518-
}
519-
}
520-
521-
stream
522-
.map_begin(Some(self.count()))
523-
.map_err(|_| sval::Error::new())?;
524-
525-
self.visit(&mut StreamVisitor(stream))
526-
.map_err(|_| sval::Error::new())?;
527-
528-
stream.map_end().map_err(|_| sval::Error::new())
529-
}
530-
}
531-
532-
impl<S> sval::Value for AsList<S>
533-
where
534-
S: Source,
535-
{
536-
fn stream<'sval, SV: sval::Stream<'sval> + ?Sized>(
537-
&'sval self,
538-
stream: &mut SV,
539-
) -> sval::Result {
540-
struct StreamVisitor<'a, V: ?Sized>(&'a mut V);
541-
542-
impl<'a, 'kvs, V: sval::Stream<'kvs> + ?Sized> Visitor<'kvs> for StreamVisitor<'a, V> {
543-
fn visit_pair(&mut self, key: Key<'kvs>, value: Value<'kvs>) -> Result<(), Error> {
544-
self.0
545-
.seq_value_begin()
546-
.map_err(|_| Error::msg("failed to stream seq value"))?;
547-
sval_ref::stream_ref(self.0, (key, value))
548-
.map_err(|_| Error::msg("failed to stream seq value"))?;
549-
self.0
550-
.seq_value_end()
551-
.map_err(|_| Error::msg("failed to stream seq value"))?;
552-
553-
Ok(())
554-
}
555-
}
556-
557-
stream
558-
.seq_begin(Some(self.count()))
559-
.map_err(|_| sval::Error::new())?;
560-
561-
self.visit(&mut StreamVisitor(stream))
562-
.map_err(|_| sval::Error::new())?;
563-
564-
stream.seq_end().map_err(|_| sval::Error::new())
565-
}
566-
}
567-
568-
#[cfg(test)]
569-
mod tests {
570-
use super::*;
571-
use sval_derive::Value;
572-
573-
#[test]
574-
fn derive_stream() {
575-
#[derive(Value)]
576-
pub struct MyRecordAsMap<'a> {
577-
msg: &'a str,
578-
kvs: AsMap<&'a dyn Source>,
579-
}
580-
581-
#[derive(Value)]
582-
pub struct MyRecordAsList<'a> {
583-
msg: &'a str,
584-
kvs: AsList<&'a dyn Source>,
585-
}
586-
}
587-
}
588-
}
589-
590-
#[cfg(feature = "kv_unstable_serde")]
591-
pub mod as_map {
592-
//! `serde` adapters for serializing a `Source` as a map.
593-
594-
use super::*;
595-
use serde::{Serialize, Serializer};
596-
597-
/// Serialize a `Source` as a map.
598-
pub fn serialize<T, S>(source: &T, serializer: S) -> Result<S::Ok, S::Error>
599-
where
600-
T: Source,
601-
S: Serializer,
602-
{
603-
as_map(source).serialize(serializer)
604-
}
605-
}
606-
607-
#[cfg(feature = "kv_unstable_serde")]
608-
pub mod as_list {
609-
//! `serde` adapters for serializing a `Source` as a list.
610-
611-
use super::*;
612-
use serde::{Serialize, Serializer};
613-
614-
/// Serialize a `Source` as a list.
615-
pub fn serialize<T, S>(source: &T, serializer: S) -> Result<S::Ok, S::Error>
616-
where
617-
T: Source,
618-
S: Serializer,
619-
{
620-
as_list(source).serialize(serializer)
621-
}
622-
}
623-
624-
#[cfg(feature = "kv_unstable_serde")]
625-
mod serde_support {
626-
use super::*;
627-
use serde::ser::{Error as SerError, Serialize, SerializeMap, SerializeSeq, Serializer};
628-
629-
impl<T> Serialize for AsMap<T>
630-
where
631-
T: Source,
632-
{
633-
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
634-
where
635-
S: Serializer,
636-
{
637-
struct SerializerVisitor<'a, S>(&'a mut S);
638-
639-
impl<'a, 'kvs, S> Visitor<'kvs> for SerializerVisitor<'a, S>
640-
where
641-
S: SerializeMap,
642-
{
643-
fn visit_pair(&mut self, key: Key<'kvs>, value: Value<'kvs>) -> Result<(), Error> {
644-
self.0
645-
.serialize_entry(&key, &value)
646-
.map_err(|_| Error::msg("failed to serialize map entry"))?;
647-
Ok(())
648-
}
649-
}
650-
651-
let mut map = serializer.serialize_map(Some(self.count()))?;
652-
653-
self.visit(&mut SerializerVisitor(&mut map))
654-
.map_err(|_| S::Error::custom("failed to visit key-values"))?;
655-
656-
map.end()
657-
}
658-
}
659-
660-
impl<T> Serialize for AsList<T>
661-
where
662-
T: Source,
663-
{
664-
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
665-
where
666-
S: Serializer,
667-
{
668-
struct SerializerVisitor<'a, S>(&'a mut S);
669-
670-
impl<'a, 'kvs, S> Visitor<'kvs> for SerializerVisitor<'a, S>
671-
where
672-
S: SerializeSeq,
673-
{
674-
fn visit_pair(&mut self, key: Key<'kvs>, value: Value<'kvs>) -> Result<(), Error> {
675-
self.0
676-
.serialize_element(&(key, value))
677-
.map_err(|_| Error::msg("failed to serialize seq entry"))?;
678-
Ok(())
679-
}
680-
}
681-
682-
let mut seq = serializer.serialize_seq(Some(self.count()))?;
683-
684-
self.visit(&mut SerializerVisitor(&mut seq))
685-
.map_err(|_| S::Error::custom("failed to visit seq"))?;
686-
687-
seq.end()
688-
}
689-
}
690-
691-
#[cfg(test)]
692-
mod tests {
693-
use super::*;
694-
use crate::kv::source;
695-
use serde::Serialize;
696-
697-
#[test]
698-
fn derive_serialize() {
699-
#[derive(Serialize)]
700-
pub struct MyRecordAsMap<'a> {
701-
msg: &'a str,
702-
#[serde(flatten)]
703-
#[serde(with = "source::as_map")]
704-
kvs: &'a dyn Source,
705-
}
706-
707-
#[derive(Serialize)]
708-
pub struct MyRecordAsList<'a> {
709-
msg: &'a str,
710-
#[serde(flatten)]
711-
#[serde(with = "source::as_list")]
712-
kvs: &'a dyn Source,
713-
}
714-
}
715-
}
716-
}
717-
718405
#[cfg(test)]
719406
mod tests {
720407
use crate::kv::value::tests::Token;
@@ -766,16 +453,4 @@ mod tests {
766453
let source = None::<(&str, i32)>;
767454
assert!(Source::get(&source, Key::from_str("a")).is_none());
768455
}
769-
770-
#[test]
771-
fn as_map() {
772-
let _ = crate::kv::source::as_map(("a", 1));
773-
let _ = crate::kv::source::as_map(&("a", 1) as &dyn Source);
774-
}
775-
776-
#[test]
777-
fn as_list() {
778-
let _ = crate::kv::source::as_list(("a", 1));
779-
let _ = crate::kv::source::as_list(&("a", 1) as &dyn Source);
780-
}
781456
}

0 commit comments

Comments
 (0)