<｜begin▁of▁sentence｜>### Instruction:
Given a directed graph with edges [(0, 1), (1, 2), (2, 3)], can you create a custom function to draw this graph with directed edges and save the result as an image using the MatplotlibEdgeDrawer.draw_directed_edge method in igraph? You need to implement the function and call it, ensuring that each directed edge is appropriately represented with an arrow and other visual styling attributes are applied.
### Response:
import igraph as ig
from igraph.drawing import Plot, plot
from igraph.drawing.edge import MatplotlibEdgeDrawer

def draw_network_with_directed_edges(graph, filename):
    visual_style = {
        'vertex_size': 0.5,
        'vertex_color': 'blue',
        'edge_width': 1,
        'edge_curved': False,
        'edge_arrow_size': 0.5
    }
    pl = Plot(filename, bbox=(300, 300), background='white')
    ctx = pl.
    edge_drawer = MatplotlibEdgeDrawer(ctx)

    for edge in graph.es:
        src_vertex = graph.vs[edge.source]
        dest_vertex = graph.vs[edge.target]
        edge_drawer.draw_directed_edge(edge, src_vertex, dest_vertex)

    pl.show()

# Create a directed graph with edges
edges = [(0, 1), (1, 2), (2, 3)]
g = ig.Graph(edges=edges, directed=True)

draw_network_with_directed_edges(g, 'directed_graph.png')
<|EOT|>
