mirror of
				https://github.com/AppFlowy-IO/AppFlowy.git
				synced 2025-10-31 10:03:18 +00:00 
			
		
		
		
	 3e32fac876
			
		
	
	
		3e32fac876
		
			
		
	
	
	
	
		
			
			* chore: pass platform info to rust side * chore: pass platform info to rust side * chore: fix test * chore: fix test * chore: fix test * chore: enable ios log
		
			
				
	
	
		
			38 lines
		
	
	
		
			683 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			683 B
		
	
	
	
		
			Rust
		
	
	
	
	
	
| use std::io;
 | |
| use std::io::Write;
 | |
| use std::sync::Arc;
 | |
| use tracing_subscriber::fmt::MakeWriter;
 | |
| 
 | |
| pub struct StreamLog {
 | |
|   pub sender: Arc<dyn StreamLogSender>,
 | |
| }
 | |
| 
 | |
| impl<'a> MakeWriter<'a> for StreamLog {
 | |
|   type Writer = SenderWriter;
 | |
| 
 | |
|   fn make_writer(&'a self) -> Self::Writer {
 | |
|     SenderWriter {
 | |
|       sender: self.sender.clone(),
 | |
|     }
 | |
|   }
 | |
| }
 | |
| 
 | |
| pub trait StreamLogSender: Send + Sync {
 | |
|   fn send(&self, message: &[u8]);
 | |
| }
 | |
| 
 | |
| pub struct SenderWriter {
 | |
|   sender: Arc<dyn StreamLogSender>,
 | |
| }
 | |
| 
 | |
| impl Write for SenderWriter {
 | |
|   fn write(&mut self, buf: &[u8]) -> io::Result<usize> {
 | |
|     self.sender.send(buf);
 | |
|     Ok(buf.len())
 | |
|   }
 | |
| 
 | |
|   fn flush(&mut self) -> io::Result<()> {
 | |
|     Ok(())
 | |
|   }
 | |
| }
 |